Skip to main content

tremplin micro newsletter issue 03

  • PublicationApple Periodicals
  • Pages64
  • Sourcetremplin_micro_newsletter_issue_03.pdf
← Magazines tremplin micro newsletter issue 03
/ 64
Source: Internet Archive — Aggregated Apple-era periodicals, 1981–2012.
Page 1
Loading…
Text content (OCR)
BIMESTRIEL Le numéro : 30 F Abonnement d'un an 150 F {5 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 + Joatie (méme numéro) Commission paritaire : Demande en cours. D’abord déroutant, puis absolument captivant A PROGRAMMATION vous tente, mais vous parait d'un accés difficile. Ce que vous en savez déja comporte un aspect déroutant... redoutez |'échec. Je ne vais pas vous dresser, ici, un tableau idyllique de l'appren- tissage du Basic, et moins encore de celui de l'assembleur. L'un et lautre exigent en effet un effort personnel et, surtout, la volonté de bien en assimiler |'abc. Aucune revue — et la pédagogie, mot arrangé 4 toutes les sau- ces, n’a rien 4 voir la-dedans — ne fera de vous, simple débu- tant(e), un(e) champion(ne) de la programmation... si vous n'y mettez pas (un peu) du votre. Mais, croyez-moi — et je ne m'adresse ici qu’aux débutant(e)s — l'effort se révéle toujours payant. Bien des satisfactions sont réservées a celles et 4 ceux qui, inlas- sablement, alignent les précieux octets sur leur écran. Cela vaut pour le Basic et pour l‘assembleur, mais plus encore pour ce dernier, tout 4 fait incompréhensible quand on en ignore les principes, mais super-puissant et rapide quand, aprés bien des tentatives infructueuses, on parvient 4 le dompter. Mais pourquoi programmer, alors que tan‘ de génies produisent des logiciels et progiciels autorisant toutes les fantaisies ? Peut- tre, tout simplement, pour ne pas mourir idiot ! Notre intellect, passif devant l'audiovisuel, habitué aux stéréoty- pes et aux informations prédigérées, ressent inconsciemment le besoin de se libérer, d’abord en luttant pour comprendre, ensuite en tirant le meilleur protit de ce qu'il a réussi 6 dominer. Bonne programmation, et rendez-vous le 20 septembre dans le numéro 4 de Tremplin Micro. sinon inquiétant. En clair; vous GUY-HACHETTE. TREMPLIN MICRO scennneneneenseenunnenseeresEERERnUesnEseSEeRUESRANTeeNeTSATEEERAE ESTAS TeSSASE SSNS TL ATT EAU E LEANN EEE SEES Sommaire 3 Jouer sur un Apple © La Personne X ........-+. 7 Wi QUGSEERE occsssienceessees se 38 © Ouvrez l'oeil ............ 52 Jeu du numéro 2 Coder ou décoder ? ...,.05500s5005 13 Initiation * Générateur de programmes ........- Une autre maniere de visualiser vos nombres Les Lectrices et Lecteurs de Tremplin Micro ont beaucoup aimé les HISTOGRAMMES et DIAGRAMMES. Voici les VISUBLOCS PROGRAMMES UTILITAIRES @ Boutabout ......-5.---2 ee ei vee 30 ® Ecrans condensés ........---. 6-555 36 ® Lignes Data ov de Pokes ......---.- 55 LANGAGE MACHINE * Saisie d'un texte .....-.--.5 eee eee 45 + Les variables en mémoire ......-5.- 46 LISEZ AUSSI : ®@ Partez en voyage avec Max .......-. 12 ® Découvrez l'Assembleur -.........- 15 ® Dessine-moi un cercle -. wdewnee 47 ® Quelques notes pour votre Apple Wanita Sits b So ehbem © wee FRED ea || © Votre fiche n°S:,....----.+++ ee! * Le courrier des lecteurs ....-.-..+-- 7 * Bulletin de commande et d'abonnement ......---.+ FNAL | Le numéro 4 de paraitra le 20 septembre. UTILITAIRE APPLE He APPLE lc Créer des écrans sur 80 colonnes 2 Bien sir que c’est possible ! OURQUO! ALLONGER démesurément certains de vos programmes, alors qu'il est tellement commode de stocker, x pages d'informations sur la disquette ? Cela est possible avec ''écran normal (40 colonnes), et nous avons vu comment dans le numéro | de Tremplin Micro, mais vous disposerez désormais des mémes facilités sur 80 colonnes. Le programme que nous vous proposons fonctionne sur un Apple /le équipé d'une carte 80 colonnes (64 ov 128k). Lo version destinée & l'Apple /ic comporte un certain nombre de modifications (récapitulées page 11), ainsi qu‘un sous-programme supplémentaire, en langage machine (lire page 11). =) Commencez par taper la routine ECRANS.LM, différente suivant le matériel dont vous dispo- sez. Elle trace instantanément, et sur 80 colon- nes, un cadre en mode inverse, mais alle ne fait pos que celo (les pages 5 et 6 vous la décri- vent), Mémorisez cette routine par un BSAVE ECRANS.LM, AS$300, LS9D ou BSAVE ECRANS.LM, A$300, L$9C pour le Iic, Passez ensuite 4 Ia partie la plus importante du travail : le programme en BASIC. Dans un premier temps, ajoutez provisoire- ment une ligne 55 GOTO 80 qui vous évitera de recharger ECRANS.LM lors de vos essais (il restera en mémoire si vous n'éteignez pas votre micro, et si vous ne l'écrasez pas avec une autre routine, occupant les mémes adres- ses), et escamotera également le chargement de ECRCI et ECRC2 (encore inexistants). Tapez minutieusement toutes les instructions, en les vérifiant au fur et @ mesure. Sauvez votre programme @ plusieurs reprises (ESSAI.1, ESSAI.2... ou TOTO.1, TOTO.2, etc.). Quand vous estimerez que votre travail est bien avancé, copiez aussi sa derniére version sur une outre disquette. Ces précautions vous éviterons de réécrire deux fois le méme pro- gramme... 4 la suite de quelque manipulation contraire aux principes de votre Apple chéri. Ne souriez pas : celo orrive ! Tenez ; je connais quelqu'un qui. aprés avoir tapé 200 lignes de programme. s'est apercu qu'il n‘avait pas (ou plus) le DOS. Heureuse- ment, il lui restait la ressource du magnéto- phone (voir Tremplin Micro numéro 2) ! Si tout fonctionne normalement, un RUN devrait vider I'écran, afficher un cadre en mode inverse, et un curseur en haut et a gau- che. Si vous n'obtenez pos cela, vérifiez que ECRANS.LM est encore en mémoire et, sur- tout, qu’il est rigoureusement exact, puis reli- sez chaque ligne du programme en BASIC [il n'y o pas d’autre solution), Si tout va bien, tapez n'importe quoi (un mot suffira), puis essayez la commande CTRL-S (BSAVE). Donnez ECRC comme titre. Conti- nuez par CTRIi-F (Fin). Profitez de l'occasion pour vérifier qu'un GOTO 2000 vous restitue I'écran... Normalement, vous devez maintenant trouver ECRCI et ECRC2 sur votre disquette, Vous pouvez supprimer la ligne 55, puis relancer Voction par un nouveau RUN. Cette fois, vous allez passer aux choses sérieu- ses. Le lecteur ronronne, émet peut-étre des bruits bizarres (horribles !), mais le cadre appa- rait. Parfait, Tapez CTRL-A (accent circonflexe). (suite page 4). _ SEREETSESSESENSSS SST ESET TIN NTESE Eas See ee ens TeRE TENN SSsee Tees cerns TeSAAESesnsersseseSEaeneEsEEsesensees 3 TREMPLIN MICRO neeAnanesnnnersnnueesnenannevssnaUanunnaesRCEnESESEssueeEneeeeseSUNEeeReeesseEEAeTeReOREeRESASe SSNS ECRANS 86 COLONNES Vous devez obtenir le mot que vous aviez ren- 1ré plus haut, avant le BSAVE. C'est votre futur écran de commandes. Enfoncez une touche : vous retrouver un écran vierge (cadre excepté). Tapez alors votre écran de commandes (ci- dessous), en utilisant toutes les ressources offertes par les divers CTRL. Ainsi, le centrage s'obtient par CTRL-C, mois on peut centrer une ligne en se plagant au début et en topant CTRL-P (plus une case) ou DELETE (moins une case). Si vous tapez un malencontreux CTRL-O (effacement du bas de |'écran, sous le cur- seur), sachez qu'un CTRL-W (comme WRITE) vous permettra de retrouver I'écran précé- dent... intact. Pas beau cela ? Pa = u Lo barre d'espacement permet effectivement d'avancer (de méme que la fléche —e sur l'Apple le), mais n’efface pas le caractére qui se trouve sous le curseur. Pour taper un “espace-effaceur” (ou "marqueur", dans le cas du mode inverse), il convient de taper CTRL-E {comme espace). Et puis, il y a des astuces. Ainsi, pour passer une ligne en mode inverse, il suffit de placer le curseur au début, de taper CTRL-V, puis de posser sur la ligne en actionnant la barre d'espacement (ou la flache —», sur \'Apple te). Autre technique : faire un CTRL-C (centrage) qui inverse directement toute la ligne. APPLE Ile SOUS ProDOS : Une seule modification, Vajout d'une ligne 1295, afin de pouvoir charger un écran G l’adresse $400 (Texte do cette ligne : 1295 POKE 48984 ,0) VOTRE PREMIER ECRAN SERA CELUI-Cl (SOIGNEZ-LE : IL REVIENDRA SOUVENT !) RAN DE MMANDES GUY-HACHETTE (POURRA ETRE RAPPELE PAR UN [UIE ) [Oy DEPLACEMENTS : UTILISER LES FLECHES DU CLAVIER, MAIS * CTRL-A raméne 4 Ia premiere ligne de I'écran N © CTRL-Z conduit a la fin de la derniére ligne de I'écran RL-F * CTRL-D positionne le curseur au début de Ia ligne en cours . CTRL-I (c’est la fléche TAB, sous ESC) le met en bout de ligne NE PAS UTILISER LES FONCTIONS ESCAPE DE LA CARTE 89 COLONNES i 2 | ECRITURE : Tous les caractéres sont utilisables, mais l'—ESPACE n'efface pas un coractére existant. Pour imprimer un espace, taper un | CTRL-E © CTRL-G efface la page, 4 partir du curseur. ° permet de centrer une ligne et de l'effacer. « CTRL-P crée un espace pour ajouter un caractére et Ia touche Del supprime au contraire le caractére qui se trouve sous le curseur. TIEN = Rappeldel'écranmémoire [SEIS = INVERSE [EIEN = Loo QGRIES = esAve GEIB = SAVE LiGnes [SG = mPREsSION Tee = NORMAL ECRANS.LM (pour APPLE tle) 300: 20 58 FC JSR S$FC58 Home 303: 6D @1 CO STA $C@O1 Mise & 1 de 80 STORE (utilisation MEM.AUX) 306: 20 GC 03 JSR $G63GC ROUTINE n° 369: 4C 2—F G3 JMP $032F Entrée n°2 ST 30C: A200 LOX £$00 Boucle initialisée & zéro ROUTINE 1° 30E: A? 20 LDA £$20 Accumulateur chargé avec $20 (espace) 310: 8D 55 CO STA $CO55 Ecriture en mémoire auxiliaire 313 20 FO FD «JSR $FDFO COUT! : affiche le caractére dont le code ASCII est dans A 316 20 10 FC «JSR $FCIG BS : recule le curseur 319: 8D 54 CO STA $CO054 Ecriture en mémoire résidente 31C: 20 FO FD JSR $FOFO COUT! de nouveau SIF Es INX Incrémentation de la boucle 320 eo 28 CPX £$28 Sommes-nous 4 4G ($28) ? 322: DO EC BNE $0316 Un autre tour s'il n'y a pas égalité 324 60 RTS Retour au basic en 325: A227 LDX £$27 Registre X chargé avec $27 (39)... — _— 327: 86 24 STX $24 «.. et versé dans CH ($24), position horizontale du curseur, 329: 8D 54 CO STA $C054 Ecriture mémoire résidente 32C: 20 FO FD JSR $FOFO cout! ——_—_—_————_ ENTREE N°2 32F: 20 62 FC JSR $FC62 CR : retour chariot ———— 332: A? 20 LDA £$20 Espace chargé dans l'Accumulateur 334: 8D 55 CO STA $CO55 Ecriture en mémoire auxiliaire 337: 20 FO FD JSR $FDFG couTl 338A: Ad 25 LDY $25 Position verticale du curseur (CV) chargée dans Y¥ 33C; CO 17 CPY £$17 Est-elle égale 4 $17 (23) ? 33E: DO ES BNE $0325 Sinon, vers routine n°2 340: 20 10 FC JSR $FCIG BS : recule le curseur 343: FO C7 BEQ $030C Vers routine numéro 1 (tracé du bas de I'écran) 345: AD 59 03 LDA $6359 Recopie de la valeur ROUTINE N°3 348: 8D 63 03 STA $0363 poquée depuis le Basic lecture d'une 348; ADSA 03 LDA $035A ligne écran) 34E: 8D 64 03 STA $0364 a a 351: A200 LOX £$00 initialisation 353: AG OO LDY £506 355: 8D 55 CO STA $C@55 Page 2 commutée 358: BD OO GO LDA $0000,X Lecture (adresse poquée depuis le Basic) 35B: 99 00 48 STA $4809,Y Ecriture pour constituer lo variable X$ SSE: C8 INY Plus 1 pour mémoire 35F : 80 54 CO STA $COS4 Page 1 commutée 362: BD OO 00 LDA $0000,X Lecture 365: 99 00 48 STA $4800,Y Ecriture (suite variable X$) 368: C8 INY Plus 1 pour mémoire 369: EB INX Plus 1 pour Ia boucle 36A Eo 28 CPX £$28 A-t-on lu 2 fois 4G caractéres ? 36C: DO E7 BNE $6355 Un autre tour si ce n'est pas terminé | suite PAGES | TREMPLIN MICRO ECRANS.LM (eour APPLE Ile) (suite) 36E: AS 69 LDA $69 LOMEM pour I’adresse de X$ 370: 18 cic Annulation de la retenue 371: 69 02 ADC £$02 Plus 2 pour obtenir l'adresse 373: 8D 83 03 STA $0383 Préparation de la boucle (partie basse) 376: AS 6A LDA $6A LOMEM + 1 portie haute 378: 69 00 ADC £$00 Plus retenue éventuelle 37A; 8D 84 G3 STA $0384 Préparation de la boucle (partie haute) 37D; A2 G0 LOX £$00 Mise 4 zéro 37F: BD 8B G3 LDA $038B,X Lecture 382: 9D 00 0G STA $0000.X Ecriture 385: &8 INX Plus un 386: EG 03 CPX £$03 Retour au Bosic si on a lu 3 adresses 388: DO FS BNE $037F Encore un tour ? 38A: 60 RTS BASIC 388: 50 00 BVC $038D Longueur de Ia variable ($50 = 80) et 38D 48 RTS adresse (parties basse et haute) 38E: 38 SEC Retenve 4 zéro ou | (poquée depuis le Basic) ROUTINE N°4 $8F: 20 11 C3 JRS $C311 AUXMOVE (AUXMOVE) 392: 60 RTS Retour au Basic —— 393: 68 PLA POUR TERMINER : ROUTINE N°5 394: AB TAY BSAVE ECRANS.LM. (traitement 395: 68 PLA AS300, LS9D des erreurs) 396: A6 DF LDX SDF SS eee _———ns 398; 9A TXS 399: 48 PHA 39A: 98 TYA VERIFICATION Taper la ligne suivante, en mode direct : 398: 48 PHA T =@: FOR! = 768 TO 924: T = T + PEEK (I) : NEXT : PRINTT 39C: 60 RTS Le résultat doit étre 18234. iA ECRANS.Lm2c * 300 : 26 58 FC A9 26 20 GB G3 20 16 G3 A2 GG 20 FG FD E8 EG POUR APPLE lic La routine pour Apple lic est différente. La voici, condensée SAUVEGARDE AVEC BSAVE ECRANS.LM, A$300, LSC GUY-HACHETTE 50 DG F8 60 20 FO FD A2 4F 86 24 20 FO FD A4 25 CG 16 DG FO 60 AD 3B G3 8D 45 G3 AD 3C 3 8D 46 G3 A2 G0 Ad GG 8D 55 CG BD GG GG 26 6D G3 C8 8D 54 CG BD G0 00 26 6D G3 CB E8 EG 28 DG E7 RETURN, PUIS DE NOUVEAU : * 350 : AS 69 18 69 G2 BD 65 G3 A5 6A 69 GG BD 66 G3 A2 OG BD 8A G3 9D G0 GG E8 EG G3 DO F5 60 C9 EG 30 06 G9 80 C9 EG 10 OB G9 CO C9 EG 30 G9 49 40 4C 86 G3 C9 FF FG F7 99 OG 48 66 50 GG 48 18 26 11 C3 60 68 AB 68 Aé DF 9A 48 98 48 60 ... ET UN DERNIER RETURN ! T = @:FORI = 768TO 923: T = T + PEEK (I): NEXT: PRINTT | VERIFICATION Tapez, en mode direct, la ligne suivante : Le résultat devra étre 17044. PORN REESE REE E TET ANSE OR NEST NENA SK ESE CSS SSAAT SSSR ASSES TSS as TEES SUAS T LES Tee Eee eee SS SENSES SESS SESS ST A propos de la variable es X$, reliser la page 44 du numéro 2 de Tremplin Micro. Cette ligne installe une» fenétre 4 lintérieur du cadre. Si lon tape CTRL-6, > cCest-d-dire CHRS(@), RS est égol... a rien, Si RS est une lettre, on > passe immédictement a Vattichoge, ce qui per- met de gagner du temps, en évitant lo longue série des “IF”. Lo ligne 289 co 616 ajoutée pour la méme raison. SiR est plus grand que 14, il est intéressant de sauter par-dessus les lignes inutiles. ECRANS.BAS Version Apple fle 106 118 126 138 148 158 168 178 188 198 288 218 228 238 246 258 278 288 298 388 318 328 338 348 358 348 378 388 398 488 X$ = * ": REM VARIABLE A NE PAS DEPLACER ? R= ASC (RB) Pour un Apple lic, méme programme, mais avec les corrections indiquées page 11, LOMEM: 19888 FOR I = 1 TO 20:TRS = TRS + * “: NEXT TEXT : PRINT CHR® (4)"PRE3": HOME : PRINT DIM L$(24):LL = 837:ER = 915:M0 = 918 PRINT CHR® (4)"BLOAD ECRANS.LM": PRINT PRINT CHRS (4)"BLOADECRC! ,A$2080": PRINT CHR® (4 )*BLOADECRC2 ,A$2466": PRINT CALL 748: GOSUB 98: GOTO 158 POKE 34,2: POKE 35,23: POKE 32,2: POKE 33,76: RETU RN REM ## eee ee eee e ee HERR eRe HER EERE REM #*# SAISIE DE VOTRE ECRAN #* REM #HRHHERERRERERA ER HARE ERR H EH PRINT 1V = 31H = @ 1F V ¢ 3 THEN V = 31 CALL - 198 IF V > 22 THEN V = 22: CALL - 198 IF H ¢ @ THEN H = 72sV = V - 13 GOTO 148 IF H > 72 THEN KH = 0:1 = V + 1: GOTO 176 VTAB VY: POKE 1483,H: PRINT "";: GET RS IF R$ = *" THEN GOSUB 15@6: TEXT : GOTO 86 IF R = 127 THEN 558: REM DEL, SUPPRESSION IF R = 5 THEN R$ = “ *: GOTO 276: REM CTRL-E, ESPA CE MATERIALISE IF R = 32 OR R= 21 THENH =H + 1; GOTO 198 IF R ¢ 32 THEN 286 PRINT R$:H = H + 1: GOTO 168 1F R > 14 THEN 408 IF R = 1 THEN H = O:V = 3: GOTO 208 1F R = 3 THEN 718: REM CTRL-C,CENTRAGE IF R = 4 THEN H = 8; GOTO 268 IF R = 6 THEN GOSUB 1588: GOTO 1738: REM CTRL-F, FIN IF R= 7 THEN GOSUB 1566: NORMAL : CALL - 958: G OTO 286: REM CTRL-G, EFFACEMENT A PARTIR ET SOUS LE CURSEUR IF R= 8 THEN H =H —- 1: GOTO /88 IF R = 9 THEN H = 72: GOTO 208 IF R = 18 THEN V = V+ 1: GOTO 178 IF R= 11 THEN VY = V - 11 GOTO 168 IF R= 12 THEN GOTO 1278: REM CTRL-L,LOAD ECRAN IF R = 14 THEN NORMAL :ET = 8: GOTO 280; REM CTRL ~1 ,NORMAL IF R = 15 THEN H = @: VTAB V:H = 6: POKE 1463,H: N ORMAL : CALL - 848: GOTO 206: REM CTRL-O, EFFACER LA LIGNE EN COURS (SUITE PAGE 8) TREMPLIN MICRO Scere eeesnaEcn dasa ceee EEE ee EEE SET EE ESTEE TESTS ULES TETAS e Ss SONU ETOOSSESULSSSSS TSS ES SEEN TA NweE eS 418 428 438 448 458 468 478 488 496 586 Sie 528 538 548 358 578 598 768 778 788 798 888 818 828 838 IF R = 16 THEN 638: REM CTRL-P, LETTRE EN PLUS IF R = 19 THEN 1898: REM CTRL-S,BSAVE ECR1,ECR2 IF R = 2@ THEN 1188: REM CTRL-7,SAVE FICHIER TEXT IF R = 22 THEN INVERSE :ET = 1: GOTO 208: REM CTR L-V, INVERSE IF R = 23 THEN GOSUB 1588: GOTO 156: REM CTRL-W, RAPPEL DE L’ECRAN EN MEMOIRE AUXILIAIRE (DE DERNIER ) IF R = 24 THEN 1388: REM CTRL-X,EDITION SUR IMPRIM ANTE IF R = 26 THEN H = 72:V = 22: GOTO 268 IF R = 30 THEN GOSUB 1588: GOSUB 14668: GOTO 208; REM CTRL-FLEX, ECRAN DE COMMANDES GOTO 1468 "REM CCH Ee EH E RRR RR ERR REM ** SUPPRESSION DE CARACTERE #* REM #HeRORRHE RSE RES ER ERE RRR EH EEED | GOSUB 846 VTAB V: POKE 1483,H: PRINT MIDS (L$,H + 2) +" * GOTO 268 ! REM K#RHRRHREHERHEREERES ER ERE HERS REM «* CARACTERE SUPPLEMENTAIRE #* REM SHES ERE ERT ER SEHR HEHEHE REESE : GOSUB 848 VTAB V: POKE 1463,H: PRINT * " + 2. =) GOTO 268 t REM CHRMHMNHRRHEHERHHMH EERE ER EH ENE REM ## CENTRAGE O° UNE LIGNE bahed REM S2eeeneeenenneeseneeeeereeeeee MIDS (L$,H + 1,7 t GOSUB 846:L = LEN (L®) ONERR GOTO 188¢ IF ASC ¢ MIDS (L$,L,1)) = 168 THEN L = L - 1: GOT 0 738 L$ = LEFTS (L$,L) FOR 1 = 1 TOL: IF ASC ¢ MIDS (L$,1,1)) = 168 THE N NEXT NORMAL : VTAB V: POKE 1483,8; CALL - 868: IF ET = 1 THEN INVERSE ; L=L+1- 1::H = INT (74-1) / 2: POKE 14863,H: PRINT RIGHTS (L#,L) POKE 214,81 GOTO 208 : REM KHHEHHEHRRHHHRMERRREEM ER RHE EEE REM #* LECTURE D°UNE LIGNE ## REM ##EESSER SERED HEHE RHEE HERR ERE t GUY-HACHETTE ECRANS.BAS (SUITE) ra les commondes de Vimprimante (voir plus loin) concernent IMAGE WRITER ou DMP Apple. STR Accent circon- flexe) permet de revoir \écran de commandes {attention | il faut d’abord Vevoir taps... ef mémo- risé |). + Yon est en mode INVERSE, les effets sont trés... spdécioux : toute lo inverse, espaces compris, 6 portir du coroctére & supprimer. Pour que tout rentre dans l'ordre, posser en mode NORMAL (CTRL-N), placer le cur- sour immrédiatemont 6 la suite du dernier coractére utile... @t retaper DEL (Delete). On assiste au méme phénomene avec le caractére supplémentaire (ligne 639). On pourrait faire précéder les deux GOSUB (550 et 630) por "NORMAL -", mais les lignes en mode INVERSE passeraient alors en mode NORMAL. @NOTA: CTRL-C (cen- trage) fait passer une ligne normale en mode INVERSE si l'on a pris lo précaution de taper ou préoiable un CTRL-V (INVERSE)... et rassurez- vous, sur votre écran, tout cela deviendra beoucoup plus clair | 84@ RESTORE : FOR 1 = 1 TO Vs READ L: NEXT 85@ POKE LL + 28,1 - INT (L / 256) * 256: POKE LL + 2 1, INT (L / 256): CALL LL:T$ = MIDS (X$,1) 86@ L$ = MIDS (X$,5,73): RETURN 878 : B80 REM ##¥eeeeeeeeteeeHeneeeeeeeeeeee 89@ REM #* TITRE O° UN FICHIER + 900 REM FHNHHHHHRHEHKHHEN NR RR RHE RE ER 918 : le programme véritio 928 NORMAL : TEXT : VTAB 17: CALL - 958: PRINT 1: PRIN Vexistence d'un fichier T TRs et vous prévient si le titre existe déja, 93@ VTAB 28: POKE 1463,8: PRINT “TITRE PROPOSE (? POUR Un conseil; "“LOCKEZ” OBTENIR LE MENU) “3: CALL - 198: INPUT “";F$: IF votre éeran de comman- Fe = "* THEN RETURN des dis quil sera instollé. | 948 IF F$ = "2" THEN HOME : PRINT CHR® (4)"CATALOG": eaten techatne seroceriants GET R$: POKE ~ 16368,8: HOME : GOTO 928 de cette belle page | 95@ IF ASC (FS) < 65 OR ASC (F$) > 98 THEN 938 968 ONERR GOTO 1618 978 G$ = FS + "1" 988 PRINT : PRINT CHR® ¢4)"VERIFY*G$: IF LT = 1 THEN LT = 8: GOTO 1888 998 \VTAB 28; CALL - 958; INVERSE : PRINT F$;: NORMAL + CALL - 196: PRINT * EXISTE —- 1) TITRE MAINTENU <2) AUTRE TITRE "3: GET RB: POKE - 16368,8: IF RS < > "1" THEN 928 1068 POKE 216,08: RETURN 1618 CALL ER: POKE 216,6: IF PEEK (222) <¢ > 6 THEN 17 98 1028 IF LT = 6 THEN RETURN 1938 VTAB 28: CALL - 958: INVERSE : PRINT F$;: NORMAL + CALL - 198: PRINT “ N’EXISTE PAS - APPUYE2 SUR U NE TOUCHE SVP ";: GET R$: POKE ~- 16368,8: GOTO 928 1848 : 1050 REM #8eeeeeeeeeeenedeneesecueneeee 106@ REM ** SAUVEGARDE DE L’ECRAN a 1078 REM ####+¢¢44eeeeeeeReE RRR ERR ERS 1088 : 1698 GOSUB 15@0;:LT = 0: GOSUB 92@: GOSUB 1580 118@ GOSUB 1588: IF F$ = "" THEN 158 Vous mémoriser deux y | 1118 F1$ = FS + "1":F26 = FS + "2" erons (chacun deux"? | i429 PRINT : UTAB 2: PRINT CHR$ (4)"BSAVE"F1$" ,A8408,L me 1016": POKE - 16299,8: PRINT CHRS (4)*BSAVE"F28", A$400,L1016"; POKE - 14388,0: GOTO 200 1136 : 1140 REM S#8eeeeeREHHRERHE HAE REE HERES 115@ REM ## SAUVEGARDE EN FICHIER T ## 1168 REM ###HHHHRHRHH RRR EHR RRR R ER 1178 : Cette partie du Pro: 1186 N = V;V = 8;F% = "ECR,T* gramme ne présente 1196 IF V ¢ 23 THEN VY = V + 1: GOSUB 848:L$(V) = T$: GO pas une réelle utilité, Elle To 1198 mémorise, sous forme de fichier T, 23 lignes d'écran, 1288 V = N: VTAB 2: PRINT : PRINT CHRS (4)"OPEN"FS: PRI (SUITE PAGE 10) (Anecceccssaessnnesseases 9 TREMPLIN MICRO 1218 1228 1238 1248 1256 1268 1278 1288 1298 1380 1328 1338 1948 1356 1368 1378 13988 1398 1488 1418 1428 1438 1448 1458 1468 1478 1488 1498 1586 1518 1528 1538 1548 1558 1568 1578 1588 1598 NT CHRS (4)"WRITE"F$: PRINT 23: FOR I = 1 TO 23: P RINT CHRS (34) + L$CI): NEXT : PRINT CHRS (4)*CLO SE“FS GOTO 268 3 REM #8 ee HTH HSER eRe eee ee Tee eeeEe REM #* CHARGER UN ECRAN ” REM *HAe ee RRM R RRR RRR Ree EEE ED : GOSUB 1588:LT = 1: GOSUB 928 IF F% = *" THEN GOSUB 1588: GOTO 1326 Fig = FS + "1":F2S = FS + "2" POKE - 16368,8:; VTAB 2: PRINT CHR® (4)"BLOAD"F1$ *,A$496": POKE - 16299,6: PRINT CHRS (4)*BLOAD"F2 $" ,AS400": POKE - 16380,0 GOSUB 98: GOTO 158 ‘ REM 4H RMR RR ERS RRR ER REM **# COPIE DE L’ECRAN 8@ #* REM SHNEAAER SHEESH ER ER ERR ROSH ERE ES ' N= Vi¥ = 6; NORMAL IF V ¢ 23 THENV = V + 1: GOSUB 840:LS(Y) = TS: 6D TO 1398 GOSUB 1586 PRINT CHRS (21): HOME : PRINT CHR (4)"PREI"1 PR INT CHR® (27)"E": PRINT CHR® (27)"L@18": PRINT C HR® (27)"!": PRINT CHRS (9)*GIN" FOR 1 = 1 TO 23: PRINT L$(I): NEXT : PRINT : PRINT CHR (12): PRINT CHR® (4)"PREG" PRINT CHRS (4)"PRE3"*: HOME : PRIN( . SASUB 1588 Y= N: GOTO 288 t REM KHRRRERHREEEN HMR M HMR e Kee REM #* TRANSFERT ECRAN MEM AUX #8 REM #HERHERHEH EERE R HERE E REE EEEH : POKE MO,56: POKE 68,8: POKE 61,4: POKE 62,248: POK E 63,7: POKE 66,0: POKE 67,64: CALL MO POKE —- 16299,8: POKE 66,8: POKE 61,4: POKE 62,248 : POKE 63,7: POKE 66,8: POKE 67,68: CALL MO: POKE - 16388,8 RETURN : REM FHMERHRRHER TREN H HHH ERR REM #* RECUPERATION DE L“ECRAN ## REM #£#eeHRRSERRRE SEHR KERN ER ERE HE : POKE MO,24: POKE 68,8: POKE 61,44: POKE 62,248: PO KE 63,67; POKE 66,0; POKE 67,4: CALL MO POKE ~ 16299,8: POKE 68,8: POKE 61,68: POKE 62,24 8: POKE 63,71: POKE 64,8: POKE 67,4: CALL MO: POKE ~ 16388,8 GUY-HACHETTE ECRANS.BAS (SUITE) Avec ProDOS. prévoyez une ligne 1295, ainsi rédi- 3. (quel style {) : 1295 POKE 48984,0 Cela évitera 4 votre Apple de vous faire une scéne, consistant tout bonnement 6 refuser de charger votre écran | @ DMP Apple ou IMAGE WRITER. . Avec d'autres mi » sent tenir & PR CHRS(9) "BIN". ov “B9N", selon les cas. Attention | avec un Apple lic, plusieurs lignes sont & modifier et d'outres & gjovter, Lisez le détail ci- contre. les routines en ossem- 1688 GOTO 78 bleur reprennent des pro- 1610 Wr ceiceae one tes 1620 REM ####teneeeeerecaeenteeeeereseee deux premiers numéros 1636 REM ** AFFICHAGE ECRAN COMMANDES «* do Tremplin Micro. 1640 REM #HHORHRERRHEHM MEH HH RRR R RRR S 1658 : 1668 POKE MO,56; REM RETENUE A 1 1678 POKE 60,8: POKE 61,32: POKE 62,248: POKE 63,35: PO KE 66,6: POKE 67,4: CALL MO 1686 POKE MO,5é: REM RETENUE A 1 1698 POKE - 16299,8: POKE 68,6: POKE 61,36: POKE 62,24 8: POKE 63,39: POKE 66,0: POKE 67,4: CALL MO: POKE - 16386 ,6 1708 CALL - 198: POKE - 16368,8: WAIT - 16384,128,12 7: POKE - 16368,8: GOTO 1588 1718 : 1728 DATA 1824,1152,1280,14968,1536,1664,1792,1926,1064, 1192,1328 ,1448,1576,1784,1832,1960,1184,1232,1368,1 4988 ,1616,1744,1872,2608 1736 TEXT : HOME : END 1748 : 1756 REM #H##eee Reed eRe ee eee 1766 REM ** AUTRES ERREURS baie 1778 REM ##Fteeseeeeeeeeeeeeeeeeeerenae 1788 : 1798 PRINT : VTAB 28: CALL - 958: PRINT "ERREUR NUMERO syne sed see enentcr * PEEK (222)" LIGNE " PEEK (218) + PEEK (219) * 2 CTRL-F (FIN), tapez un 56" -- PRESSEZ UNE TOUCHE *;: CALL - 198; GET RS: porch Ntodela pire tantric POKE - 16368,0: RETURN Geran et le DOS (eno! | 1888 CALL 915: POKE 216,8: GOTO 208 erreur 1). 2088 POKE 51,8: GOSUB 1566: GOTO 206 = ROUTINE ECR.MEM2C | APPLE IIc (onirications Dt EcRANS.BAS) ee Rentrez et sauvez ce petit programme en uti- 5Q DIMLS(24): LL = 897: ER = 914: MO = 07 lisant la technique habituelle ; CALL-151, etc 55 Ml = 7744 :; M2 = 7600 : PRINT CHR${4) "BLOAD puis BSAVE ECR.MEM2C, ASIE4O, L$70 ECR.MEM2C" * 1E40.1EAF 90 POKE 34,3 : POKE 35,22 : POKE 32,3 - POKE 33,76 :RETURN ic 188 IFH @THENH = 73:V = V—1:GOTO10 1E40; A2 G0 BD 78 G4 9D OO IE 190 IFH 73THENH =0;V=V+1:GOTOI70 1648: BD F8 G4 9D GB IE BD 78 SUPPRIMER LES LIGNES 246 - 250 1650; 05 9D 10 1E BD F8 O5 9D i Encore, alga rave 1658: 18 1E BD 78 G6 9D 20 IE ar iw : 1660; BD F8 06 9D 28 1E BD 78 | 0 prripreas resets srs 1668: 07 9D 30 1E BD FB 07 9D | jae camo ee 1€7G; 38 1E E8 EG G8 DO CB 460 1400 IM = 1: GOSUB 1580 1€78; A2 GG BD GG 1E 9D 78 G4 1515 IFIM = 1 THENIM =@ 1E8G; BD G8 JE 90 F& G4 BD 10 1665 CALLM) 1688; 1E 9D 78 G5 BD 18 IE 9D 1695 CALL M2 1690: FB GS BD 20 1E 9D 78 G6 Dans le tobleau de commandes, CTRL-E devient inutile. Sur ‘Apple Jic, 1E98: BD 26 1E 9D F8 G6 BD 30 lespace joue son réle normal et lo fldche droite provoque un déplace- \EAG: IE 9D 78 G7 BD 38 IE 9D ment vers la droite, Attention | Sauvegardez votre écran sur disquette 1EA8; F8 G7 EB EG G8 DO CB 60 avant de l'imprimer, car il sera ensuite efface | " TREMPLIN MICRO LOGICIEL Si votre anglais laisse encore a désirer... Partez en voyage avec MAX ! Od en est votre anglais ? Sauriez-vous vous faire com- prendre si vous étiez parachuté 4 Londres ? Si la réponse est oui, MAX The Globe Trotter ne vous intéresse pos, encore que, possesseur d'un Apple, il ne saurait vous laisser totalement indifférent... pour la simple, mais excellente raison qu'il utilise votre ordinateur personnel, dont il tire d‘ailleurs le meilleur parti. Pour utiliser MAX — 4 disquettes, 2 casset- tes, et un Microlingua Book de 180 pages — il suffit de disposer d'un Apple Hic ou fle équipé d'une carte 80 colonnes, ainsi que d'un lecteur de cassettes. Si vous désirez une bonne qualité sonore, je vous conseille le lecteur de votre radio, pré- férable, et de loin, 4 votre magnétocassette portable. Si vous n'avez vraiment aucune connaissance en anglais, MAX ne deviendra pus votre ami sans de sérieux efforts de votre part. Par contre, si votre vocabulaire (anglais) de base atteint déja une centaine de mots, demandez & MAX, soit de vous rafraichir la mémoire, soit de vous en apprendre davan- tage, ce qui revient au méme. Que |'on ne s'y trompe pas : il s‘agit d'une ini- tiation sérieuse 4 l'anglais (et 4 l'américain) de tous les jours, et non d'une approche plus ou moins réussie de |'étude de cette langue. Avec MAX, vous apprendrez réellement 4 vous débrouiller, par le son, le texte et Vimage (celle-ci ne constitue d'ailleurs pas l'intérét numéro 1 de ce logiciel). Avec la Computercassette (c'est aussi la pre- miére), vous accompagnerez MAX en bateau, dans le train, en avion, 4 I'hétel et au restaurant, Dans le méme temps, votre Apple chéri vous invitera & répondre & des questions plus ou moins difficiles, tout cela avec un accompagnement musical et un cer- tain nombre de bruitages. Par le truchement du mode inverse, votre attention sera attirée sur les mots pouvant poser un probléme de comprenette. Ils vous seront bien sr expliqués... dans un anglais moins obscur, Sketches, exercices, jeux ; le cours n'est pas seulement didactique, mais se veut ludique. Un bon point pour lui. A noter que vous n’étes jomais obligé de subir le programme, la tou- che ESCAPE vous permettant de revenir au menu si tel est votre bon plaisir... et aussi de recommencer @ tel ou tel niveau du cours. Le manuel de référence parait complet, mais je n'ai pas aime ses couleurs (beaucoup trop vives), sans doute destinées 4 interdire la photocopie. C'est un peu dommage car il est bien concgu. Ceci dit, le Microlingua Book reste un bon ouvrage d'accompagnement, ot chaque exercice est clairement expliqué en francais. Il est indispensable aux vrais débutants. Nestor. Vous pouvez recevoir une disquette Démo, fort bien présentée d'ailleurs, en utilisant le bulletin de commande de la page 62. (MAX The Globe Trotter est vendu 1200 F T.T.C., prix justifié). GUY-HACHETTE eR SARNESERSAENSRUSSSESS SSE SSSR SSS SESSA STRAT RSA TSRSSR SOREL RSS ESTES SNE SRESSRNERSETRERESEESRESEOEEEE Jeu du numéro 2 Cryptotexte RYPTOTEXTE permet de décrypter ou coder un programme préala- blement tronsformé en fichier EXEC (voir la fiche n°l de Tremplin Micro). Nous vous donnons, page suivante, le listage de Ia petite routine en assem- bleur qui correspond & la ligne 450 (DATA) du pro- gramme en BASIC. 18 TEXT : PRINT CHRS (21): HOME BESS ee TEXTE ORIGINAL 24 PRINT "VOULEZ~VOUS DEVINER UN NOMBRE CHOISI PAR L’ORDINATEUR 2* 30 VTAB 4: HTAB 1: INPUT "OUI OU NON ? "3RS rr 58 IF R$ = "NON" OR RS = "N* THEN 168 IF R6 << > "OUI" AND RS ¢ > "0" THEN 38 68@N=1 + INT ( RND (1) ® 108) a 78 PRINT : PRINT "CE NOMBRE EST COMPRIS ENTRE ";: INVERSE : PRINT 1 i: NORMAL : PRINT * ET *;: INVERSE : PRINT 188; NORMAL 88 VTAB 18: HTAB 1: CALL - G48: INPUT "VOTRE NOMBRE -) "yNS 98 X = VAL (NS): IF X = @ THEN $8 186 IF X = N THEN Rb = * VOUS AVEZ GAGNE !*: GOTO 128 7 118 R$ = “PERDU! TROP PETIT!*: IF X ) N THEN R$ = "PERDU! TROP GRAND! — 1@CaC+l 138 VTAB 13; HTAB 1: CALL ~ B68: PRINT R63" - ESSAI NUMERO "3: INVE. RSE : PRINT C: NORMAL 148 IF X<¢ ) 6 THEN 88 ae 1s PRINT + PRINT : PRINT "PRESSEZ UNE TOUCHE SVP *;: GET RS: GTO 18 168 PRINT : PRINT 1 PRINT "DOMMAGE, NOUS NOUS SERIONS BIEN AMUISES'* DS*CLOSE"F2$: HOME : RUN 20 DS = CHRE (4) 8 30 DIM Le(i5@) 298 REM eEELLEILirti iii it itt t tt} 40 GOTO 448 300 REM * DECRYPTER OU CRYPTER 8 Wo: 318 REM SCCSEPEEPECEU SEER TEOEECEROEEEE 68 REM CEPPEREONESSRHTSERENEEHESE REED 328. 78 REM * LECTURE ET RE...CREATION # 338 INVERSE : PRINT" CRYPTER OU DECRYPTER 88 REM eri irrreciiiit tires UN FICHIER (T) *: NORMAL v8: 348 FOR 1 = 1 TO 18:78 = 18 + *___*: NEXT 108. L = O:N = O:L6 = ** 358 VIAB 28; PRINT TS 118 ONERR GOTO 248 368 VTAB 22: HTAB 2: PRINT "(1) CRYPTER (2 128 PRINT : VTAB 15; PRINT DS"OPEN"FIS 138 PRINT DS*READ"Fis ) DECRYPTER <3) FIN *y: GET R%: PRINT RE:R = ASC (RS) ~ 48: IF R= 1 ORR=2 148 GET Cas THEN 398 158 CALL 768 378 IF R< > 3 THEN 368 168 CA = PEEK (4): IF CA = 13 THEN 188 388 TEXT : HOME : END 390 IF R= 1 THEN Fi8= "JEU*SF26 = "JEU."V 178 L$ = 18 + CHR (CA): GOTO 148 188. L=L + ISLS(L) = LosL6 = *"; GOTO 148 $ = “AEIOUOAUEI": GOTO 418 1%: 400 F28 = *JEUTSFIS = "JEU.*:U8 = “OAUETAEIOU 208 REM UILCIretii iii iiittrrt ttt " 218 REM * EORITURE OU FICHTER F2s « 410 FOR | = 797 TO 686: POKE 1, ASC ( MIDS ¢ 228 REM WHeSEREEOEDOO REESE ES EEHEORORES VS,1 ~ 796,1)): NEXT 238 : 428 VTAB 6: PRINT "ON PART DE ";: INVERSE : 248 IF PEEK (222) = 5 THEN PRINT : PRINT D PRINT F183: NORMAL + PRINT * POUR CREER * S*CLOSE*Fi$: POKE 216,8: GOTO 268 i+ INVERSE : PRINT F2$: NORMAL 256 VTAB 22: CALL - B48: PRINT "PROBLEME NO 438 GOTO 188 N PREVU AU PROGRAMME": STOP $48 FOR I = 768 TO 796; READ R: POKE I,R: NE 268 PRINT DS*PRES": PRINT : HOME ; FOR 1 = 1 XT : RESTORE ; GOTO 338 TO Ls PRINT L8(1): NEXT 458 DATA 173,8,2,281,13,288,2,248,18,162,8, PRINT OS*OPEN"F2$: PRINT DG*WRITE*F28: F OR 1 = 1 TO Ls PRINT L$<I): NEXT : PRINT 221 ,29,3,288,6,189,34,3,133,6,96,232,224, 5,288,248, 248,246 i 13 TREMPLIN MICRO Cryptotexte : = ryptotexte : PAR ProCODE 3 Les données de la section 4 encadrée 5 fen hexadécimal) aux 6 valeurs décimales de la 7 ligne 450 (DATA) du pro- B ORG ORG $300 gramme en Basic. 9 10 BUFFER EQU $200 ; GET 4 partir d'un fichier T 11 CSR EQU $06 ; Case-réponse “poquée" en basic 12 13 4 LDA BUFFER 15 CMP £$0D ; Si"return”, retour au basic ! 16 BNE INIT 17 BEQ REPONSE ; _ ...si la réponse est positive 18 19 INIT LDX £$00 ; Pour tester les 5 voyelles 26 BOUCLE CMP ASCI.X : Vraie comparée au contenu de A 21 BNE INC ; Sinégatif, on continue 22 LDA ASC2.X =; Fousse est mise dons A 23 24 REPONSE STA CSR : Etc'est la réponse... 25 RTS ; ... Suivie du retour 26 27_~‘INC INX ; Plus} dans la boucle 28 CPX £$05 : ly aS comparisons 4 faire 29 BNE BOUCLE 30 BEQ REPONSE ; Cen‘est pos AEIOU 3 32 ASC ASC "AEIOU" ; Les vraies 33 ASC2 ASC "OAUEI" ; Les fausses 34 eee $031D ASC2.,...., $0322 BOUCLE ...$030B BUFFER ..., $0200 PeOvS $0006 = INC ....... $0316 INIT ........ $9309 REPONSE... $0313 A partir du méme canevas, il est évidemment possible d'utiliser une autre clé pour coder un texte. Si le nombre des caractéres 4 permuter est différent de 5, il faut alors modifier la valeur indiquée 4 la ligne 28 (octet $318). Les adresses $31D et $322, ici fournies par ProCODE, seront facilement recal- culées si l'on ne dispose pas d'un assembleur. Je vous rappelle que créer une ligne de DATA 4 partir d'une routine en assembleur est absolument enfantin, Prenons l'exemple de cette page (adresse 768 8796). Il suffit de taper, en mode direct : PRINT “]450 DATA” ; : FOR | = 768 TO 796: PRINT PEEK (1) :"." ; : NEXT, puis un RETURN, Une ligne 450 va s'afficher. Passer en mode ESCAPE, et la valider en allant de la premiére 4 la der- niére lettre, en utilisant la flache droite —». Effacer la derniére virgule avant le RETURN final. NESTOR. Nota : Le ] (clavier américain) correspond ou § du clavier AZERTY, Qu’on se le dise dans les chaumiéres | SNS SSNS SSNS TERENCE ES TSREN VAS SSE TELAT CTE T RES SSSSDOSSIN WOON BU OOSS SAN OHE OSE SOLE SSOSSOSSESS SESE SEES GUY-HACHETTE 4 INITIATION Utilisez d'abord le mini-assembleur Le mini-assembleur vous est expliqué dans “Lo pra- tique de |'Apple Il". C’est une facilité que donne le systéme pour écrire de petites routines et les tes- ter rapidement, sans pas- ser par tout le circuit des ossembleurs. Circuit qui implique, outre l'écriture du programme, son enre- gistrement, et son assem- blage avec manipulation de disquettes, erreurs variées 4 corriger, etc, Le mini-assembleur est trés simple, et il vous suf- fira amplement pour véri- fier par de petits tests les mécanismes que vous voudrez étudier. Il pré- sente pour le débutant un triple avantage ; 1. il nécessite trés peu de Découvrez l’assembleur avec Madeleine HODE, ‘auteur de GRIBOUILLE Programmer en assembleur, c'est le jeu le plus merveilleux que l'on puisse imaginer. Aprés une pareille affirmation, beaucoup de lecteurs ont tourné la page. Je peux supposer que nous sommes seuls, vous qui étes tenté por cette “récréation”, moi qui voudrais vous aider 6 l’apprendre. Toutefois, jeu n'est pas toujours synonyme de facilité, comme vous le savez déja. D’accord ? Alors, nous pouvons commencer. connaissances (deux ou trois pages d'explications, alors qu'un manuel d’as- sembleur peut en compter 50 4 89). 2. il vous donne I’habitu- de de tester en direct vos idées avant de les intégrer & un programme en for- me, plus ov moins lourd et plus ou moins rigide. 3. enfin, vous n’avez pas 4 Vacheter ; il est dans votre machine. Quand vous serez sir de votre vocation, achetez un assembleur. ProCODE, por exemple. Cela dit, votre liberté de choix reste entiére, et personne ne se permettrait, ici, de vous influencer. Materiel Si vous étes réellement tenté por l’assembleur, si vous étes en fonds, et si vous voulez que votre équi- pement soit vraiment com- plet, achetez-vous : * une calculette de pro- grammeur, qui fonctionne en hexadécimal aussi bien qu'en décimal, et qui traite les opérations logiques (AND ORA EOR), Sachez tout de méme que votre Apple fait les addi- tions et les soustractions en hexadécimal. Sur un seul octet, et avec seulement deux nombres, certes, mais c'est déja mieux que vos doigts. Comment ? Tapez CALL-151, Vous avez le moniteur. Tapez alors votre opération. Par exemple 79 + 32 RETURN vous améne le résultat = AB. A vous de penser aux retenues et d’en tenir compte. * si vous avez un Apple /le, (suite page 16) TREMPLIN MICRO sRRREeSresvnssersneeenss TEERR ATER ESSERE TOS Eee e EU ARR ENA EA SETAE NSS ASS SSS USSSE STEN ASAT AS eeAeeeeT SEE achetez le kit qui lui don- nera le processeur, la ROM et le décodeur de caractéres du Iie. Vous aurez ainsi une machine plus rapide, plus puis- sante, avec un mini- assembleur trés bien concu et trés commode qui vous fera passer sur votre clavier des nuits réelle- ment magiques. Pratique et exercices Choisissez entre deux méthodes : * utiliser un manuel d’ini- tiation qui comporte beau- coup d'exercices. Si vous trouvez que les ouvrages qui sont indiqués ci-dessous n’en présentent pas suffi- samment, demandez con- seil 4 votre vendeur. * explorer, difficilement, lentement, mais fructueu- sement, les routines du moniteur. Et pourquoi tout cet effort ? Pour le plaisir. Pour la paix de |'ame, pour la vigueur et la santé du neurone. Mais encore ? Tout dépend de votre ima- gination. Si vous concevez facilement tout ce qu'un ordinateur pourrait faire pour vous amuser, ou pour vous aider, si vous avez des envies, des be- soins, des projets, aucun probléme. Vous finirez por écrire vos program- mes, et vous verrez que Vossembleur, pour certai- nes routines, est l'outil le plus adéquat, le plus élé- gant et le plus rapide. Vous passerez avec vir- tuosité du Basic ou du Pas- cal & l'assembleur, selon des ragles et des propor- tions que vous détermine- rez 4 votre guise. Et ceux qui n'ont pos cette forme d'imagination ? Ceux-la, il y a longtemps, nWest-ce pas, quills ont tourné la page !... BibliDgraplnbe esas scape: vue por A andr et G. Creuzet. Editions Radio. “Programmation du 6582” de Rodnay Zaks, éditions Sybex. (Vous pouvez vous arréter avant le cha- pitre “Techniques d'entrées-sorties"). Pour passer des connaissances théoriques données par Rodnay Zaks au pilotage de l'ossembleur sur un Apple //; “La pratique de l'Apple if", 3° volume, de Nicole Bréaud-Pouliquen et Daniel-Jean David, éditions du P.S.1. Voila déja de bons pavés sur la route de I’assembleur. Il y a certainement d'autres excellents ouvrages d'initiation. Mais ne les connaissant pas, je n'en parlerai pas. Il yo aussi les ouvrages spécialisés. Voici quelques titres, mais gardez-vous de les acheter avant d'avoir assimilé l'un des précédents : * Manuels de référence Apple Me ov ile édités par Apple. * Manuels ProDOS édités par Apple (ProDOS User's Kit etc.). "Beneath Apple ProDOS", by Don Worth and Pieter Lechner, éditions Quality Software. L'ouvrage précédent des mémes auteurs (“Beneath Apple Dos”), a livré les secrets du Dos 3.3 4 tous les pro- grammeurs de ma génération, et tous le connaissent — ou devraient le connaitre — par coour. i} reste l'ouvrage fondamental pour le Dos 3.3, dont la documentation est moins abondante que celle du ProDOS. D'une maniére générale, les ouvrages techniques édités par Apple sont clairs et complets. Ils apportent au programmeur expérimenté une satisfaction proche de la béatitude. Mais ils sont dif- ficiles pour des débutants. Attendez un peu. Ainsi, quand vous les aborderez, vous découvrirez qu'ils répondent @ des problémes que vous vous serez déja posés. Vous les comprendrez plus faci- lement, alors que leur intérét vous échappera en grande partie si vous les attoquez trop tét. lly a enfin tous les ouvrages que vous irez feuilleter dans les boutiques, et por lesquels vous vous laisserez tenter, & tort ou 4 raison. A dose modérée, les achats stupides sont quand méme le sel de l'existence. . GUY-HACHETTE % MICRO-RECRE Logique élémentaire IX personnes (désignées par leur prénom, c'est plus sympa !) sont ceci... ef ne sont pas cela. D’oprés les renseignements, le pro- gramme trace le portrait-robot de /a personne X, qu'll s'agit évidemment d'identifier, Ce jeu repose sur une logique élémentaire qu'il nest pas interdit de développer (4 vous de jouer |), Le programme actuel peut étre complété par une poge d'explications et por d'autres lignes de don- nées (DATA), 18 TEXT : PRINT CHRS (21): HOME : CLEAR il est plus simple eae \ > 28 DIM $8(4),S1846,3) ,$2%(4,3):S8B = 3 ser plusieurs sdéries ald compan eal pt 30 FOR 1 = 1 TO 18:T$ = TS + "=---": NEXT 40 FOR I = 1 TO 19:8 = Ve + * ": NEXT Se: 6B REM +x HREM ERHE MH HR REE R ES 76 REM # GAISTE OU DONVEES EN DATA + BO REM ##kHASE SHR HE ER EERE eRe eR RR Ree 78 : % ee Se nee ® 10@ VTAB 8: HTAB 6: INVERSE ; PRINT 13: NORMAL i PRINT gromme : c'est plus rapide " SAISIE DES ELEMENTS": PRINT : PRINT : HTAB 8: IN ee do lob colate: VERSE ; PRINT 2;: NORMAL : PRINT * ELEMENTS DU PROG RAMME" 118 GOSUB 190: IF W = 1 THEN 426 128 IF W= 2 THEN GOSUB 1168:5 = 6; GOTO 4698 136 GOTO 118 146; 150 REM *#¥tteteeeeeeteneeeeeereenneen 168 REM * ATTENTE SANS CURSEUR . 170 REM HAee eR RHR RRR R EHR RRR RRR SEED 188 : CAiterge actionne la clo- gm 1198 CALL ~ 1981 POKE - 16368,0: WAIT - 16984,128,12 erat 7: POKE - 16368,0:;W = PEEK ‘¢ ~ 16384) - 48: RETUR N 208 : 210 REM HHH HHH R RRR RR RR RHR RRR eRe 228 REM * CHASSE AUX REPETITIONS * 230 REM ##¢ Fee ee eee EH e Hee eee RH eee eee 248: Aucune logique n'est pos: 4 =| 259 TR® = “MOT DEJA UTILISE - A CHANGER® sible at on onne ie | 268 IF LEN (S1$¢S,51)) > 18 OR LEN (S28¢S,82)) > 1@ plusieurs personnes THEN TR® = “UN SYNONYME DE MOINS DE 11 LETTRES SVP* : GOTO 368 278 FOR 1 = 1 TO Si: FOR J = 1 TO SB: IF PR = 3 THEN 32 8 (suite aw verso) Vv TREMPLIN MICRO ‘ASO R EEN ST ASSURE ESE Ree S NES eENR ETT wee ee ssoSeeeseesensneNssnsSesoessaeesesewens sane Eases 288 298 386 318 326 338 348 358 368 376 388 396 408 418 428 438 448 458 468 478 488 498 586 518 328 530 548 558 568 s7e 588 598 688 618 628 638 648 658 668 678 688 698 IF S$ = 1 AND Si = J THEN 308 IF S$1$(S,S1) = S$1$¢1,J) THEN 368 IF $1$¢S,51) = $2$¢1,J) THEN 348 GOTO 358 IF S = I AND S2 = J THEN 348 IF $2$(S,S2) = $28(1,J) THEN 368 IF $28(S,S2) = S1$(1,J) THEN 368 NEXT : NEXT : RETURN PRINT : VTAB 22: CALL PR GOTO 518,518,558 3 REM Steen tena eee RRR REE ERR EHR EE REM * SAISIE * REM S#etet ees eeeeeeeeseeeeeeesanee ~ 958: PRINT TR$: POP : ON ; $ = 8:81 = @:S2 = 6 HOME : INVERSE : PRINT “LE SUJET";: NORMAL : PRINT “ (UN SEUL MOT-4 SUJETS AU TOTAL)" VTAB 2: PRINT TS S$} = 6:82 = 8 S = $ + 1;PR = 1: PRINT ; VTAB 4; CALL - 958 PRINT : VTAB 4: INVERSE : CALL - 198: PRINT 53: N ORMAL : INPUT “ -> “;S$(S): IF S$(S) = "" THEN 478 GOSUB 618 PRINT : VTAB 4: CALL ~- 958: INVERSE : PRINT LEFT $ ($$(S),19);: NORMAL : PRINT * EST:":PR = 2 Si=Si+t PRINT : VTAB Si + 5S: CALL - 198: PRINT Si" - "43 INPUT *";$19¢S,91); IF $19¢S,S1) = “* THEN 516 GOSUB 258; GOSUB 618 IF Si < 3 THEN 568 $2=S2+1 PRINT : VTAB 4: HTAB 28: INVERSE : PRINT LEFTS (S $(S),18);2 NORMAL : PRINT “ N’EST PAS:":PR = 3 PRINT +: VTAB S2 + Si HTAB 28; CALL ~- 198; PRINT S 2" - "33 INPUT *";528(8,52): IF S2$(S,S2) = "" THEN 568 GOSUB 258: GOSUB 618 IF $2 ¢ 3 THEN 548 1F S ¢ 6 THEN 458 GOTO 698 POKE ~- 16368,8: VTAB 22: CALL - 868: CALL - 198 t INVERSE : PRINT "RETURN";: NORMAL : PRINT “ POUR CONTINUER OU ESCAPE *;: GET R$:R = ASC (RB): IF R = 13 THEN RETURN PRINT : IF R < > 27 THEN PRINT : GOTO 618 POP ; ON PR GOTO 478,516,558 : REM S##eeeeeeeR SRE HERR R ERROR EH EES REM * LA PERSONNE X PREND FORME *# REM FEN HHREN EH RRM NRE eee R EEE 3 Qli=1+ ) * SB) INT ¢ RND (1) * $):02 = 1 + INT ¢ RND (1 GUY-HACHETTE ee chasse aux répéti- tlons doit tenir compte des deux séries de rensel- gnements: EST — N'EST PAS. @ est un pointeur qui renvoie exactement ou i! fout. CALL-958 vide le bas de lécran. ¢ le sujet comporte plus de 13 coractéres, ceux-ci ne sont pas aftichés. lo longueur des rensei- ts est limitde & 10 coractores, Elle est contrélée au début du sous-programme “Chasse aux répétitions”, ligne 260. Pour chaque mot rentré, il est demandé de confir- mer par un RETURN. QI at Q2 déterminent quel en le renseignement permettant d'identifier la personne X. anuscoemeenscaeesewsnes 8 Copie de I’écran, obtenue a l’issue de la saisie des données. autre choix aléatoire = | 799 xX = INT ¢ RND (1) * 2):ER = @11C = ER:IP = ER:FIN re = ER Ces quelques lignes gro. | 718 FOR I= 170 S:H= 14 INT ¢ RND (1) © SBD biisscnt lo vornonrober | 720X =X + t1 IF X= 2 THNX = 0 de Ja personne X. 738 #1F G1 < > I THEN 768 a 748 «IF X = @ THEN IP = IP + 1:919(8,1P> = $1$(1,02): G OTO 788 758 IC = IC + 1:829¢@,1C) = $28¢1,@2): GOTO 768 768 «IF X = 1 THEN IC = IC + 1:528(8,1C) = S18¢1,H): GO TO 788 778 IP = IP + 1:818(8,1P) = $28¢1,H) 788 NEXT I 798 + BOG REM #84 HHHSERAHH EAHA RHEE RRR RRR RHE 818 REM * IL S’AGIT DE L°IDENTIFIER * 820 REM #eteeteeeeeeeeneereeeeteteetee 830 : F 846 TEXT : HOME Laltichage obtenu icles! | 358 HTAB 8: INVERSE : PRINT* LA PERSONNE X donnons une reproduction ": NORMAL : PRINT TS ‘en haut de la page. 868 VTAB 4: INVERSE : PRINT Vj: HTAB 22: PRINT V8: VT AB 14: PRINT VS;: HTAB 22: PRINT V8: FOR 1 = 5S TO 1 3: VTAB I: HTAB 1: PRINT " "5: HTAB 19: PRINT “ "qe HTAB 22: PRINT “ "3: HTAB 4@: PRINT " ": NEXT 87@ VTAB 6: HTAB 3: PRINT "EST:";: HTAB 24: PRINT "N’E ST PAS!" NORMAL 886 FOR I = 1 TO 3: VTAB 6 + I # 2: HTAB 3: PRINT Si9¢ @,1);: HTAB 24: PRINT S28(8,1): NEXT 898 POKE 34,15: PRINT : HOME 988 VTAB 16: PRINT “QUEL EST LE NOM DE ";: INVERSE : P RINT *X": NORMAL : PRINT LEFTS (T$,20) 91@ FOR I = 1 TO 3: VIAB 17 + I: HTAB 1: INVERSE : PRI (suite av verso) hd TREMPLIN MICRO eae 928 938 948 958 968 978 998 1888 1616 1828 1838 1048 1056 1860 1878 1888 1098 1188 1118 1128 1138 1148 1156 1168 1178 1188 1198 LA PERSONNE X (suite et fin) NT Ij: HTAB 19: PRINT I + 3: NORMAL : HTAB 3: PRIN T S$(1);: HTAB 21: PRINT S$(I + 3): NEXT VTAB 16: HTAB 22: FLASH : PRINT * "j: NORMAL +: CAL L = 198: GET R$: POKE - 16368,0:R = ASC (RS) - 4 8: 1F R¢ 1 OR R > 6 THEN 928 VTAB 16: HTAB 22: IF R = Q1 THEN CALL NT "VOUS AVEZ GAGNE!":FIN = 1: GOTO 9758 PRINT "HELAS! NON":ER = ER + 1 CALL - 958: PRINT : PRINT "CAR “S$(R)1 PRINT : PR INT "- EST: "ys FOR I = 1 TO 3: PRINT SISCR,1D" “G2 NEXT : PRINT "": PRINT "~ N’EST PAS: "7: FOR I = 1 TO 3: PRINT S2$(R,1)* "+ NEXT : PRINT "* VTAB 23: PRINT “AVEC *ER* ERREUR";: IF ER > 1 THEN PRINT “S" GOSUB 19¢ IF FIN = 1 THEN 1018 IF ER ¢ 6 THEN 898 FIN = 1: VTAB 161 HTAB 22: CALL - 868: INVERSE + P RINT S$(Q1): NORMAL :R = @1: GOTO 958 GOSUB 198 ! REM Kx SSHRSSH HRN REN RRR ES ERE OTe REM * A SUIVRE OU FIN DE JEU . REM see eeeeeede ese eH HERE RHE EEH EE : VTAB 22: PRINT ; CALL - 178: INVERSE + PRINT 14: NORMAL :; PRINT " AUTRE VERSION "ys INVERSE : PRINT 23: NORMAL ; PRINT " JEU COMPLET "3: INVERSE : PRIN T 33: NORMAL : PRINT * TERMINE*;: GET RS POKE - 16368,8:R = ASC (R$) - 48: IF R¢ 1 ORR > 3 THEN 1878 ON R GOTO 698,10,1188 TEXT ; HOME : END : REM ##RSSRHRANH TREE ERE R EERE REE e REM * POUR TOUS LES PARESSEUX * REM tt tee Hee R eee H Ree RRR Re REET Ee : FOR I = 1 TO 6: READ S$(1): FOR J = 1 TO 3: READ S 1$(1,J): NEXT J: FOR K = 1 TO 3: READ S28(1,K): NEX T K: NEXT I: RETURN DATA LOUISE, TIMIDE,GRANDE ,FERMIERE ,POITEVINE , RAPID E, BRUNE ,ALBERTINE ,MENTEUSE , FACETIEUSE ,RIEUSE , PARISI ENNE , RIDEE , TOUCHANTE DATA ANTOINETTE, BLONDE, GAIE, BELLE , SENSIBLE ,AFFABLE ,REVEUSE , EULALIE , PAUVRE , FAIBLE , DOUCE , GROSSE ,ANGEVIN E,MARIEE DATA COLETTE, OUBLIEUSE, INSENSIBLE ,CORIACE ,RANCUNIE RE, EPICIERE, SECHE ,CHRISTINE ,GENTILLE ,MEDECIN,POTELE — ,ROUSSE ,CURTEUSE ,VELLEITAIRE s ~ 198: PRI GUY-HACHETTE oa On comptabilise som: mairement les erreurs. ae En 190 se trouve Io bou- cle dattente. + le nombre d'erreurs otteint 6, il faut en tout cas afficher lo réponse. te jeu peut recommen- cor autant de fois que fon veut avec les mémes données. Uidentification de la Personne X n’en devient pos, pour autant, enfantine (contrairement 4 ce que l'on pourrait penser). Naturelloment, vous pouvez modifier et compléter cette partie du programme. Il serait alors possible d'aller aléatoirement & Io péche aux renseignements ! neaessennQEneenrsonecss 20 Une autre maniére de visualiser vos nombres I VISUBLOCS I PROPORTION DE FEMMES CHEZ LES PLUS DE 6@ ANS ORTEZ de I'ordinaire et donnez de nouvelles dimensions aux chiffres qui émaillent vos rapports... ou, plus simplement, 4 ceux qui traduisent vos dépenses annuelles (les loisirs par exemple). Le programme VISUBLOCS travaille dans la page graphique numéro 2 (HGR2), a l'adresse $4000 (16384), et nous avons installé la FONTE de caractéres a I'adresse 12288 ($3000). En supprimant tous les REM, il est possible d'utiliser la page HGR, mais cela ne présente pas d'intérét particulier sur les APPLE actuels. Vous comprendrez facilement le fonctionnement de VISUBLOCS, au fur et a mesure de la copie de son listage. Un conseil : Plutét que de suivre l'ordre logique des lignes de pro- gramme, essayez de taper Jes instructions dans Iordre exact ou elles vont se dérouler. Ainsi, aprés la ligne 20, passez a l'adresse 2060, puis G la ligne 310, etc. C'est une démarche apparemment désordon- née, mais qui a le mérite de respecter Ja structure (bonne ou mau- vaise) du programme que Ion étudie. Saisie des données :Le menu ne comporte pas d'option "Correction de données", mais celle-ci existe, en passant par "Créer un fichier de données". Si l'on choisit l'option "Modifications" (ligne 1270), les données en mémoire sont visualisées et on peut ou bien les modifier, ou Jes conserver par un simple RETURN. p39) 2) TREMPLIN MICRO _gunsewavasusesrsvencsenseansensesanenesnessssrssn se sar esaEETesneN Ae ress eSsEST EST eSTSSVSSTSEUSTUSSU SSUES 1 VISUBLOCS.2 & 1@ LOMEM: 24588 28 GOSUB 2068; GOTO 318 38: 40 REM Setter eeeeeneeeeReeereeereeee 5@ REM *** ATTENTE SANS CURSEUR ##* 60 REM steteetesneereerereneeeseeeeee 78: 88 CALL - 198: POKE - 146368,0: WAIT - 16384,128,127: POKE - 146368,8: B= PEEK < - 16384) 98 IF B= 9 THEN POKE 34,21: GOTO 1998 106 IF B = 1@ THEN POKE 34,21: GOTO 1986 11@ IF 8 = 18 THEN GOSUB 2126: POP : GOTO 318 12@ IF B = 63 THEN HOME : PRINT : PRINT DS"CATALOG": GET R$: PRINT :RS = "*; POP :; GOTO 318 138 RETURN 148: 158 REM #HeMHR ERR Ree H RE RSE HMR R EH REE 168 REM #e* BOUCLE D’ATTENTE oon 170 REM s#tteeeeeeedsreeerseesteeerene 188 : 196 FOR E = 1 TO 1580: NEXT E: RETURN 208 : 210 REM 4#seeed enon eee eeeeeee eee eeeee 22@ REM ### CONFIRMER LE CHOIX «#8 250 REM Fe¥ eee eee eee R HERR R RR RRR eee 240: 258 PRINT *Confirmez votre choix par un * CHR® (34)"oui" CHR® (34): RET URN 268 270 REM seeeteeeeeteseereeeeeenerteeee 288 REM #** MENU GENERAL eee 290 REM HeeeeeeeeeeHeeeeneHeneneeeee ee 366 : 318 GOSUB 1118 326 PRL: ' HOME : VTAB 1: INVERSE : PRINT * QUEL EST VOTRE CHOIX "s: NORMAL + PRINT “-------- ~--+-----------~ -- -- 33@ FOR 1 = 1 TOM: HTAB 1: VTAB 2+ 3 # 2: INVERSE : PRINT 15: NORMAL ; PRINT “> " MIDS (M$,1 *# 38 - 29,38): NEXT 349 FOR I = 1 TO Ms HTAB 32: VTAB 2 + I # 2: PRINT “seeeeseee”t NEXT 358 CALL - 958 36@ IF R= 1 THEN R = @: GOTO 426 378 VTAB 22: PRINT " * TAPER UN <"5: INVERSE : PRINT *?"3: NORMAL : PR INT "> POUR LE CATALOGUE" 388 GOSUB 88:C = 8 - 48: IF C <1 OR C > M THEN 360 398 VTAB 2 + (B - 48) * 2: HTAB 38: PRINT "<-"3: FLASH : PRINT Cr: NORMAL : VTAB 22: HTAB 4: GOSUB 258: GOSUB 80: IF B < > ASC ("0") AND B ¢ > ASC ¢"o") THEN 340 400 VTAB 22: HTAB 1: PRINT TS 418 SPEED= 158; INVERSE : FOR I = 37 TO 32 STEP ~- 1: HTAB I: VTAB 2 + C * 2: PRINT * “1: NEXT : NORMAL : SPEED= 255 428 ON C GOTO 1230,1768,448,438,1648,518,2230, 2388 GUY-HACHETTE 22 AUPE ROSS ARE SEREE ARTE SSS cesses een TeAET SSN ETE Se aes Sees eV SRN ESE ESE SAUNT RREEEAETAAReeeeeERensEeeeNEEED 436 448 458 468 478 488 498 See 518 528 536 548 558 548 578 586 598 680 618 $28 438 648 658 668 678 688 698 788 718 720 738 748 758 768 778 788 798 868 816 826 836 I VISUBLOCS.3 § GOSUB 1858: HTAB 1: VTAB 22: CALL ~ 958: INVERSE : PRINT "PAGE GRAPH IQUE EFFACEE": NORMAL : GOTO 346 IF HG = 6 THEN 2238 GOSUB 998: GOSUB 8G: GOSUB 1114: GOTO 348 t REM cteee eee Ree EES EERE ETHER ESSE REM #** PAGE GRAPHIQUE (TRACE) #*# REM sexeneeeeenseeeseceenenneenons 3 IF N ¢ 2 THEN VTAB 20: HTAB 5S: INVERSE : PRINT “DONNEES TOTALEMENT 1 NEXISTANTES": NORMAL : GOSUB 1176: GOTO 348 HGR2 : HCOLOR= 3: VTAB 19: CALL - 958 G= INT (N/ 2): IF G< >N/2THENG=6 +41 J = 278: FOR I = 1706 - 133 = J = 11.5: NEXT F=8 FOR 1 = 1 TON - 1: IF VAL (A8(I,1)) > = VAL (ASCI + 1,1)) THEN 58 8 AS = ASCII) SAS(1,1) = ACT + 1,1) :ASCT + 1,1) = ASIAS = ABCI,O):A8¢I, @) = ASCI + 1,8):ASCI + 1,8) = ASIAS = AS(I,2):A8(1,2) = ASCI + 1,2)30 (1 + 1,2) = ASIF = 1 NEXT : IF F = 1 THEN 550 T = 8:8 = T:X = TY = G: FOR I = 1 TON STEP 2:X =X # 1:Y Y + BS(1,8) = AS(X,8)1BS(1,2) = AS(X,2):BS(1,1) = AS(T,1): IF Y < = N THE N BS<T + 1,8) = AB(Y,6):88(1 + 1,2) = ASCY,2);B8CI + 1,1) = AsCT + 1,1 ) T=T + VAL (B9¢1,2)): NEXT VeI/TK = 6:0 = ~ 16:P = 16:0 = 1:50 = OW = 132 = 6 K=K+1 S = ¢ VAL (BS(K,2))) # Ys IF K = 1 AND S + 35 + ¢ VAL (BS(K * 1,220) # V > 165 THEN P= P+ .18:V = - 18: GOTO 4648 HCOLOR= 2:U =U + 1: IF U= 1 THENO=0+0+ PW = 1 IF U= 2 THENW=2 + 25:0 = 8 FOR i =WTOW + S - 1 STEP .41; HPLOT 0 ¢ S - 1,1 TO 0,1: NEXT HCOLOR= 7: IF K = G THEN SS=0O+6 47 HPLOT O,WTOOW+S-1T00+S-1,W+S-1700+ 5 - 1,W TO OW 3 REM seen eeeeeneeeeneeNReeRCeE EH REM *** LEGENDES DES ALOCS +e REM S44 HERHH EER EHHSS ERE HREM HOR R HH t VT =W +S + 83L = LEN (88(K,@)): IF L > (S + 7) / 6 THEN L = (8 4 7) / 6:B% = LEFTS (8$(K,8),L): GOTO 778 BS = BS(K,8) DE=|S-L * 6:DE = DE+L #6 IF GO > t THENH = 0+ 2+ S - DE; GOTO Bea H=1+S - DE: IF H< 1 THENH = 1 FOR I = 1 TO L:AS = ASC ¢ MIDS (B$,1,1)) - 31: DRAW AS AT H,VT:H = H + 6: NEXT HPLOT OW+S-1700+6W+S+5T00+S+5W+S5+5T00+5 -~iW+S-1 HPLOTO+S+S5,W+S+5T00+S+5,W+ 6700+ 5 - 1,W IF S$ > 2 THENZ2 = § DD 23 a i VISUBLOCS.4 # 1318 N= 8 1328 N=N + 1: IFN > 12 THENN=N ~ 13 GOTO 1536 1338 VTAB 3 + N:E® =" “: IF N > 9 THEN E® = *" 134@ CALL - 868: PRINT ESN" -> ccvveveeeeee" gt IF MOK > 8 THEN HTAB 7: PRINT AS(N,@); 1358 CALL - 198: HTAB 7: INPUT "*;AS: IF AS = "FIN" OR AS = “Fin” OR AS = “Fin* THEN N =N - 1: GOTO 1538 1360 IF AS = "#" AND N ) 1 THENN =N - 2: GOTO 1328 1378 IF AS = "ee" OR (N = 1 AND AS = “#") THEN 328 138@ IF A’ = "" AND MO < > 8 THEN AS = AS(N,8): GOTO 1418 1398 IF A$ = "" THEN 1336 1408 IF LEN (AS) > 12 THEN AS = LEFT® (AS,12) 1418 VTAB 3 +N: HTAB 7: CALL - 868: PRINT AS}: HTAB 25: PRINT “seeeeeeee ."g: IF 40 < > @ THEN HTAB 25: PRINT AS<N,1)3 1428 CALL - 198: HTAB 25: INPUT "";8%: IF BS = "* AND MO < > @ THEN BS = ASCN, 1) 1438 IF BS = "* OR BS = "#* THEN 1338 1440 FOR 1 = 1 TO LEN (BS): IF ASC ¢ MIDS (BS,1,1)) ¢ 48 OR ASC ¢ MIDS (B$,1,1)) > 57 THEN VTAB 3 + Ni HTAB 24 ¢ I: FLASH : PRINT MIDS (BS, 1,1): NORMAL ; CALL - 198: CALL - 1978: GOSUB 190: GOTO 1418 1456 NEXT 1448 VTAB 20; HTAB 1: GOSUB 25@: GOSUe 8@: IF B < > ASC ¢*O") AND B ¢ > ASC ("0") THEN 1418 1478 TAB 28: CALL - 868 1486 HTAB 24: VTAB 3+ Nz: CALL - 868: HTAB 24 + 18 - LEN (BS): PRINT BS: AS(N,@) = ASSAS(N,1) = BS:AS = “":B% = °" 1498 T= 8: FOR 1 = 1 TON:T = 7 + VAL (A8CI,1)) NEXT I 1586 FOR 1 = 1 TO N:A$(1,2) = STR® ¢ INT ¢ VAL CASCI,1)) / T * 10868) Figs | @8): NEXT : IF A = 1 THEN A = @: RETURN 1518 FOR I = 1 TON: VTAB 3+ I: HTAB 35: CALL - 868: HTAB 38 - LEN ¢ ST RS (INT ¢ VAL (AS(1,2))2)2: PRINT AS(1,2): NEXT 1528 GOTO 1328 1538 R = 1: GOSUB 1648 1548 \VTAB 28: HTAB 1: CALL - 868:F$ = "* 155@ INPUT "TITRE DU FICHIER ";F$: IF F% = "* THEN VTAB 20: HTAB 1: INV ERSE : PRINT "CONFIRMEZ NON-ENREGISTREMENT PAR * CHR® (34)"NON" CHRS (34): NORMAL : GOSUB 88: IF 8B < > ASC ("N*) AND B¢ > ASC ("A") T HEN 154@ 156@ IF F% = *" THEN 1596 157@ VTAB 20: HTAB 1: CALL - 868: INVERSE : PRINT “ENREGISTREMENT “F%: NO RMAL : VTAB 19: PRINT DS*OPEN"F$: PRINT DS*WRITE"F$: PRINT Nz PRINT CE : FOR 1 = 1 TON: PRINT AS(1,0): PRINT A$(1,1): NEXT + PRINT DS*CLOSE* Fs 1588 D = 1: GOTO 318 1598 : 14668 REM SSFSSHSEE ESSERE HRES EERE HT ESE 1616 REM #** TITRE DU FICHIER bidad 1628 REM RRR ESESA EEE OER TREE REESE EEE 1638 : 1648 HTAB 1: VTAB 26: CALL - 958: INVERSE : PRINT "TITRE DU GRAPHIQUE": N ORMAL 1658 VTAB 22: HTAB 4: FOR 1 = 1 TO 11: PRINT "..."%;% NEXT PRINT GUY-HACHETTE 24 SEIT CSE as TUMSESANETINA GSTS SS SSS OT USER TU RNUAT SSS AES FAssETeeenvaserausaNessenscseesNaNessnsseseesnanns # VISUBLOCS.5 # 1668 VTAB 22: HTAB 1: PRINT “-> *C%;: VTAB 22: HTAB 4: INPUT ""sAS: IF AS = "" THEN 316 1678 IF LEN (A$) ) 44 THEN 1448 1688 VTAB 28: HTAB 1: CALL - 958: INVERSE : PRINT A$: NORMAL : VTAB 22: H TAB 1: GOSUB 258: GOSUB 8@: IF 8B < » ASC ("0") ANDB< > ASC ("oO") THEN 1648 1698 C$ = AS:AS = “*: IF R = 1 THEN R = @: RETURN 1788 GOTO 318 1718 : 1728 REM 80s een eRe RR EH OHH ROE e eee eee 173@ REM *#* CHARGER UN FICHIER ##. 1748 REM *##*eeee ee eeeeeeeereneneeneeee 1758 : 1768 VTAB 28: HTAB 1: CALL - 958: INVERSE : PRINT “TITRE DU FICHIER";: NO RMAL : INPUT “ "“;F$: IF FS = "2" THEN TEXT : HOME ; PRINT : PRINT CHR$ (4)"CATALOG";: GOSUB 88: HOME :R = 1:C = 2: GOTO 316 1770 «IF FS = “* THEN 318 1788 PRINT : VTAB 26: HTAB 1: CALL - 958: INVERSE : PRINT "CHARGEMENT DE "F%: NORMAL : PRINT ; ONERR GOTO 182¢ 1798 VTAB 18: PRINT : PRINT DS*OPEN*F$: PRINT DS"READ"FS: INPUT N: INPUT C $: FOR I = 1 TON: INPUT A$¢1,@): INPUT ASCI,1): NEXT : PRINT D$"CLOSE “FS 1608 A = 1: GOSUB 1490; POKE 216,86 1818 D = 1; GOTO 348 1628 IF PEEK (222) = 5 THEN PRINT CHR® (4)"DELETE"F$: VTAB 28: HTAB 1! CALL - 958: FLASH : PRINT "FICHIER *F$" INEXISTANT*: NORMAL : GOSUB 1 170; GOSUB 68 1838 POKE 214,8: GOTO 1760 1848 1850 REM ##+#eeeeneeeerernneeeeeeseeeee 1668 REM *** FONTE DE CARACTERES ##* 1870 REM steve etereeeeeeeereeneneeeee 1888 : 1898 IF DL = 1 THEN RETURN 1988 AD = 12288: ROT= @: SCALE= 1:F% = *VISUFONTE* 1918 VTAB 21: PRINT 1 PRINT DS"BLOAD"FS* ,A*AD::DL = 1 1928 POKE 232,AD - INT (AD / 256) * 256: POKE 233, INT (AD / 256); RETURN 1938 : 1940 REM #84eeeeetenneeereeeneeeseseaen 1958 REM #*# EDITION (DMP+CARTE SIP) ### 1968 REM #e#eeH ROEM een eee ee eR ERE EEN 1978 : 1988 PRINT : PRINT D$"PRE1*: PRINT CHR$ (27)"L@@5": PRINT CHRS (9)*GLED2 *: GOTO 2808 1998 PRINT ; PRINT DS*PREI": PRINT CHR$ (27)*L@28": PRINT CHR® (9)*GLE2* 2008 =PRINT : PRINT CHRS (4)"PRE@": TEXT + GOTO 348 2018 + 2020 REM S#eeeekeeeeeeeceneeeeeeneRHnen 2038 REM +++ INTTIALI SATION ose 2040 REM *#+te HHO RHN EHR eH ESHER Me 2650 : 2068 TEXT : PRINT CHRS (12); CHRS (21): HOME : HGR2 » 25 TREMPLIN MICRO seed eeennONsEseLSUTETARUN ES SS SENS SeNSNSS SNES ANA TSTARTTSASSER SESS Soe e eR SEUT ALES SEAT TOSS SSN TOUS LET ST i VISUBLOCS.6 I 940 IF U=1 THENG=S es@ IF K = 2 THEN UM = VT 868 IF K < N THEN 636 878 «IF C$ = *" THEN 936 868 L = LEN (C8):H = (279 - L ® 6) / 21VT = WM + 17 898 HPLOT H,VT + 18 TOH + L * 6,VT + 18 9e@ FOR 1 = 1 TO LiAC = ASC ¢ MIDS (C$,1,1)) - 31: IF AC = 32 THEN H = H + 6: GOTO 928 918 DRAW AC AT H,VT:H = H+ 6 928 NEXT 938 HG = 1: GOSUB 88: GOSUB 1118: GOTO 346 948 : 950 REM Heats eee ee Ee eEH SEER EERE OEE E® 960 REM *#* HGR2 SANS EFFACEMENT ### 970 REM ceseeeneeeseeeeeeeeeeesesaneee 988 + 998 X = PEEK (49232) + PEEK (49234) + PEEK (49237) + PEEK (49239); RET 1880 ; 1018 REM HxdHHRHAHHHHHRHH RRA R HERE HERO 102@ REM #** EFFACEMENT HGR2 $4008 +++ 1630 REM sheveeneteeteedeeseeseanennes 1048 : 1058 POKE 23@,64: HCOLOR= 4: HPLOT @,@: CALL - 3@82:HG = @: RETURN 1660 1078 REM eeeeeeeeteeeeseeeeneeneneneeee 1890 REM ##* RETOUR MODE TEXT *e* 1898 REM £#xHeeHERHEHEHSE HEH HEH 1168 + 1118 TEXT : RETURN 1128; 1130 REM #eteeeneetereseseseseeeeeseeee 1148 REM ##* BRUIT DE BALLE Sill 1150 REM KeeteHHHHORHARHH ERNE e EER 1168 ¢ 1178 FOR 1 = 6 TO 36: FOR J = 49268 TO 49238 ~ I1:X = PEEK (J): NEXT J,I: RETURN 1188 ; 1190 REM #eekeRH RSH RH RHE RRR EERE EERE 1268 REM e** SAISIE DES DONNEES #2# 1218 REM seeeeesevereeesereeerereeeeses 1228 : 1238 GOSUB 1118 1248 HOME : VTAB 1: INVERSE : PRINT * SAISIE DES DONNEES ©53 NORMAL PRINT sees re . 1258 POKE 34,3:M0 = 6 1268 HTAB 1: INVERSE ; PRINT “MAXIMUM=12"; NORMAL ; GOSUB 1178: HOME 127@ VTAB 22: PRINT *<{@) MODIFICATIONS <1) NOUVELLES DONNEES": GOSUB 9@; I F 8 = 49 THEN 1308 128@ IF B ¢ »> 48 THEN PRINT : GOTO 1270 1298 MO = N 138@ VTAB 22: PRINT T$: HTAB 8: PRINT “Taper “ CHRS (34)"fin" CHRS (34)" p our terminer* GUY-HACHETTE 26 2078 2686 2098 2168 2116 2120 2138 2148 2158 2148 2176 2188 2196 2208 2216 2228 2238 2248 2258 2268 2278 2288 2298 2308 I VISUBLOCS.7 § DIM A$(13,2) ,88(13,2) CHD i cecenesccccceenrevee™ FOR 1 = 1 TO 18:T$ = T# + * “; NEXT O= - 10:2 = 1:P = 18:08 = CHRS (4) M$ = "CREER UN FICHIER DE DONNEES CHARGER UN FICHIER EXISTANT VOIR LA PAGE GRAPHIQUE EFFACER LA PAGE GRAPHI QUE CHANGER LE TIT RE DE LA PAGE TRACER LA PAGE GRAPHIQUE ENREGISTRER LE GRAPHIQUE FIN DE TRAVAIL" TEXT : HOME :MB = R:M = B VTAB 8: PRINT "CTRL-I PERMET D’EDITER LA PAGE GRAPHIQUE EN FORMAT SIMPLE CTRL-J PERMET DE REALISER CETTE EDITION EN FORMAT SIMPLE" PRINT 1: PRINT “PENDANT LA SAISIE DES DONNEES 0 wet ennnnnenn ied Arenepemetenes ta mrrrrinr rie UN * RENVOIE A LA DONNEE PRECEDENTE eT * # RENVOIE AU MENU GENERAL, SANS POUR AUTANT ANNULER CE QUI A ETE SAISI." PRINT ; PRINT "CTRL-R REAFFICHE CETTE PAGE DE FONCTIONS" GOSUB 1148: GOSUB 80; IF MB = 18 THEN MB = @: RETURN TEXT : GOSUB 1898: RETURN REM *#ekt eee ee eeeeeeeeee eee neee REM #** ENREGISTRER LA PAGE 2 *## REM #£##S4S see RENAE EERE RRA ES IF HG = @ THEN VTAB 28: HTAB 6: INVERSE : PRINT “PAGE GRAPHIQUE ENCO RE VIERGE": NORMAL : GOSUB 117@: GOTO 346 VTAB 2@: PRINT : INPUT "TITRE *;G$: IF GS = *" THEN 340 ONERR GOTO 2280 VTAB 28: PRINT : PRINT D$"BSAVE"GS" ,AS4688 ,L8192" VTAB 2@: PRINT : PRINT "PAGE 2 SAUVEGARDEE SUR DISQUETTE*: GOSUB 196: POKE 216,8: GOTO 348 POKE 214,08: VTAB 26: PRINT “ERREUR NUMERO * PEEK (222): GOSUB 198: GO TO 346 POKE 51,8: GOTO 318 TEXT : HOME : VTAB 28: PRINT "SGOTO229@ VOUS RENVOIE AU MENU": VTAB 1 9: END » ll ITALIE TAUX DE CHOMAGE COMPARE (EN 1984) a7 3880- 64 3008- E8 3810- 29 3018- 53 3828- 74 3¢28- AS 3638- E2 3838- 15 3046- 4F 3848- 8D 365@- C7 3858- FC 3868- 37 3868- 79 3878- B4 3078- EE 3888- Dé 3088- 08 3698- DO 3698- De 38AB- DO 38A8- DO 30Be- De 38B8- De 38Ce- oe 3eCe- FD 38D8- 89 36D8- 88 38EG- 6D S8ES- 469 30F@- 2D 38F8- 3E 3106- 6E 3168- 66 3118-17 3118- 68 3120- 6D 3128- 2D 313@- 1E 3138- 35 3i48- 68 3148- 1E 3158- a9 3158- 31 3168- Fé VISUFONTE i VISUBLOCS.8 FI TAPEZ CALL-151, suivi de RETURN, puis enregistrez la totalité des données (attention | chaque enregistrement doit commencer par le numéro de ligne, suivi de deux points, comme indiqué ci-aprés). Exemple : * 3000 : 64 01 DO G0 D9 G0 EG OO (puis RETURN) eh) F9 2F SE 7F BS EO 1c SA 9B oS 8B 48 89 cé oe 06 08 oe ba 08 be oe De FS 22 92 36 3168- 3178- 3178- 3168- 3188- 3198- 3198- 3iAa- 31A8- 31Ba- 3168- 31ca- 31c8- 31D6- 31D8- 31E6- 3iEs- S1F8- 31F8- 3266- 3288- 3218- 3218- 3228- 3228- 32386- 3238- 3248- 3248- 3258- 3258- 3268- 3268- 3276- 3278- 32806- 3288- 3296- 3298- 32A8- 32A8- 3288- 3288- 32ce- 32c8- B7 4E 17 AD 40 6D 66 52 88 1E DOF FE 31 68 49 88 56 33 1B 77 2F GUY-HACHETTE 28 32D6- 2D 75 @1 866 4A 4D 31 DF 3360- 69 FE 1B @E 2D 4E 81 88 32D8- 33 40 31 3F 3F 6E @9 FE 3388- 89 2D 2D DE 36 36 76 49 32E8- 18 SE 6S 4E 68 88 B89 2D 3398- 88 86 4D 4D 31 DF 33 4D B2E8- 1E 36 346 17 2D 4E 66 686 3398- 31 OF 33 4D 31 DOF 73 2D 32Fe- @F 49 31 36 36 DF 73 2D 33A8- 4E 81 88 89 4D 31 DF 33 32F8- 4E @1 88 89 4D Fl DF 6E 33A8- 40 31 DF 33 40 Fi IF OE 3308- 1& 37 6D 15 OF SE 69 4E 3380- 4E 09 68 49 4D 31 OF 33 3308- @@ 08 89 36 36 36 2D 75 33B8- 4D 31 1F 1F 6E @D 3E IF 331@- @1 66 66 40 31 FF 37 6D 33C8- 37 4D 71 61 66 92 4D 31 3318- @D FE 1F 6€ 69 FE 1B 4E 33C8- DF 73 @D 1E 17 @D 15 DF 3328- 89 4E GO 08 49 4D 31 DF 3308- 33 4D 71 61 6@ 4A 4D 31 3328- 33 6D 31 1F 1F 6E 29 FE 33D8- DF 73 6D 1E 36 76 49 88 3338- 1B 6E 89 4E 88 88 89 29 33E8- 68 2D 2D 2D BE 1E 17 1E 3338- AD DF 33 4D 31 DF 33 4D S3E8- 2E 2D 75 61 88 4A 29 3E 3340- 31 DF 73 2D 4E 61 68 69 S3F@- 2E 3E 2E 3E 2E 3E 40 88 3348- 2D AD OF 33 4D Fl 3F 37 S3F8- 48 CB 48 43 66 19 86 48 3350- 36 4E 49 61 48 OY 29 AD 3400- 86 86 B68 G8 GB BB BB BB 3358- DF 33 40 31 OF 33 @D 8D 3488- DB 1B 3F 2E 2D 8D AD SF 3366- 1E OF BE 46D 4E 88 BB OF 3416- 1F 3F 4E 89 20 35 3F DF 3368- 2D AD DF 33 4D Fil 3F 37 3418- DB 2A 6D @9 20 3E 3F IF 3378- @0 iS OF SE @9 4E 0@ 60 3426- 3F 77 2D 6D 20 FE 11 SF 3378- 89 29 AD DF 33 4D 3A 77 3428- SF Pour sauver ce programme, faites un BSAVE VISUFONTE, A$3000, $429 CONTROLE DE SAISIE Aprés avoir enregistré VISUFONTE sur disquette, offrez-vous le luxe de le contréler rapidement. DE VISUFONTE comment ? Tapez NEW, suivi de RETURN, puis : I VISUBLOCS.9 I 1G FOR | = 12288 TO 12288 + 1064: C = C + PEEK (I) : NEXT : PRINT C Ensuite : BLOAD VISUFONTE (et RETURN, bien sGr), puis RUN (et RETURN). Aprés quel- ques secondes un total devra apparaitre sur votre écran, Si ce total est 75665... Bravo ! Dans le cas contraire, véritiez chaque ligne de VISUFONTE... VISUBLOCS fonctionne sous DOS 3.3 et sous ProDOS et comprend deux parties : — VISUBLOCS (BASIC), de la page 22 4 la page 27 ; — VISUFONTE (LM), pages 28-29. IMPRESSION : Les instructions des lignes 1980 -1996 concernent l'imprimante APPLE DMP, équi- pée d'une interface-buffer de lo société BIP. Elles devront étre revues et corrigées. en fonction du matériel dont vous disposez. Notez que vous avez la possibilité (dons le menu) de sauver vos VISUBLOCS sur disquette, puis de les éditer, par lo suite, en utilisant le programme de votre choix. En général, linterface liveée avec les imprimantes EPSON comporte une copie d'écran graphique. Chez APPLE, une routine d’édition est fournie sur la disquette accompognant la docu- mentation (cas d'IMAGE WRITER, notamment). LIMITATIONS : || est évident que certaines don- nées se prétent mieux que d'autres 4 une trans- formation en VISUBLOCS. Par ailleurs, on comprendra facilement qu'un nombre poir de blocs est visuellement plus satis- faisant qu'un nombre impair, On remerquero que, dans le cas d'un nombre impair, c'est toujours lo premiére rangée qui accueille le bloc “supplémentaire", Etant donné qu'un tri place les valeurs les plus grandes en 1éte, une modification du programme pourrait au cantraire renvoyer le bloc supplémentaire en bas de I'écran... NESTOR. 2 TREMPLIN MICRO Topez ces 55 octets derriére un CALL-151, et souver-ies por un 0308: A2 A0 8302: 8D 2F 63 6305: 90 81 a8 0388: E65 9387: £8 88 9308; 08 FS 838D;: AP a? Q38F: 385 467 Q311: AF 38 0313; 85 48 0315: 40 8316: AS AF 8318: 38 0319; EF 82 8318; 85 67 6310: AS 86 @31F: EF 88 6321: 85 68 8323; 40 324; A? G1 0326; 85 67 0328: AY 96 832A: 85 68 032C: 4C 66 65 @32F: 09 88 BB @8 BC 3A 88 80 45 HEERE ELA LAE E TAAL ALLEL ATL ELAA LASEK HERE HERE BOUTABOUT : SEERA EEE EHH EE EEE HEHE EERE EEE HEHEHE EEE EEE E * Taper successivement: * * -— NEW (attention av programme!) # * — BRUN BOUTABOUT * * ~ LOAD PROGRAMME! et CALL 796 * ASSEMBLAGE * ~ LOAD PROGRAMME2 et CALL 804 * PAR ProCODE FERIA II III IIA ISAIAH SSS CA- ORG $308 LIGNEG EQU $32F gligne @ (LIST) BASIC EQU $8¢1 yDébut du programme Basic DEBUT EQU $67 jAdresse du programme Basic FIN EQU SAF jAdresse de la fin du programme RUN EQU $0566 yRun, tout simplement! Hoenn enn -- ------------- ------- a aann--# LDX £806 qInitialisation de la boucle BOUCLE LDA LIGNE®@,X jInstallation de la ligne @ STA BASIC,X t INX } CPX £388 jy] n’y a que 8 caractéres BNE BOUCLE 7S’il n’y a pas égalité... LDA £3989 ;On trompe i ‘Appiesoft STA DEBUT jpour qu’il n’écrase pas la LDA £988 tligne 6, lorsqu’il ya charger STA DEBUT+1 ile PROGRAMME! RTS iVers LOAD PROGRAMME: Hoenn ene + + - $$ - $$ - + $e eee * LDA FIN 300 prend fin Programme! 7? SEC yAttention! on va soustraire sec £982 32 petits octets & soustraire STA DEBUT jpour tromper de nouveau LDA FINe! yce brave Apple SBC £388 jSans oublier la retenue, STA DEBUT+1 yet la partie haute de 1 ’adresse RTS yVers LOAD PROGRAMME2 #----------------------------------------------- +--+ +--+ * LDA £361 yEt quant @ tromper son meilleur STA DEBUT jami, autant le faire une LDA £389 jtroisieme (a cause du dicton), STA DEBUT+1 jmais derniére fois! JMP RUN yVoici la liste de PROGRAMME!-2 Baan nn nn nn nn ee nn nn nr rn nr * HEX @90806@0BC39A8008 ;Fausse ligne 8 $1 VOUS ETES DEBUTANT, mettez votre Apple en route en utilisant votre disquotte MASTER. Topez NEW, puis CALL-151. et ; * 300 : A2 00 BD 2F G3 9D 01 G8 £8 EG 08 DG F5 AD G9 85 67 AD 08 85 68 60 AS AF 38 £9 02 85 67 AS BO E9 09 85 68 60 A? G1 85 67 AD 08 85 68 AC 66 D5 09 08 00 00 BC 3A 80 00, ot un RETURN finol, Souvez ensuite votre programme par un : BSAVE BOUTABOUT, A$300,L$37 GUY-HACHETTE 30 PUTILITAIRE Bean Datez vos programmes d'od la raison d'étre du programme ci-aprés, Si vous le lisez atten- tivement (mieux : si vous le disséquez), vous constaterez qu'il est possible d’obtenir le méme résultat en 12 lignes, en éliminant les saisies et affichages sophistiqués, de méme que les barrages prévus pour interdire les erreurs de L existe maintenant tout un arsenal dutilitaires ProDOS, et Io plupart d’entre eux permettent une mise 4 jour de la date... mais on ne peut pos toujours s‘offrir un ufilitaire... manipulation. On est... ou pas pertectionniste. C'est l'atfaire de chacun ! NESTOR. 18 TEXT : PRINT CHRS (12); CHR (21): HOME : INVERSE 20 ANS = "JANFEVMARAVRMA! JUNJULADUSEPOCTNOVDEC® 38 FOR 1 = 1 TO 10:TRS = TRS + * ": NEXT 40 FOR I = 1 70 5S: VTAB I; HTAB 1: PRINT “ “zs IF 1 = 1 OR I = 5 THEN FO RJ = 2 TO 3%: PRINT * "3: NEXT J 5@ HTAB 4a: PRINT " *: NEXT i: NORMAL ; VTAB 3: HTAB 7; PRINT "QUELLE EST LA DATE DU JOUR ?" 68 VTAB 6: POKE 34,7 70 PRINT CHR® (4)"PREFIX": INPUT PR@: PRINT CHR® (4)"PREFIX*PRE 86 HOME : PRINT "PREFIX";: INVERSE + PRINT PR8: NORMAL + PRINT | 90 D1 = PEEK (49048) - INT ¢ PEEK (49840) / 32) *# 32:D2 = INT ( PEEK (4 9041) / 22:D3 = ¢ PEEK (49041) - D2 * 2) #84 INT ( PEEK (49040) / 32 ) 19@ IF 03 ¢ > 0 THEN M@ = MIOS CANS,D3 * 3 - 2,3) 11@ PRINT "DATE DU SYSTEME : “js 120 PRINT RIGHTS ¢¢"6" + STRS (D1)),2) + "=" + M#y: IF M$ = "" THEN PRI ae 130 PRINT "=" + RIGHTS (¢°O" # STRS (D2)),2) 140 VTAB 2@: PRINT TR$: VTAB 22: PRINT <1) CHANGER DE DATE (2) CONTINUER => "3 15@ CALL - 198: GET R$: IF ASC (RB) ¢ 49 OR ASC (RS) > S@ THEN 150 146 IF R® = "1" THEN 188 178 GOTO 468 186 J = *" 19@ VTAB 10: HTAB i%: CALL - 198: PRINT J$;+ GET RO: POKE - 16368,8: IF ASC (R$) = 127 AND J@ = < ») *" THEN J@ = “": GOTD 1978 208 IF J = "" AND RS >) "3" THEN 190 218 IF R& < "B" OR R$ > "9" THEN 198 228 «IF J$ = "" THEN J$ = JS + RS: GOTO 198 230 IF VAL (3% + RS) ¢ 1 OR VAL (JS + RS) > 31 THEN 198 240 «PRINT R$:J$ = JS + RS 258 M=M + i: IF % = 13 THEN M =} 260 VTAB 10: HTAB 22: CALL - 198: PRINT MIDS (ANS,M * 3 ~ 2,333: HTAB 22 : GET R$: POKE -~ 16365,8 278 R= ASC (RB): IF R = 13 THEN 300 268 IF R= 127 OR R= 68 THENM = M - 2: IF M ¢ 8 THEN M = 11 298 GOTO 250 300 As = "* (SUITE AU VERSO) TREMPLIN MICRO DATEZ VOS PROGRAMMES | Guite et fin) 318 VTAB 1@: HTAB 26: CALL - 198: PRINT AS;: GET R$: POKE - 16368,6 328 IF 4% ¢ > ** AND ¢ ASC (R$) = 8 OR ASC (R$) = 127) THEN 308 338 «IF R® < "6" OR RS > "9" THEN 318 348 PRINT R8:A$ = AS + R$: IF LEN (AS) < 2 THEN 318 35@ VTAB 12: HTAB 1: CALL - 198: INPUT “HEURE ARRONDIE : ";R$:H = VAL (R $): IF H <1 OR R > 24 THEN 358 368 POKE 49841, VAL (AS) # 2 + (MD 7) 378 #IF M ¢ 8 THEN POKE 49648,M * 32 + YAL (J$): GOTO 398 366 POKE 49848,(M - 8) * 32 + VAL (JS) 398 POKE 49843,H: POKE 49642,8 486 PRINT : VTAB 22: CALL =~ 198: PRINT "<1> CHANGER DE PREFIX (2) APPLESO FT -> "3: GET RIS 418 IF RI® = “2° THEN 498 420 IF RI@ = "1" THEN CALL - 198: VTAB 12: HTAB 1: INPUT “NOUVEAU PREFIX 2 “gR$: IF RS = "* THEN 486 438 FOR 1 = 1 TO LEN (R$):R = ASC ( MIDS (R$,1,1)): IF (R > 45 ANDR <5 8) OR (R > 64 AND R ¢ 98) THEN NEXT I: GOTO 458 446 GOTO 428 45@ ONERR GOTO 488 466 IF LEFT@ (R$,1) ¢ > "/* THEN RS = */" + RS 476 =PRINT CHR® (4)"PREFIX"R$: GOTO 78 486 POKE 2146,@: IF PEEK (222) = 6 THEN VTAB 14: PRINT “PREFIX INCONNU": GOTO 498 498 TEXT : HOME ATTENTION | Ce programme ne fonctionne qu’en version ProDOS. Cette routine permet, dans un menu par exemple, d’afficher une ligne dont seules les MAJUSCULES sont en INVERSE. U'essayer, c'est probablement I'adop- 6360- 26 BE DE JSR DEBE ter. Nous la devons 4 Yvan KOENIG, un 8383- 26 76 DOD JSR $DD7B expert (amateur) pour lequel le lan- 8386- 2@ FD ES JSR SE&SFD je machine n'a pas plus de secrets 9389- 8S 68 STA = $68 Stemecdmuas 63eB- Aa 20 LDY €888 @38D- Bl SE LDA ($5E),Y @36F- cy 41 CMP £$41 8311- 96 68 Bec $6316 6313- c? 3B CMP £358 6315- Be 84 Bcs $631B 6317- 29 3F AND £$3F 8319- 16 62 BPL $831D 831B- e9 88 OGRA £$80 831D- 2@ ED FD JSR FDED 6320- ce INY 9321- C4 68 CcPY $48 6323- 98 ES BCC $8380 8325- 68 RTS GUY-HACHETTE 32 ° Générateur ‘ UTILITAIRE [EeSeenite de programmes =|! vous désirez écrire une petite routine, destinée a sai- sir x valeurs (numériques ou alphanumériques), puis & les mémoriser dans un fichier, créé sur disquette, utilisez plutét ce modeste générateur de programmes ! ll présente l'avantage d'étre réutilisable 4 I'infini, pour d'autres applications. CREATEFIC (c'est son nom de baptéme) se charge en effet d'écrire autant de clones que vous le désirez, et en quelques minutes. Aprés le RUN hobituel, répondez aux quelques questions qui vous seront posées, puis laissez votre Apple tourner. Un fichier EXEC, intitulé PROGRAMME I, sera automatiquement ins- tallé sur votre disquette, puis chargé en mémoire, 4 la place de CREATEFIC (qui sera effacé... d'ou l'impérieuse nécessité de le sauvegarder en priorité, avant la premiére utilisation). Faites alors un SAVE FIC (ou tout autre titre, choisi par vous), puis un RUN, Et c'est parti ! 1068 1628 1638 T 1848 1858 1888 1098 1108 1128 1138 1148 1168 1178 1188 1198 1206 1218 1238 1248 1258 1278 1288 1298 1388 1316 1328 1338 1368 1378 : GENERATEUR DE PROGRAMMES (suite) TEXT : PRINT CHRS (12); CHRS (21): HOME 1018 0$ = CHRS (4):G8 = CHRS (34) DIM L$<25) 3 = " CREATION D’UN PROGRAMME DE SAISIE ": VTAB 1: HTAB 21 - LEN (TS) / 2: PRINT T$ FOR I = 1 TO 16:TRS = TRS + * *; NEXT : VTAB 2: PRINT TRS VTAB 4: HTAB 1: CALL - 958: PRINT "DESIREZ-VOUS ENREGISTRER :": VTAB $: HTAB 2: CALL - 198: PRINT *<1) DES CHIFFRES <2> DES LETTRES ? *;: ET RS 1868 NA = ASC (R$) - 48: IF NA ¢ 1 OR NA > 2 THEN 1858 1678 Vs = “E": IF NA = 2 THEN V$ = "ES" INVERSE : PRINT R$: NORMAL GOSUB 133@ VTAB 1@: HTAB 1: PRINT "VOTRE VARIABLE EST DONC *j: INVERSE : PRINT ES : NORMAL 1118 R = 1: GOSUB 1288: IF W = 78 THEN 1050 VUTAB 12: HTAB 1: CALL - 958: CALL - 198: INPUT "TITRE DE VOTRE FICHI ER ? “;TIS IF T1$ = "2?" THEN R = 2; GOSUB 1288: GOTO 1128 IF TI$ = "#" THEN 1858 1158 Tl = LEN (TIS): IF TI = ® THEN 1128 FOR 1 = 1 TO TIiA = ASC ¢ MIDS (TI$,1,1)): IF (A ¢ 65 OR A > 98> AND ‘A ( 48 OR A > 57) ANDA¢ ) ASC (*.") THEN TIS = "2"; GOTO 1136 NEXT VTAB 12: HTA® 26: INVERSE : PRINT TI: NORMAL :R = 1: GOSUB 1288: IF W = 78 THEN 1120 UTAB 14: HTAB 1: CALL - 198: INPUT “NOMBRE D’ENREGISTREMENTS ? “;NE¢ IF NE@ = "2?" THEN R = 3: GOSUB 1288: GOTO 1198 IF NE@ = "#* THEN 1126 1228 NE = VAL (NES): IF NE ¢ 1 THEN 1198 GOSUB 1330 VTAB 3: CALL - 958: PRINT 1 PRINT “FICHIER ";: INVERSE : PRINT T18j: NORMAL : PRINT " DIM “y: INVERSE : PRINT E@: NORMAL PRINT : PRINT "# L’enregistrement ZERO sera le pointeur* 1268 R = 1: GOSUB 1286: IF W = 78 THEN 1198 GOTO 1428 VTAB 16: HTAB 1: CALL - 958: PRINT TRS ON R GOTO 1308,1316,1328,1865 INVERSE : PRINT "O";: NORMAL 1: PRINT "UI OU "1: INVERSE : PRINT "N"j: NORMAL : PRINT “ON EN CAS DE DESACCORD": GOTO 13468 PRINT “*AUTORISES: CAPITALES, CHIFFRES ET POINT": GOTO 1348 PRINT "ATTENTION! LA MEMOIRE A DES LIMITES!": GOTO 1368 IF NES = “" THEN NES = “X* 1340 ES = VS + "(* + NES 1356 E@ = ES + ")": RETURN CALL - 198: POKE - 16368,6: WAIT - 16384,128,127: POKE - 16368,6:W = PEEK ¢ - 16384): RETURN 6 GUY-HACHETTE 34 — SEUSEWSCENESRENSSsEeN sas Sees Teneee sere ssSS ESTES EER ESRUE SSS AAESES ASAT SE EETASS ESTES ETS eK NS SSREET SESS TOSS 1388 1398 1468 1418 1428 1438 1448 1458 1468 1976 1488 1498 1588 1518 1526 1538 1548 1558 1568 1576 1598 1608 1618 1628 1638 1646 1658 14668 1678 168@ 1698 1768 1718 REM S#*CCee POPES TERRE EHR E ERE RRR EHH R Eee REM * PROGRAMME COMPLET DE SAISIE . REM ##ekMRE TPR HERR RSS SSS HER OE RRR RARE EERE ES ; L¢¢1) = "18 TEXT:PRINT CHR$(12);CHRS(21) :HOME" L$(2) = "28 ONERR GOTO 238" L$(3) = "38 DIM" + ES + *:DS=CHRS(4):F8=" + GS + TIS + GS + “IN=" + NES L$(4) = "4@ FORI=1TO19:TRS=TRS+" + GS + * “+ GS + "INEXT" L$(5) = "S@ Ts=" + GS + “SAISIE DES VALEURS DE “ + GS + “+FS" L$(6) = *68 HTAB 21-(LEN(T$)/2):PRINT T$:PRINT TRS:POKE 34,3" L$¢7) = "78 I=8:VTAB26:PRINT TR8:VTAB22:PRINT " + G$ + "?=CORRECTION - *=TERMINE - &=8 DERNIERS" + GS + “1:POKE35,19" L$(8) = "88 J=I+1:;VTABS:HTAB :CALL-958: INVERSE:PRINT 1 :NORMAL" L$¢9) = "98 VTAB7:HTABI:INPUT " + GS + "--> " + CHRS (7) + GS + "FEST FES=" + GS + G& + “THEN 98” L$(1@) = "188 IF 1)1 AND ES=CHRS(43)THEN I=1-1:VTABS:HTABI :CALL-9581 INV ERSE:PRINTI :NORMAL :VTAB7:HTABS:PRINT E$(1) :GOTO98" L${11) = "$18 IF ES=CHR8(42) THEN I=1-1:G0T0248" L(12) = "120 1F ES<>CHRS(38)THEN 158° L$(13) = “138 HOME:R=1-8:1FR<1THENR=1" L$(14) = "148 V=4:FORJ=RTOI-1 :VTABV tHTABI t INVERSE :PRINTJ 5 tNORMAL : PRINT TABC4) 7" + VS + 45) :VeV42 NEXT 1CALL-198sPOKE-14968 ,@ 1WAIT-16384,128:P0 KE-16366,8:PRINT:HOME:I=1-1 ;GOTO6O" IF NA = 1 THEN L$(15) = "150 * + US + "CT)SUAL(ES)1ES=" + GS + GS + “s IF I(N THEN 88"; GOTO 1588 L9<¢15) = "158 ES(1)=ES:EG=" + GS + GS + “SIF I¢N THEN 80° L$(16) = "168 GOTO 248" L$¢17) = "178 PRINT D$;" + GS + "OPEN " + TIS + GS ¢ ":PRINT DS;" + GS + "WRITE " + TIS + GS + ":PRINT I:FORE=1TOI:PRINT * + VS + “(ED :NEXT:PR INT 0$;" + GS + "CLOSE “ + GS L$(16) = "166 TEXT:HOME:PRINT D;" + GS + "CATALOG" + GF L$(19) = "198 GETRS:PRINT:HOME:PRINT " + G$ + "RELECTURE DU FICHIER " + GS + ";FS sPRINT TR#:POKE34,3:PRINTiLIST260;GOTO 210" L$(28) = "288 PRINT D$;" + GS + "OPEN " + TIS + G$ + “:PRINT D$;* + GS + "READ “ + TIS # GS + "SINPUT I:FORE=1TOI:INPUT * + VS + "CED :NEXT:PRI NT D8;" + G$ + "CLOSE * + GS L$¢21) = "218 PRINT:PRINT TR$:PRINT" + GS # "ET MAINTENANT, A VOUS DE J QUER!" + 6S L$(22) = "228 CALL-198:POKE-16368,@:WAIT-14384 ,128:POKE-146368,6 END" L8(23) = "238 I=I-1:1FPEEK(222)<>255STHEN VTABIS8:PRINT" + GS + “PROBLEME IMPREVU!" + GS + ":END" L6(24) = "248 VTABI18:CALL-848:CALL-198:PRINT" + GS + “1) ENREGISTRER - 2) DERNIER SAIS] " + GS + ";:GETR®:PRINTRS:IFRS=CHRS(49) THEN 178" L$(25) = "250 1=14+11ES=CHRS$( 63) :GOTO106" VTAB 17: PRINT PRINT D$"OPEN PROGRAMMEI"; POKE 33,33: PRINT DS"WRITE PROGRAMME1": FOR 1 = 1 TO 25: PRINT L$(1): NEXT : PRINT D$"CLOSE": POKE 33,4@ HOME : PRINT ; PRINT CHR® (4)"EXEC PROGRAMME!" DEL 1808,1718 ee Compléter cet embryon de «générateur de programmes», de maniére & ce qu'il prévoie un menu, ainsi que la lecture du fichier créé, TREMPLIN MICRO Economisez les (précieux) secteurs de vos disquettes avec : ECRANS CONDENSES A UTILITAIRE fakes QUO! bon mémoriser, sur une disquette, les 64 octets inutiles d'un écran qui, dans Ia réali- té, n’en exige que 960 (24 fois 49) ? Le mini-programme ci-dessous n'est qu'une démonstra- tion, destinée & vous montrer comment fonctionne la routine ECRANLMde la page suivante, 18 28 38 48 58 68 78 8e 98 166 118 128 138 148 156 168 178 188 198 208 218 228 238 248 TEXT ; HOME ; PRINT CHRS (12); CHRS (21) PRINT CHR® ¢4)"BLOAD ECRANLM* PRINT “ECONOMISONS LES SECTEURS DE NOS DISQUET-TES EN NE MEMORISANT QUE LA PARTIE TEXTEDE NOS ECRANS (EN 48 COLONNES>. COMMENT ? VOICI] UNE SOLUTION: ~#- APPUYE2 SUR UNE TOUCHE SVP -#- TAB 22: PRINT * GOSUB 248 FOR I = 1 TO 23: VTAB I: FOR J = 1 TO 39: PRINT CHRS (1 + 64)3: NEXT : IF 1 ¢ > 23. THEN PRINT CHRS (1 + 64): NEXT POKE 1911,215: NEXT FOR 1 = 2680 TO 203%: POKE 1,216; NEXT VTAB 11 HTAB 1: GOSUB 240 CALL 768 FOR I = 8 TO 141 YTAB I: HTAB 5: PRINT " "¢ NEXT UTAB 18: HTAB 7: PRINT "L’ECRAN PLEIN DE LETTRES EST" VTAB 11: HTAB 7: PRINT “ACTUELLEMENT MEMORISE A UNE * VTAB 12: HTAB 7: PRINT "ADRESSE CONNUE: $2008 ET ON * VTAB 13: HTAB 7: PRINT "PEUT L’ECRIRE SUR DISQUETTE." PRINT *": UTAB 14: HTAB 7: PRINT CHRS (4)*BSAVE ECRD EMO ,A$2008,L83C8" GOSUB 248 HOME : VTAB 12: PRINT " APPUYER SUR UNE TOUCHE POUR L E REVOIR": GOSUB 248 CALL 8146: GOSUB 248 HOME VTAB 122 PRINT “CELA EST POSSIBLE GRACE A UN PETIT PR O- GRAMME EN ASSEMBLEUR (76 OCTETS), QUI SECHARGE DES TRANSFERTS." PRINT + PRINT “IL FAUT EVIDEMMENT LE CHARGER EN MEMOI RECAS308,L84C), PUIS PREVOIR + - CALL 7 68 vers $2868 - BSAVE ECRAN,AS2000,L $38 - BLOAD ECRAN pour le relire - CALL816 pour l’afficher.* GOSUB 24@: HOME : END CALL - 198: POKE - 16368,0: WAIT POKE - 16368,8: RETURN = 16384,128,127: GUY-HACHETTE ll reste que cette fagon de faire pré- sente non seule- ment |'avantage d'économiser un secteur por écran* mais celui de ne plus heurter la sus- ceptibilité de |' Ap- ple... en Wobli- geant 4 ingurgiter 64 octets d'intor- mations incompati- bles avec sa fonc- tion du moment. En effet, il ne faut pas oublier que les 64 octets en ques- tion représentent notamment les N fois 8 octets de MEV réservés 6 chaque carte inter- face de périphé- rique. *On économise en tout cas | secteur en souvant un écran texte avec LIDI6 (qui esca- mote les 8 derniers octets, inutilisés pour loffichage). 36 EC RAN L M Ce programme lit les 24 lignes de I'écran en 40 colonnes, et les recopie & partir de l'adresse $2000 (qui peut évi- demment &tre modifiée). On sauve I'écran par CALL 768, puis BSAVE ECRDEMO, A$200G, L$3C0. Bien entendu, il devra étre rechargé 4 la méme adresse... & moins de modifier la routine ci-dessous. Un simple BLOAD ECRDEMO provoquera l'effet souhaité, puis un CALL 816 entrainera l’affichage. saen pe rd aN ae” On utilise les mémoires 06 et 07 de la Page 8304- As ae LDA = e808 Hee oem Pe eee. peer ee @3046- 85 a6 Sta tse | See ‘ eses- 85 es STA $68 638A- 85 25 STA $25 ™) ~— $25 = CV, position verticale du curseur 63ec- 28 Ci FB JSR $FBC1 — Colcule l'odresse de lo ligne courante @30F- Ae GO LDY £800 — Début de boucle 6311- Bi 28 LDA {B28),¥ | — En $28. et$29se trouve l'odresse de la ligne 9313- 91 86 STA (S06) ,¥ | — Réécriture dl'odresse $—7+Y 6315- cs INY — Plus un dans fa boucle @316- C® 28 CcPY £%28 — A-t-on atteint 49 ? 8318- 08 F7 BNE 28311 — —Non ? olors, un outre tour | @31A- AS a6 LDA SB6 7 @31C- is cLe Beike P28 apc = £628 Llodresse de rédcriture est incrémentée de 40 O31F- BS 86 STA B46 : i y y e32i- As oF LDA 807 Wm Roper Sa ee eter eae §323- 6? 60 ADC £$06 @325- aS a7 STA 87 = | 9327- Es 08 INC $08 == 8329- AS ee LDA $08 al En $8 est stocké le nombre de lignes @32B- cy 18 CMP £318 ~] ~— Eston 624? @32D- be DB BNE SB3G4 _!| —Non? on recommence @32F- 68 RTS 8336- AP B46 LDA £SO6 = 6332- 8D 12 63 STA #0312 6335- A? 28 LDA £%28 6337- 80 14 43 STA $6314 @33A- = 28 88 O83 JSR #$03e@ Réaffichage. Cette partie du programme modi- @33D- A? 28 LDA £$28 fie les adresses, puisqu’il fout lire & partir de @33F- 8D 12 63 STA $8312 $2000, et réécrire & portir de $499. @342- AP 86 LDA £306 Ensuite, on remet les choses en place, @3494- 80 14 83 STA $6314 @347- A? 88 LOA £S60 6349- 85 25 STA $25 634B8- 6a RTS = Pour rentrer cette routine, tapez CALL-151 et RETURN, puis | VERIFICATION (mode direct) * 300 : A920 85 G7 A9 G0 85 96 85 96 85 2520. Cl FBAGGG61 289106 | FOR! = 768 TO 843: E = E + PEEK (|) : CB CO 28 DG F7 AS G6 18 69 28 65 06 AS G7 69 0G 85.07 £608 A508C9 | NEXT: PRINTE 18 DO DB 60 A9 G6 BD 12.03 A9 28 BD 1403 2000 03 A928 8D 1203 a9 | ——_________ 06 8D 1403 A9 G0 85.25 BSAVE ECRANLM, A300, 1$4C. | Le résultat doit étre 6955. ee RG RCE SANRTSEUET TEU AS TESTA SR OU SEARS Sens seesnanersnvowercsuesrEs het T SUE TPS ROUETSSOUSESESULUSSETEEES 37 TREMPLIN MICRO 18 28 36 48 56 78 88 99 108 118 128 138 148 158 148 178 188 198 208 218 228 230 246 25¢ 268 278 288 468 : TEXT ; PRINT CHRS (12); CHRS (21): HOME INVERSE : FOR I = 1@ TO 14: HTAB 19: VTAB I: PRINT " "3: IF 1 = 18 OR I = 14 THEN FOR J = 11 TO 29: PRINT " * 2 NEXT HTAB 36; PRINT " ":; NEXT : NORMAL Bee" CUE ST ss eR 8: T" GOTO 198 ttte: REM s##seeeeeeeenseexa eeeeneseeee tet: REM ©* SOUS-PROGRAMMES ” 322% REM HEP M RRR eR RRO RR eee EN eee eee FOR 82 = 1 TO F:X = PEEK (49200): IF PEEK (49249 ) > 128 AND F ¢ > 5 THEN FIN = 1 NEXT : RETURN FOR 1 = 1 TO 3800: NEXT + RETURN 1 Titt: REM *#eseeeseseeeeeeeneeeeeeeeeees sete REM ++ AFFICHAGE DU TITRE - titt: REM s#eeeeeteseeeeeeeeeeeseseceeee UTAB 12: HTAB 12: PRINT AS + “ *;: INVERSE +: PRINT BS F = 30: GOSUB 116 VTAB 12: HTAB 12: PRINT B$;: NORMAL : PRINT " * + A$: IF FIN = 1 THEN 238 GOSUB 118:A =A + 1: IF A < 8 THEN 198 A = 8: VTAB 16: PRINT “Voulez-vous jouer avec moi: Qui - Non ?* VTAB 16: HTAB 48: CALL - 198: GET RS IF ASC (R$) = 79 THEN 338 IF ASC (R$) = 78 THEN PRINT RS: PRINT " ' ce sera pour une autre fois! “: END PRINT “": YTAB 18: PRINT " OUVREZ MIEUX LES YEUX S ‘IL VOUS PLAIT!": VTAB 16: HTAB 29: INVERSE : PRINT "O";: HTAB 35: PRINT "N*: NORMAL : GOTO 248 t Dommage GUY-HACHETTE Ouest-Est OTRE entourage (vos éléves, peut- &tre ?) connait-il sa géographie ? Rien ne vous interdit de le soumettre 4 un petit test, rapidement mis au point sur votre ordinateur personnel. @ Cadre mode inverse ee Bruit dont la durée dé- pend de ia variable F. e Boucle d'attente, @une maniére plus ou moins éiégonte (ca dépend des goits |) de déplacer un mot. Si FIN= | (Pomme ouverte enfonede ; ligne 116). on posse immeédiatement 4 la suite. + Rappel 4 lordre... sans aménits, _UUSEUSSUSE SSS Ree RRERSSSTERERETTRSTETsTT STS SRESSESSAETRSAR SANS SSSRE ATES RATES ASS SSE ESTES SESE SSESAE SSO CALL-958 vide I'écran, & partir et ou-dastous P du curseur, Un bruit occompagne Vatfichoge de chaque. lettre. CALL-913 fait remonter lo totalité de I"écran d'une ligne. des trois villes 3 pars son isant la fonction RND de l'Apple. Si R=63, c'est que loy touche Del o été enfon- cée, ef on revient en arriére. On stocke dans lo va- pale RXS les véponees? trois SPEED = 255, vitesse maximum d’affichage. 318 328 338 348 356 368 37¢ 388 398 400 418 428 438 448 458 468 478 480 498 308 518 526 538 548 558 548 578 588 598 ; REM se sesceeeeeeeeeeeeeeeenesentee LA PARTIE bead teres + REM WORE RRS S SES RES HERS RRS HERS E REET 8 PRINT : VTAB 16: CALL - 958 T$ = "Le programme va successivement vous pro-poser 18 fois trois noms de villes... Cesera & vous de d ésigner la ville qui estapproximativement située en tre les deux autres, et les positions de celles-ci. F = 3; FOR I = 1 TO LEN (T$)1 PRINT MIDS (TS,1,1) ¢: GOSUB 118: NEXT I: PRINT F = 20: FOR I = 1 TO 9: GOSUB 119: CALL - 912: NEX T : REM SCROLL (Déroulement vers le haut? POKE 34,6: HOME JEU = JEU + 1: VTAB 8: INVERSE : PRINT “QUESTION "J EU;: NORMAL : PRINT TAB( 15);PT;" POINT*;: IF PT > 1 THEN PRINT "S*; PRINT TAB( 29)"ERREUR = Del*: PRINT FOR i = 1 TO 3: READ V6¢I): NEXT Utd) = 104 INT ¢ RND (1) # 302MK2) = 1 + D <1) # 3): IF VC) = UC2) THEN 418 V3) = 6 - VOI) - VC2)9 FOR T= 1 TO 3:xX8CI) = VECV €1))a NEXT FOR 1 = 1 TO 3: INVERSE i PRINT CHR® (I + 64931 .N ORMAL : PRINT * "X#¢(I}: PRINT : NEXT PRINT : vTAB 20: CALL - 958: FOR 1 = 1 TO 16: PRI NT " “3: NEXT : PRINT PRINT “TAPEZ LES LETTRES-CLES DANS L“ORORE QUE YOUS ESTIME2 ETRE LE BON" X = 1:kXs =" INT (¢ RN UTAB 17: HTAB 1: INVERSE : PRINT "REPONSE:*;+ NORM AL : CALL - 198: PRINT " "RX$;: GET RS: POKE - 16 368,0;R = ASC (RB) - 64 IF R = 63 AND X = 2 THEN X = 1:RX$ = *"; GOTO 470 IF R = 63 AND X = 3 THEN X = 2:RX$ = LEFTS (RXS,! >: GOTO 478 IF R <1 OR R > 3 THEN 478 IF X = 1 THEN 548 FOR 1 = 1 TOX - 1: IF MIDS CRXS,I1,1) = R® THEN 4 78 NEXT I: PRINT RS RX = RXS + RB: VIAB B + R * 2: HTAB 2: CALL : HTAB - 9 ¢ X # 123 PRINT X8<R) IF X ¢ 3 THEN X = X + 1: GOTO 478 VTAB 17: HTAB 14 FOR I = 1 TO 3: IF VSC1) = XS¢ ASC ¢ MIDS (RXS,I,1 >) - 64) THEN NEXT : GOTO 416 PRINT “REPONSE INEXACTE": GOSUB 13@ SPEED= 40; FOR 1 = 1 TO 3: YTAB 8 + 1 * 2: HTAB 2: - 868 CALL - 86@: HTAB - 9 + VCL) # 12: PRINT X$(1): N EXT (suite av verso) TREMPLIN MICRO 408 618 628 636 648 658 666 678 686 698 708 718 728 738 748 758 768 OuUEST-EST (sult et FIN) SPEED= 255: GOSUB 13@: 60TO 628 SPEED= 68: PRINT “REPONSE EXACTE: + 1 POINT!*:PT = PT + 1: SPEED= 255: GOSUB 758 IF JEU ¢ 1@ THEN HOME : GOTO 388 HOME : PRINT : PRINT : INVERSE ; PRINT PT" POINT"; 1 IF PT > 3 THEN PRINT *S"; NORMAL : PRINT : PRINT : PRINT : IF PT > 8 THEN P RINT “TRES BON SCORE": GOTO 788 IF PT > 5S THEN PRINT “RESULTAT HONORABLE": GOTO 7 68 IF PT > 3 THEN PRINT “PEUT MIEUX FAIRE“; GOTO 768 IF PT > 1 THEN PRINT “DOIT MIEUX FAIRE"; GOTO 768 PRINT “OUILLE' UN VRAI DESASTRE! A REFAIRE!*: GOSU 6B 138 HOME ; CLEAR : GOTO 388 VTAB 22: HTAB 1: PRINT “41> JE RECOMMENCE ST TERMINE “;; CALL - 198: GET RS IF R$ = "1" THEN 696 TEXT : HOME : END DATA LE MANS, ORLEANS ,MONTARGIS , PERI GUEUX ,BRIVE ,AUR ILLAC, CAEN, LISIEUX VERNON , BOURGES ,NEVERS , AUTUN , CHAT ELLERAULT , CHATEAUROUX , VERNON DATA DINAN, FOUGERES ,ALENCON ,ANGERS , TOURS ,BLOIS, DAX yAUCH, CASTRES ,MONTLUCON ,VICHY , ROANNE , CHAUMONT , EP INA L, COLMAR ,AUXERRE ,VESOUL , BELFORT FOR S = 748 TO 786: POKE S, VAL ¢ MIDO® ("681738481 921342080041 990072400082022092441 44004674008883894" ,¢S - 767) * 3,3)): NEXT S: FOR U = 18 TO 98 STEP 5 : POKE 6,U: POKE 7,15: CALL 768: NEXT U RETURN <2) €°2 Pour les commentaires, donnez libre cours 4 votre inspiration per- sonnelle, sdrement meilieure... ee CLEAR permet de re- mettre toutes les varia- bles 4 zéro et dvite la com- mande RESTORE. Cest une utilisation du son" de notre poge 51. Normolement, il est inu- tile de la relancer 4 cho- que foils, mais cela vaut bien une boucle de temps | MASTER). Offrez-vous les disquettes de programmes de Au choix : DOS 3.3 ou ProDOS. (ProDOS ne fonctionne qu’aprés avoir lancé le systeme avec une disquette Utilisez le bulletin de commande de la page 62... ou recopiez-le. GUY-HACHETTE 40 [TREMPLIN MICROFICHE 3 CARTE LANGAGE _ TRANSFERT ET RECUPERATION Fee Ora esac mers DE DEUX ECRANS TEXTE La routine n°] transfére un écran de 1024 octets en MEV, Bloc 1, & partir de l'adresse DGGO [il suffit de toper CALL 768). La récupération est obtenue par un CALL 806. Lo routine n°2 utilise la méme adresse, mais vers le Bloc 2 (transfert : CALL 841 ; retour : CALL 879). Utilisable 6 partir d'un programme en Basic, ov en mode direct. Un RESET est sans effet sur les écrans ainsi mémorisés. Restriction : il ne faut évidemment pos avoir chargé le BASIC INTEGER sur la carte langage. 1 MEV1 2. MEV2 0300 : AD 89 CO LDA $cas9 | 0349 : AD 81 CO LDA $08) 0303 : AD 89 CO LDA $cga9 @34C : AD 81 CO LDA $cga! 0306 : AY 00 LDA £$00 G34F ; AY OO LDA £$00 0308 : 85 3C STA §3C 0351 : 85 3C STA $3C O3GA: AY O4 LDA £$04 0353 : AY O4 LDA £$04 G30C : 85 3D STA $3D 0355 : B5 3D STA $3D O3GE : AY DO LDA £$D0 G357 ; AY DO LDA £$00 0310 ; 85 3E STA $3E 0359 : 85 3E STA $3E 0312 : A9 07 LDA £$07 G358 : A9 07 LDA £$07 0314 : 65 3F STA $3F G35D : 85 3F STA $3F 0316: A9 00 LDA £$00 O35F : AY OO LDA £$06 O318 : 85 42 STA $42 0361 : 85 42 STA $42 G31A: AY DO LDA £$D0 0363 : AY DG LDA £$D0 G31C ; 85 43 STA $43 0365 : 85 43 STA $43 O3IE ; 38 SEC 0367 : 38 SEC O31F : 20 11 C3 JSR = $C311 0368 : 20 11 C3 JSR $C311 9322 : AD 8A CO LDA $casA 0368 : AD 82 CO LDA $cas2 0325: 60 RTS O36E : 60 RTS 0326 : AD 88 CO LDA $co8s G36F : AD 80 CO LDA $Ca8d 0329 : Ad OO LDA £$00 0372 : Ad OO LDA £800 0328 : 85 3C STA $3C 0374 : 85 3C STA $3C 0320 : AI DO LDA £$D0 0376 : A? DO LDA £$D0 Q32F : 85 3D STA $3D 0378 : 85 3D STA $3D 0331 : A9 DG LDA £$D9 Q37A : AY DO LDA £$D9 0333 : 85 3E STA $3 G37C : 85 3E STA $3E 0335 : AY D3 LDA £$D3 Q37E - AY D3 LDA £$D3 0337 : 85 3F STA $3F 0389 : 85 3F STA $3F @339 : AY oo LDA _£$00 9382 : AY OO LDA £$00 Q33B : 85 42 STA $42 G384 : 85 42 STA $42 G33D : AY O4 LDA £$04 0386 ; AY 04 LDA £804 O33F : 85 43 STA $43 g2e8 ; 85 43 STA $43 0341 : 18 cLC Q38A ; 18 - cic 0342 : 20 11 C3 JSR $C311 0388 : 20 11 C3 JSR = $C311 0345 : AD 8A CO LDA $COBA Q38E : AD 82 CO LDA $C082 0348 - 69 RTS @391 : 60 RTS ECRITURE SUR DISQUETTE : BSAVE MEV1, A$30G, L$49 BSAVE MEV2, A$349, L$49 Si vous réunissez les deux routines ; BSAVE MEV1.2, A$300, L$92 UTILISATION : BLOAD MEV1, ou BLOAD MEV2 (dans un programme : PRINT CHRS$(4) ; "BLOAD MEV1"}. GUY HACHETTE TREMPLIN MICRO FICHE 3) | TREMPLIN MICRO TRANSFERT D’ECRANS TEXTE Avec ProDOS. on ne peut utiliser que MEV2 CARTE LANGAGE Il n'est évidemment pas nécessaire d'utiliser les deux routines (exposées au recto de cette fiche) pour transférer plusieurs écrans sur la corte langage, mais quelques pokes doivent alors précéder chaque opération. Le programme en BASIC ressemblera 4 ceci (nous avons escamoté les numéros des lignes) : ECRAN 1 VERS MEV1 ($D000-D3D0) POKE 769,137 : POKE 772,137 : POKE ECRAN 2 VERS MEV2 ($D000-D3D6) POKE 769,129 : POKE 772,129 : POKE 803,138 ; POKE 795,268 : CALL 768 MEV1 VERS ECRAN ($0406-07D0) POKE 807,136 : POKE 838,138 : POKE 814,208 : POKE 822,211 : CALL 806 ECRAN 3 VERS MEV1_ ($D40G-D7D0) POKE 769,137 : POKE 772,137 : POKE 803,138 ; POKE 795,212 : CALL 768 MEV1 VERS ECRAN ($0490-07DG) POKE 807,136 : POKE 838,138 : POKE 814,212 ; POKE 822,215 : CALL 806 803,130 : POKE 795,208 : CALL 768 MEV2 VERS ECRAN ($0460-07D9) POKE 807,128 : POKE 838,130 : POKE 814, 208 : POKE 822,211 ; CALL 806 ECRAN 4 VERS MEV2_ (SD400-D7D9) POKE 769,129 ; POKE 772,129 : POKE 803,130 : POKE 795,212 : CALL 768 MEV2 VERS ECRAN ($0490-07D9) POKE 807,128 : POKE 838,130 : POKE 814,212 ; POKE 822,215 : CALL 806 Quant 4 votre routine unique, la voici, & taper aprés le CALL-151 habituel ({) = RETURN) 300 ; AD 89 CG AD 89 CO A9 00 85 3C AD G4 85 3D A® DG B5 3E A9 G7 85 3F AD G0 85 42 A9 DG 85 43 38 20 11 C3 AD BA CO 69 AD 88 CO A9 GG 85 3C AP DO 85 3D A9 DG 85 3E A9 D3 85 3F A9 GG 85 42 AI G4 85 43 18 26 11 C3 AD BA CO 60 +) BSAVE MEV, A$300, L$49 |») Telle qu'elle se présente au départ, et aprés un BLOAD MEV, cette routine ne transfére qu'un écran, vers MEV1. Pour les écrans 2, 3 et 4, les lignes de POKES sont obligotoires, Notez que vous moditiez alors votre programme, d’ou la nécessité d'utiliser TOUS LES POKES, y compris pour I'écran numéro 1. RAPPEL DES INSTRUCTIONS UTILISEES ICI GUY-HACHETTE TREMPLIN MICRO eee eee ——— ProDOS et la carte langage ProDOS va se loger sur !a carte langage, et il n‘est donc pas possible d’utiliser la MEV! de celle-ci (notre Fiche n°3). Le programme DEMO ci-aprés nous montre comment transtérer 4 écrans en MEV2 (avec ProDOS ou DOS 3.3 d'ailleurs). Son apparente complexité est due au simple fait qu'il est destiné & une démonstration... sur écran, Ne vous affolez pas ! 5 PRINT CHR$ (4)*BLOADMEV2" 10 20 30 78 = *": FOR 1 = 1 TO 10:T$ = TS + * “: NEXT + PRINT TS 225 230 235 240 245 250 (C'est lo petite routine MEY, de la fiche ci-contre). TEXT : PRINT CHR® (12); CHR® (21): HOME PRINT “TRANSFERT DE 4 ECRANS TEXTE EN D000-D7D0"; VTAB 10: LIST 50: LIST 210 REM ECRAN 1 EN $0000-D3D0 (MEV1) - ECRAN 2 EN $D000-D3D0 (MEV2) REM ECRAN 3 EN $D400-D7D0 (MEV1) - ECRAN 4 EN $D400-D7D0 (MEV2> GOSUB 210: POKE 795,208: CALL 768: REM TRANSFERT ECRAN 1 GOSUB 220: VTAB 10: LIST 70: LIST 210 GOSUB 210: POKE 795,212: CALL 768: REM TRANSFERT ECRAN 2 GOSUB 220: VTAB 10: LIST 90: LIST 210 GOSUB 210: POKE 795,216: CALL 748: REM TRANSFERT ECRAN 3 GOSUB GosuB : 220; VTAB 10: LIST 110: LIST 210 210: POKE 795,220: CALL 768: REM TRANSFERT ECRAN 4 REM RAPPEL DES 4 ECRANS A L’ADRESSE t G6OSUB 220: YTAB 12: PRINT “RECUPERATION DES ECRANS 1 2 3 ET 4 GOSUB GosuB 60SUB 6OSUB GosuB 6OSUB GOSsUB GOSUB GOSUB POKE 769,129: POKE 772,129: POKE 803,130: GOSUB 255: RETURN ~ 198: VTAB 22: PRINT "“APPUYEZ SUR UNE TOUCHE POUR CONTINUER" 127: POKE - 16368,0: VTAB 3: CALL 220: LIST 140: LIST 230: LIST 230: GOSUB 235: CALL 806: REM 220: LIST 160: LIST 230: LIST 230; GOSUB 240: CALL 606: REM 220; LIST 180; LIST 230: LIST 230: GOSUB 245: CALL 806: REM 220: LIST 190: LIST 230: LIST 230: GOSUB 250: CALL 806: REM 220: END CALL 1 POKE - 16368,0: WAIT - 16384,128, - 958: RETURN CALL ~- 198; VTAB 22: INVERSE : PRINT “PRESSEZ UNE TOUCHE POUR LE R EVOIR";: NORMAL : POKE - 16368,0: WAI 68,0: VTAB 3: RETURN POKE 807,128: POKE 838,130: RETURN POKE 814,208: POKE 822,211: RETURN POKE 814,212: POKE 822,215: RETURN POKE 814,216: POKE 822,219: RETURN POKE 814,220: POKE 822,223: RETURN 255 X = X + 1: VTAB 20: HTAB 33: $0400-0700 235: GOSUB 225 RETOUR ECRAN 1 240: GOSUB 225 RETOUR ECRAN 2 248: GOSUB 225 RETOUR ECRAN 3 250: GOSUB 225 RETOUR ECRAN 4 T - 16384,126,127: POKE - 163 Un détail : le disque virtuel /RAM vous permet, sous ProDOS, de mémoriser... puis de récupérer instantanément vos écrans... INVERSE : PRINT “*ECRAN "X: NORMAL : RETURN Dons un programme, tout ce blablablo est inutile. Méme remarque que ci-dessus. Une boucle bien orgonisée fera votre bonheur |! 43 TREMPLIN MICRO ProDOS et VOUS ETIT & petit, le systéme d’exploitation ProDOS remplacera le bon vieux DOS 3.3, archi connu et non moins tolérant, mais moins évolué que son cadet. comme... son ancétre. RAM Premier avantage de ProDOS — important, 6 mes yeux du moins — Vemploi de la mémoire auxiliaire de la carte 80 colonnes étendue, sous forme d'un disque- mémoire de 61 K. Comment y accéder ? por la commande /RAM, simplement... Ainsi, vous pouvez stocker un écran sur ce troi- siame drive en topant BSAVE/RAM/ECRAN, A$40G, L$3D0, puis le récupérer par BLOAD /RAM/ECRAN. Ca ne marche pas ? (NO BUFFERS AVAILABLE) Normal. Faites précéder le BLOAD por POKE 48984,0... et vous verrez bel et bien votre écran. Détail qui a son importonce, /RAM est occessible & tout moment, y compris lorsqu’on se trouve dans un sovs-volume (ou répertoire) de type DIR. Pratique, non ? CATALOG \e commande CATALOG ne présente d'intérét que si l'on est en 80 colonnes. Sinon, lui préférer CAT, surtout si l'on est paresseux, CAT ou CATA- LOG présente le cotalogue de la disquette dont ProDOS a enregisiré le PREFIX. Si la disquette o été changée au profit d'une autre, le systéme va lo rechercher en vain... et il y aura un message d'erreur (PATH NOT FOUND), Par contre CAT,D1 ou CAT,D2, de méme que CAT/RAM, comblent ProDOS de joie (mais i! n’oublie pas l'ancien PREFIX pour outant). Comment accéder directement, sans changer de PREFIX, au sous-catalogue d'une disquette de préfixe TM2 ? Pas compliqué (si les titres sont Puisque vous avez le privilége de posséder un Apple, apprenez donc & utiliser le petit nouveau, Pro comme professionnel et DOS courts |); CAT/TM2/TOTO. Notez que l'indica- tion du DRIVE est inutile : ProDOS le cherche... et le trouve. Quelle belle intelligence | RUN ef BRUN Ceauisuit est égale- ment valable pour LOAD et BLOAD. Quand le programme que vous désirez charger ov loncer n'est pas dans un sous-volume (DIR), vous l'obtenez en tapant directement RUN NOM ou BRUN NOM... ov encore — NOM (efficoce dans un cas comme dons l'autre). Ceci dit, rien ne vous empéche dialler charger le programme d'un sous- volume... sans changer de PREFIX, mais n‘oubliez jamais que ProDOS ne conserve en mémoire que le PREFIX qui lui o formellement été indiqué por syne commande de type PREFIX,DI ou PREFIX /NOM (nom = prétixe en question). Si vous char- gez un programme LILI dons le sous-volume TOTO, alors que Je PREFIX fourni actuellement 4 ProDOS est celui de la disquette (TMI, par exem- ple), vous allez toper LOAD/TMI/TOTO/LILI, et cela va marcher. Toutefois, attention | Si votre programme fait appel 4 un fichier écrit dans le sous-volume TOTO (c'est fréquent), il va se plan- ter... & moins que votre commande en Basic n'uti- lise elle-mame la formule ci-dessus /TM1/TOTO /FICHIER, par exemple. li est donc souhaitable, avec ProDOS et les sous- catalogues DIR, de changer de PREFIX avant de taper un RUN. Dans le cas évoqué ci-dessus, commencez

Showing the first 100000 of 150894 characters.

mp.ls