Skip to main content

tremplin micro newsletter issue 14

  • PublicationApple Periodicals
  • Pages78
  • Sourcetremplin_micro_newsletter_issue_14.pdf
← Magazines tremplin micro newsletter issue 14
/ 78
Source: Internet Archive — Aggregated Apple-era periodicals, 1981–2012.
Page 1
Loading…
Text content (OCR)
tremplin micro {'TRES SIMP apprenez le la sur le Gs! Les carrés en Basic Drtisseme Fenétres HCR eer eer tremplin | SOMMAIRE Apple et ProDOS (noms et logos) sont des marques dépo- sées d’Apple Computer, Inc. BIMESTRIEL Le numéro : 33 F Abonnement d'un an : 190 F (6 numéros) Tous nos prix sont indiqués TTC. EDITIONS JIBENA Editions JIBENA Guy-HACHETTE La Petite Motte — Senillé 86100 CHATELLERAULT. Téléphone : 49-93-66-66 PUBLICITE : Raymond JULLIEN (1) 45.75.41.81 Commission paritaire : Les revues qui choisissent d'étre réellement au service du Lecteur, en ne lobligeant pas & glaner, dons plusieurs mogazines, les renseignements concernant so machine, ne bénéficient pas du numéro de Commission Paritaire, et pas dovantage des tarifs pos- toux réduits. TREMPLIN MICRO — Bimestriel — C'est une publication des Editions JIBENA, 4, rue de la Cour-des-Noves, 75020 PARIS — S.A. ov capital de 3600000 F — Imprimé por CITE-PRESS/PARIS. — Dépat légal & la date de parution — Ins cription & la Commission Poritaire des Publications et Agences de Presse : en cours — Directeur de la Publication Guy-Clément COGNE — Diffusion NPP. La Disquette TREMPLIN MICRO contient tous les programmes dv numéro, ainsi que les sour- ces trop pour étre publiés dans les de la revue. Avec la collaboration de : Argos, Claude Aubry, Nicole Bréaud-Pouliquen, Robert Cazenave, Marcel Cottini, Jacques Fourneau, Francois Gallet, Yvan Hué, Roland Jost, Yvan Keenig, Nestor, Jeon Perrot et Clément Renard. LIBRES PROPOS ...... 2 HEURES (Quelle heure est: il dans le Monde 2). 3 LES TRANSFERTS DE VARIABLES (Basic vers LM) . 9. VIDEC (Effacement progressif de I'écran) . . 12 ¢ TRES SIMPLE (Apprenez le langage C sur le GS) ........ 13 LE BON NOMBRE (Exercice élémentaire enC) .........-.... 17 GAGNEZ UN APPLE AVEC VERSION SOFT... ET APPLE ..........- 18 LECONS DE LOGIQUE AVEC NOS AMIS BELGES . 19 DOS 3.3 PAS MORT : VOICI UN PATCH 21 INKEY (Pomme ouverte et pomme fermée) ves LES CARRES MAGIQUES (En Basic, mais scomplel) 30 FOND D’ECRAN (65CG2) . ReOER 34 SPECIAL NON-ACCES AU TABLEAU DEBORD .............. 35 cs TIC-TAC (Le coeur de votre GS bat) ................ 87 CREATION DE CARACTERES (Gribouille vous attend) .............-. 39 QUELQUES ADRESSES INTERESSANTES DES APPLE ..... Pee e! 40 SPECIAL UN BUG CORRIGE DANS L'APPLESOFT DUGS ..... 41 cs TESTEZ LE MODE GR DU GS .... munmemeere 42 BON A SAVOIR (Tridos — Toujours le langage C) . . Bae UE RG 43 CORRIGEZ MERLIN POUR L’UTILISER SUR LEGS . 44 LE PRIX MANNESMANN TALLY 1987 .....00.cccccceeeeeeceeeeeeee 46 TRANSBIN (Déplacement de blocs sur le GS) ... . 47 ALEALIGNES (Amusette en mode HGR) . F Speen 49 AMORTISSEMENT (Utilitaire en Basic) ............. 60620 e cece eee 52 LA SOURIS ETL'ASSEMBLEUR (Deuxieme partic) ...... 55 SONSIR, MAIS EN COMMANDES EXTERNES PRODOS . z HENS 60 PRO.FP (Source de la nouvelle version) ..... a RSM OR TERME ES 64 FENETRES HGR 67 LESLIVRES csiccsnwonicsancnar assign esamnsamianmar n, 16, 20, 43,76 YVAN KOENIG REPOND A NOS LECTEURS .................000005. 72 BULLETIN DE COMMANDE . ‘ 75 TREMPLIN MICRO LIBRES PROPOS Avez-vous troqué votre APPLE // contre un GS ? Jespére que, mieux informé que Tremplin Micro, vous avez pu bénéticier de lo der- niére offre d’Apple Computer France et abandonné votre vieil Apple I (+ ou e) contre un GS tout neuf. Rassurez-vous, rien nest perdu : vous avez jusqu'au 16 juin (c'est un mardi... allez savoir pourquoi on a choisi cette date plutét qu'une autre) pour vous offrir un 65C816. I! vous en codtera 6523 F TIC si vous choisissez la configuration TGS (unité centrale, clavier, 512 K et souris). Vous aurez au préalable remis votre an- cienne unité centrale a votre revendeur qui, bien que cette condition figure dans l'offre de reprise, n’en aura probablement pas vérifié le bon fonctionnement. Vous aurez aussi conservé vos cartes et périphériques, mais en sachant que la compatibilité avec le GS ne sera pas forcément exempte de problémes. Votre revendeur posséde une liste des pro- duits réellement compatibles. Ils sont nom- breux et la plupart de vos anciennes cartes devraient vous autoriser 4 utiliser vos anti- ques périphériques sur le GS (I'imprimante DMP Apple fonctionne normalement avec sa carte paralléle dans le slot 1). OUI ou NON auGs? Si vous disposez de la somme indiquée plus haut (et si vous acceptez de “travailler” avec votre moniteur monochrome), n‘hésitez pas : changez votre Apple, surtout s'il s'agit dun Europlus. Vos programmes personnels Y gagneront en rapidité d'exécution et vous aurez le plaisir de disposer d'un processeur actuel, puissant, dont les possibilités sont impressionnantes. Quant & la machine, il n'est pas nécessai de revenir sur ce qui en a deja été dit ici : est une excellente bécane, digne de la Pomme qu'elle affiche. Peut-étre est-il dom- mage que les bouleversements survenus chez Apple aient quelque peu retardé so mise au point et stoppé le dynamisme des développeurs, trés occupés par ailleurs. I! convient de ne jamais oublier que, dans le pire des cas, un GS se comporte encore mieux (beaucoup mieux) que ses illustres prédécesseurs. Pour obtenir, sur un Ap- ple //, les résultats notés sur un GS, il fou- drait actuellement investir, en cartes addi- tionnelles (et je ne parle pas de |'accéléra- teur !), une somme au moins équivalente & celle qui est demandée pour échanger V'ancien matériel contre le nouveau. La tentation du compatible D'accord, i! est vrai que pour le méme prix on peut s‘offrir un compatible PC bas de gamme, mais en sachant que, pas plus tard que demain, ce standard sera probablement renié par IBM. Reste que |'Applesoft n’arrive pas 4 la che- ville du Basic moyen disponible sur compati- ble. On sait qu'un Basic permettant d'accé- der facilement aux outils est en gestation pour le GS, mais on (ON, c'est Apple) ne le dit pas, ce qui constitue assurément une grave erreur : le public a besoin d'informa- tions sur les matériels qu'il achéte. C'est son droit. Et c'est un devoir, pour les fabricants, diaccéder & ce légitime désir. Ceci étant, Tremplin Micro vous conseille d'apprendre 4 programmer en C... et vous y aidera. Mais ¢0 ferait toujours plaisir d'apprendre offi- ciellement que, dans n mois, un Basic puis- sant sera a la disposition des heureux (le sont-ils ?) possesseurs d'un GS. Et les prix? La, c'est une autre histoire. On peut méme affirmer que c'est le défaut de la cuirasse. Cest la que le bat blesse. II blesse surtout les Gnes (j'en fais bien sir partie) qui, pério- diquement, se font avoir en essuyant les platres. Jusqu’d maintenant, cété GS, rien a dire. Du moins quand on a pu bénéficier de la remise de Noél du club Apple... parce que chez les autres, je veux dire les gogos qui ont payé leur GS ou prix fort, l'aréte s‘incruste aux amygdales ou a la Ivette, non sans provoquer les réactions que l'on devine... et que l'on comprend. Chacun est convaincu que, aprés la campa- gne de reprise des Apple défraichis, le prix du GS baissera... du montant de la reprise. Go se possera en juillet ou en octobre. Ca commencera bien sir par une offre destinée aux seuls enseignants (oh ! Io belle injus- tice !)... puis, la baisse du dollar aidant, a moins qu'il ne s‘agisse de l'apparition d'un GSplus (deja !), on bradera les machines en stock. Ne jetons pas la pierre aux fabri- cants : c'est devenu une habitude. Cest lo loi du marche. Je crains pourtant que, petit & petit, les consommateurs avertis n’en arri- vent & bouder systématiquement les nou- veaux produits. LApple fie Ayant bénéficié — au contraire de |'Apple lle — d'un important effort promotionnel, ‘Apple llc est une machine trés répandue. On J'affectionnait beaucoup chez Apple : c'est un produit fermé (mais c’était sans compter sur l'imagination des bidouilleurs de génie), bien concu pour transformer I'uti- lisateur en mouseman impénitent, con- damné 4 passer d'un logiciel 4 fenétres 4 un autre logiciel 4 fenétres... bret fin prét pour plonger dans |'univers chéri d’Apple : le macworld. Foin des programmeurs oma- teurs |) Vive LE LOGICIEL UNIVERSEL, pen- sont b votre place. Apple apprend |'Homme ? non : 'Homme devient I'esclave de la machine. Horrible destin ! Mais on en revient. Le Mac s'ouvre sur l'extérieur. Le GS n‘en finit plus de compter ses slots et IBM — qui se moque complétement des ama- teurs — n'a pas négligé ce détail important : un ordinateur dit personnel ne doit pas étre une machine fermée. Mais revenons au ic. La derniére version est assurément intéres- sante, mais pour combien de temps ? Qui ignore encore que les jours du 65C02 sont comptés ? Ou |'Apple /c nous présentera sa version TURBO ou il sera transformé, ici et |a, en Minitel intelligent. Tremplin Micro Revue de programmes, Tremplin Micro ne modifiera pas sa ligne de conduite. On connait, dans le domaine de la chanson, par exemple, quelques grandes vedettes. Nous nous conten- tons en général de les écouter, et parfois de sif- floter les refrains de leurs principaux succés. Mais il arrive aussi que certains d'entre nous se mettent a chanter, © |a fin d'un repas... ou comme cela, pour le plaisir, en se rasant ou en pédalant. Pour Iintormatique, c'est lo méme chose, les programmeurs amateurs existent et j'ai le plaisir d’étre trés souvent en rapport avec eux, Certains ne désirent que s‘amuser 4 ali- gner des instructions, heureux ensuite de con- templer le déroulement de leur petite routine. Dioutres vont plus loin et il leur arrive méme de posser dons l'autre camp, celui des gens de métier. Les uns et les autres ont en commun le désir dapprofondir, de faire travailler leurs neurones... avec ou sans souris, avec ou sons la convivialité & loquelle je préférerais, aujourd'hui, non seulement chez Apple, mais chez tous les fabricants, la COMMUNICATION. Guy-HACHETTE. 2 GUY-HACHETTE i i APPLESOFT 7 Yvan HUE Voulez-vous jouer avec les heures et les fuseaux horaires ? Si la longueur du programme (cent pour cent en Basic Applesoft) d'Yvan HUE ne vous décourage pas, mettez-vous d'abord au travail, puis étonnez vos parents et amis par votre "Science" ! Vous constaterez qu'il y a en fait quatre programmes tournant autour de la question. Sans doute aurait-on pu les séparer en conservant leur partie commune. Libre 4 vous de modi- fier, comme vous |'entendrez, le long programme d’Yvan HUE. Notez que, dans |'état actuel d’HEURES, une carte 80 colonnes est indispensable. Nous vous conseillons par ailleurs ProDOS, beaucoup pius rapide que le DOS 3.3 lors du chargement. 110 115 120 125 130 135 DATA "ABIDJAN" .0,"ACORES" ,-2 « "ADELAIDE" ,9, "ALGER" ,0."ANG OLA" ,1,"BUENOS AIRES" ,.-4,"CA LCUTTA" ,6,"DELHI",5, "DENVER" +77,"ILES MARQUISES" ,-10,"LE CAIRE" ,2,"LENINGRAD" ,2,"LIM A" .-6,"LONDRES" ,0, "MEXICO" ,- e DATA "MOSCOU",.2,"NEW YORK" ,- S,"NOME" ,-11,"NOUMEA" ,11,"NO UVELLE ORLEANS" ,-6,"NOVOSIBI RSK",6,"PEKIN",.8,"PERTH" 8," POINTE EST DE SIBERIE",12,"P RAGUE",1, "REYKJAVIK" ,-1,"RI0 DE JANEIRO" ,-3 DATA "SAIGON (HO-CHI-MINH-VI LLE)",7,"SAN FRANCISCO" ,-8," STOKHOLM" ,1,"SVERDLOVSK" ,4," SYDNEY" ,10,"TAHITI" ,-10,"TAN ANARIVE" ,3,"“TEHERAN" ,3,"TERR E-NEUVE" ,-4, "TOKIO" ,9,"VLADI VOSTOK" ,9,"VOLGOGRAD" ,3, "WEL LINGTON" ,12 PRINT CHRS (4);"PRE3": PRIN T CLEAR : HOME : VTAB 6: POKE 36,36: PRINT "MENU" PRINT : PRINT : HTAB 10: PRI NT “1 = Horaire d’atterrissa ge": PRINT : HTAB 10: PRINT 2333 0967 2551 7091 DAFE 140 145 150 155 160 170 175 180 185 195 "2 = Calcul de I’heure en un point dont vous indiquez la longi tude" PRINT : HTAB 10: PRINT "3 = L’heure d’un lieu du tableau inclus dans le logiciel" PRINT : HTAB 10: PRINT "4 = Longueur d’un paralléle et 1 argeur d’un fuseau en Kilomée tres” PRINT : HTAB 10: PRINT "5S = Terminer" Bs "5": GOSUB 975 Ds "SPIT = 3.14159265 C = VAL (C$): ON C GOTO 175 ,1020,1335,1240,555 HOME HTAB 29: PRINT "HORAIRE D’AT TERRISSAGE" VTAB 4: PRINT “Soit un ayvion qui décolle d’un aérodrome situé sur le méridien de Gre enwich a“: PRINT : PRINT “un e latitude que yous choisire i VTAB 9: PRINT "Nous allons c alculer & quelle heure i] se posera sur le terrain d’arr ivée selon" A340 CF60 7369 FC3B 273E CA21 ABCE 2F97 615C 8F45 F354 (suite page 4) TREMPLIN MICRO 3 205 210 220 225 230 235 240 245 250 255 260 265 270 275 280 285 290 295 300 305 310 315 320 325 330 335 340 PRINT : PRINT “la direction de celui-ci." VTAB 14: PRINT “Les calculs seront basés sur les heures solaires en raison de la div ersité des" PRINT : PRINT “heures Iéqale s (ainsi en France |’heure o fficielle avance en été de 2 heures et” PRINT : PRINT “en hiver de 1 sur I’heure réelle).” VTAB 21: PRINT “Les calculs sont arrondis & 1a minute." VTAB 24: GOSUB 685 GOSUB 570 IF P = 90 THEN GOSUB 910: G oTO 240 LT = (P + PM / 60) * PI / 18 O:L1 P:L2 = PM IF W 1 THEN GOTO 320 HOME : VTAB 10:7 = 24 PRINT "Quelle est I’heure de départ ? " GOSUB 990 IF W= 1 THEN GOTO 320 HOME : VTAB 12:2 = 46 PRINT “Quelle est, en Km, la vitesse de l’appareil ? “: GOSUB 700 IF X = 0 THEN GOSUB 1015: G OTO 280 V=xX IF W= 1 THEN GOTO 320 HOME : VTAB 12:2 = 50 PRINT "Quelle est la distanc e Kilométrique a parcourir ? ": GOSUB 700 D=xX HOME : PRINT "Données :°Lati tude = “sUtg"* *yC2s"""s HIA B 11: PRINT “Heure de départ = *sHis* H °*sH25" m* HTAB 11: PRINT "Vitesse moye nne = ";V: HTAB 11: PRINT "D istance & parcourir = ";D;" Km" VTAB 6: POKE 36,23 PRINT "HEURE D’ARRIVEE SELON LA DIRECTION" VTAB 8 ~ io (suite) 6362 8A8B B9De8 4EA? 5758 6895 ED4C BOBF OA6A OFO9 FID EDIC 1952 OFO9 ACA4 630F FFBF AL7E OFO9 AESF E7F2 FB6C Fo10 F7BB FCCcS 221F 40DA 345 PRINT "Direction ““"""" "Atte rrissage ~~ “Date ~TTTT wwe" Observation" 350 M= 0: IF D < = 0 THEN GOS UB 1015: GOTO 305 355 IF D > = 40000 THEN M = D / 40000 360 T=D/V 365 @ = 24 / (40000 * COS ‘LT)) *D 370 A = H + T: GOSUB 775:G = LT * 40000 / PI / 2 375 IF D - M * 40000 > 10000 - G AND D - M * 40000 < 30000 - G THEN GOSUB 890 380 VTAB 10 385 DIRS = "le nord": GOSUB 820 390 A = H + T: GOSUB 775 395 IF D - M * 40000 > 10000 + G AND D - M * 40000 < 30000 + G THEN GOSUB 890 400 VTAB 13 405 DIR’ = "le sud": GOSUB 820 410 M=0:F =0 415 G@ = Q@: IF @ > = 24 THEN QQ =@Q@- INT (@ / 24) * 24 420 IF QQ > = 12 THENF =F -1 : GOSUB 545 425 A=H+ QQ+T: IF @> = 24 THEN M = @ / 24 430 VTAB 16 435 GOSUB 775:DIR$ = "l’est": GO SUB 820 440 IF QQ > = 12 THEN F =F + 1 : GOSUB 545 445 A=H - QQ+T 450 IF A - INT <A) > 0.99 THEN A= INT (A) + 1 455 IF A < 0 THEN F =F - 1 460 IF A < 0 THENA =A + 24: GO TO 460 465 VTAB 19 470 DIRS = "l’ouest": GOSUB 775: GOSUB 820 475 2 = INT ¢ INT ¢ INT (CT - INT (T)) * 60) * 100) / 100) 480 VTAB 22: POKE 36,26: PRINT “ 485 490 495 Durée du vol = "3 INT (T);" fev! SINT © INT © INT CCT ~ INT (T)) * 60) * 100) / 100) om"y GOSUB 685 W=2 BS = "4": IF W = 2 THEN BS = C377 BDO1 1268 1¢89 D43E 2612 3F63 8D7F D302 EA61 6806 3F38 9DCD FD26 CBF3 287F SEO? 4887 A7F2 70E0 1FEE SB09 ESB2 Scoc 9C2B B863 E895 0BS3 DES? seaneceeucsouerseasesnsnsesoncenssnersseseeEEseRsesNEEEeseoNeEeEssoaeseceeoRseesesseseosEseEsesessesosS GUY-HACHETTE 4 Sol So! Sil Sit S2i 52! 53! 53! 54! 54! SSI 55 Sét 571 57! 58 58! 59 Sa 60! 60! 61! 61! 621 62! 631 63! 641 64! 65l 65) 66l 663 TRE 500 S05 S10 515 520 525 530 535 540 545 550 555 560 570 575 580 585 590 595 600 605 610 615 620 625 630 635 640 645 650 655 660 665 "5" GOSUB 945 C = VAL (C$): ON C GOTO 510 +960 ,130,555,1510 HOME : VTAB 10: HTAB 8 PRINT "Voulez-vous ? 1 = Lat itude": PRINT : HTAB 22: PRI NT "2 = Heure de départ" PRINT : HTAB 22: PRINT "3 = Vitesse": PRINT : HTAB 22: P RINT "4 = Distance & parcour bad GOSUB 975 Ww=1 C= VAL (CS) ON C GOTO 240,260,280,305 OBS$ = "Ligne de changement de ":AJ% = "date franchie" RETURN HOME : VTAB 12: HTAB 36: PRI NT "“Terminé": END CLEAR :2 = 12:PI = : GOTO 240 REM SAISIE DES COORDONNEES 22 = 12 HOME : VTAB 10:Y¥ = 90 PRINT "Indiquer la latitude choisie ‘par exemple Paris e st a 48° 50’)" VTAB 12: HTAB 20: PRINT "Deg 3.1415926 rés = "3: POKE 36,40: PRINT “Minutes = VTAB 12: POKE 36,28: PRINT " “""""s: POKE 36,28 2 = 28 GOSUB 700 GOSUB 655: IF X = 1000 THEN GOTO S95 P=X IF P = Y THEN GOTO 650 Y = 59:2 = 50 VTAB 12: POKE 36,50: PRINT " ““""" 83 POKE 36,50 GOSUB 700 GOSUB 655: IF X = 1000 THEN GOTO 630 PM = X RETURN REM VERIFICATION DE VALEURS IF X <¢ > INT (X) THEN X = 1000: VTAB 23: POKE 36,1: PR INT “Donner un nombre entier . s’il yous plait !": GOSUB 685: RETURN IF X > Y THEN X = 1000: VTAB DB61 3552 A667 ECDC 2E2D E48C 2-55 £058 F560 F486 FC72 63B1 1C4B SESF O1BF C9A0 E2CE 169B 1AFC 6494 FFa7 5432 3578 0A30 1860 63F2 FF47 5428 Focs 63B1 F36E 670 675 680 685 23: POKE 36,1: PRINT "I] ne peut y en avoir que “;¥;" !" : GOSUB 685 IF X < 0 THEN X = X - X * 2 RETURN PRINT : POKE 36,27: PRINT "* ": POKE 36,37: PRINT "*" VTAB 24: POKE 36,1: PRINT "P our continuer, frapper une t ouche quelconque autre que r etour chariot ";: GET C$: PR INT D$;: IF ASC (C$) = 13 T HEN GOTO 685 690 VTAB 22: PRINT CHRS (11); 695 RETURN 700 REM SAISIE DE VALEURS 705 x$ = "" 710 VIAB 22: POKE 36,2: PRINT S$ PC( 10): POKE 36,2 715 FOR I = 1 TO 20 720 GET C$: PRINT D%;: IF ASC ¢ C$) = 21 THEN GOTO 720 725 IF ASC (C$) = 8 THEN GOTO 705 730 IF C$ = "," THEN C# = "." 735 IF ASC (C$) = 11 THEN GOTO 755 740 IF ASC (C$) = 13 AND X$ = * “ THEN GOTO 710 745 IF ASC (C$) = 13 THEN GOTO 770 750 PRINT C$;: IF C$ = "." THEN GOTO 760 755 IF C$ ¢ "0" OR C# > "9" THEN UTAB 23: POKE 36,1: PRINT "E rreur de frappe": GOSUB 685: GOTO 700 760 X$ = XB + CH 765 NEXT I 770 X = VAL (X$): RETURN 775 REM DETERMINATION DE LA DATE 780 DTES = "" 785 IF A - INT (A) * 60 = 60 TH EN A = INT (A + 1) 790 IF A > 24 THEN A =A - 24:F =F + 1: GOTO 790 795 DTES = "ce jour": IF F>1T HEN DTES = STRS (F) + " jou rs aprés" 800 IF F = 1 THEN DTES = “le len demain" 805 IF F = - 1 THEN DTES = "la veille" 810 F=0 DE8B 7067 63B1 BAC? 3077 C3CF 63B1 7E33 sEEE OF7C 305E 2EC1 BE8D A7E3 028C coFs 3CFB 36F7 9DCB 30C5 FDIS 1985 1c7C A3CC 1B0B 6704 3046 (suite page 6) seunsecuseseensssrsssnseusesanserenosses scenes sessoesseueeeneesEsoEseooeTesResNoeuessoNaeenseeesoenseseS TREMPLIN MICRO 5 815 820 825 830 835 840 845 850 855 860 865 870 875 880 885 890 895 900 905 910 915 920 925 930 RETURN REM AFFICHAGE PRINT DIR$;: POKE 36,17 IF INT (A) < 10 THEN PRINT ; PRINT INT “A + 0.00013" H ee i A2 = INT ((A + 0.0001 - IN T (A + 0.0001)) * 60): IF A2 < 10 THEN PRINT " "; PRINT A2;" m"; POKE 36,35: PRINT DTES; IF M = 0 THEN GOTO 875 M = INT ((M + 0.00001) * 10 0) / 100:TR$ = “tours": IF M < 2 THEN TR$ = "tour" OBS$ = " du paralléle": IF D IRS = "le nord" OR DIRS = "1 e sud" THEN OBS$ = " de terr e" POKE 36,52: PRINT Mj" ";TRS; OBS$;:0BS$ = "": GOTO 880 POKE 36,52: PRINT OBS$;:0BS$ = "": PRINT SPC¢ 60) ;AUSi:A JS =e OP PRINT RETURN REM PASSAGE D’UN HEMISPHERE A L’AUTRE OBS$ = "Au dela du pole: fus eau":AJS = "“opposé (12 H d’é cart) K=A:A =A + 12: IF K > 12 THEN A = K - 12 RETURN HOME : VTAB 5: HTAB 25: PRIN T "Yous vous trouvez AU POLE «": PRINT : PRINT : POKE 36, SZ: PRINT "*": PRINT "4° 11 n’y a qu’une seule direction possible :"le sud au pole n ord," POKE 36,58: PRINT "*" POKE 36,46: PRINT "le nord a u pole sud." PRINT : POKE 36,28: PRINT "* "3: POKE 36,40: PRINT "*";: POKE 36,54: PRINT "*" PRINT "2° I] n’y a pas d’heu re au pole, ou plutot il est en meme temps toutes les ": (suite) 63B1 DFES 2661 5868 D9CE cD54 EFES 360D Bé85 154E DOBF3 E2AA 75BA 6381 DESS6 4AC3 63B1 B9EF 3A51 6914 7EC1 935 940 945 950 955 960 965 970 975 980 985 990 995 1000 1005 1010 1015 1020 1025 1030 1035 1040 1045 1050 PRINT : HTAB 4: PRINT "heure S puisque tous les méridiens y convergent." PRINT : PRINT : POKE 36,23: PRINT "L’exercice n’a donc p as de sens.": GOSUB 685 RETURN HOME : VTAB 10: HTAB 8 PRINT “Youlez-vous :°1 = Mod ifier une des données sans c hanger les autres PRINT : HTAB 22: PRINT "2 = Recommencer sur d’autres don nées" PRINT : HTAB 22: PRINT "3 Revenir au menu PRINT : HTAB 22: PRINT "4 Terminer" IF W = 2 THEN PRINT : HTAB 22: PRINT "5 = Quelques suga estions" VTAB PEEK (37) + 3: HTAB 20 : PRINT “Répondre par le num éro convenable "; GET C$: PRINT D$: IF C% > BS OR C$ < "1" THEN VTAB PEEK (37): POKE 36,53: GOTO 980 RETURN REM HEURE DE DEPART VTAB 12: HTAB 20: PRINT "Heu re = "3: POKE 36,40: PRINT " Minutes = " GOSUB 595 H= P+ PM / 60:H1 = PM RETURN VTAB 23: POKE 36,1: PRINT "D ans ces conditions i] ne bou ge pas !'": GOSUB 685: RETURN REM CALCUL DE L’HEURE HOME : HTAB 29: PRINT L DE L’HEURE" VTAB 6 PRINT “Nous allons calculer l’heure qu’il est dans un en droit donné par rapport a ce lle" PRINT “que vous attribuez a la France." PRINT PRINT : PRINT "I1 s’agit de 1“HEURE DU FUSEAU. L’heure 1 égale peut en différer, ains i en France" "CALCU F869 6381 ECDC 3B7D 66E0 18DA 443D 0692 E071 87F8 63B1 3066 FAS3 40F2 63B1 E4EA DB73 2cd8 E269 D334 75BA 66C7 BOON Ua Re neeassaEEseSE Rese EUEENNAHoONnEaneaRsSeRseESeETsTATI AST ANeeEeOeeNeUEsERK NOTE eeseZZEsSUEAZHeCoerOES GUY-HACHETTE 6 105 10¢ 104 107 107 108 108 109 109 110 110 111 111 112 112 113 113 114 114 115) 115 116) 116 117) 117 118 118! 1191 TREA snananscennseenesosevesssrrsnassouNeosese suse TeeEeceruNeEesoweeeoe see soeeeeeeseeeLeeeseeeeseeeeseeeseE 1055 1060 1065 1070 1075 1080 1085 1090 1095 1100 1105 1110 1115 1120 1125 1130 1135 1140 1145 1150 1155 1160 1165 1170 1175 1180 1185 1190 PRINT "ol nous sommes en ava nce sur le soleil de 2 heure sen été et de 1 en hiver." PRINT PRINT : PRINT "Ces aménageme nts artificiels d’horaire ét ant trés variables dans le m onde, nous PRINT : PRINT "n’allons pas en tenir compte." GOSUB 685 HOME : VTAB 10:Y = 180:22 = 12 PRINT "Indiquer la longitude dont vous voulez connaitre l’heure": GOSUB 590 LG = (P * 60 + PM):Li = = PM PRINT : PRINT : HTAB 6: PRIN T "Est ou Quest ? (taper Eo u 0) "y: GET 0%: IF 08 <¢ > “E" AND 0 < > "e" AND OF < > "0" AND 0% < > "o" THEN VTAB 12: GOTO 1095 PRINT 0% IF W= 1 THEN GOTO 1115 HOME : VTAB 10: PRINT "Quell e heure est-il en France ? " tY = 24: GOSUB 990 IF LG - 450 < 0 THEN H = 0 P:L2 H = INT “(LG - 450) / 900) #4 P2 = H1 + H: IF 0% = "o" OR O03 = "0" THEN P2 = Hi - H OTES = "Ce jour": IF P2 > 24 THEN P2 = P2 - 24:DTE$ = “le lendemain" IF P2 < 0 THEN P2 = 24 + P2: DTES = "la veille" PRINT HOME : VTAB 10: POKE 36,20 PRINT "France";: POKE 36,49: IF L1 ¢ 10 THEN PRINT " "y PRINT Li;"* 2 IF £24 10 7 HEN PRINT "0 PRINT L2;"/ : PRINT O¢ PRINT : POKE 36,18 IF H1 < 10 THEN PRINT “ "; PRINT H1;" H “"3: IF H2 ¢ 10 THEN PRINT "0 PRINT H2;" m"; POKE 36,45: IF P2 < 10 THEN PRINT “ “33 PRINT P2;" H “";: IF H2 ¢ 10 OD8Cc 75BA E396 229F 0B53 ABC? 96FS 7695 E745 8520 A63C ACyI BAF OBDF F20C CCEF 2583 75BA 3CBE 7E90 8C30 36C0 71AB E575 ccss 0358 12A9 1195 1200 1205 1210 1215 1220 1225 1230 1235 1240 1245 1250 1255 1260 1265 1270 1275 1280 1285 1290 1295 1300 1305 1310 1315 1320 1325 1330 1335 THEN PRINT "0" 775E PRINT H23" m ~ DTES;"." 9869 BS = "4" SDAE GOSUB 685: GOSUB 945: IF C$ = "3" THEN CLEAR : GOTO 130 2B6E IF C$ = "2" THEN CLEAR : GO TO 1080 E789 IF C& 4" THEN GOTO 555 CO6A W = 1:B$ = "2": HOME : VTAB 12: HTAB 15 6184 PRINT "Voulez-vous changer 1 = La longitude": PRINT : PO KE 36,34: PRINT "2 = L’heure en France": GOSUB 975 5962 IF C$ = "1" THEN GOTO 1080 F991 GOTO 1110 486E REM CALCUL DE LA LONGUEUR D’ UN PARALLELE ET DE LA LARGEU R D’UN FUSEAU 22 = 12 O1BF HOME : GOSUB 570 3C1D IF P = 90 THEN PM = 0 5497 LT = (P + PM / 60) * PI / 18 O:L1 = P:L2 = PM OAGA LP = 40000 * COS (LT):LF = LP / 24 ES62 LP = INT (LP # 100) / 100:L F = INT (LF * 100) / 100 9FEC HOME : VTAB 10: HTAB 15 ADA PRINT "Longueur du paralléle Mg bligh®: “sl2Qge? im "ips! Ki lométres" 736D VTAB 13: HTAB 15 553C PRINT “Largeur d’un fuseau a cette latitude :°"3LF;" Kil omé tres" 2085 VTAB 16 SEO? HTAB 15: PRINT LF" Kilométre s est aussi la vitesse a laq uelle se déplace" 7C8F HTAB 15: PRINT “un point "; CHR$ (34);"immobile"; CHRS ¢ 34);", en raison de la rotat ion de la terre" 504A VTAB 22: PRINT " Pour reveni r au menu, frapper ESCAPE" 0717 GOSUB 685 0B53 IF C$ = CHR (27) THEN GOT 0 130 3388 GOTO 1240 6B72 GOTO 130 173F REM HEURE D’UN LIEU DU TABLE AU (suite page 8) seuaauousasreasneussaessneuonsresasseusnsnesosesessaEseESEnTe sees eUAEesseseseeEecesseeoeoReaEseensoeeees TREMPLIN MICRO 7 1340 1345 1350 1355 1360 1365 1370 1375 1380 1385 1390 1395 1400 1405 1410 1415 1420 1425 1430 1435 1440 1445 1450 1455 1460 1465 1470 1475 1480 1485 1490 1495 1500 1505 1510 (suite) 22 = 22:¥ = 40 6287 HOME 2F97 RESTORE SDAE FOR I = 1 TO 40 62F0 READ AS: READ A ADEE IF I >) 20 THEN VTAB I - 20: POKE 36,40 2DED IF I ¢ 10 THEN PRINT " "3 7E45 PRINT 13? “"s 2BFD PRINT AS DIIF NEXT I 9DCB VTAB 22:2 = 67: PRINT "Quel numéro choisissez-vous ? (po ur revenir au menu, frapper 99 )";: GOSUB 700 2036 IF X = 99 THEN GOTO 130 6D4A IF X < 1 OR X > 40 THEN VTA B 23: POKE 36,1: PRINT "Donn er un numéro entre 1 et 40 ! ": GOSUB 685: VTAB 22: PRINT CHRS (11): GOTO 1390 SF4B N =X 1076 HOME : VTAB 10:Y = 24:22 = 1 2 7096 PRINT "Quelle heure est-il e n France ? “: GOSUB 990 038A RESTORE SDAE FOR 1 = 1 TON E1DA READ AS: READ A ADEE NEXT I 90CB DTES = "ce jour" C7FD H = Hi + A: IF H > 24 THEN H = H - 24:DTES = "le lendemai n" 63DE IF H < 0 THEN H = 24 + H:DTE $= "la veille" oA0s HOME : VTAB 12: HTAB 20 9E08 PRINT "S’il est “3 B974 IF H1 < 10 THEN PRINT " "j €575 PRINT H1;"_H "3: IF H2 < 10 THEN PRINT " "3 3025 PRINT H2;" m en FRANCE," SACE PRINT : HTAB 20: PRINT “il e& st 7"; 7760 IF H ¢ 10 THEN PRINT " “; 2744 PRINT H;" H "gs IF H2 ¢ 10 T HEN PRINT " "jy 12F4 PRINT H2;" ";DTES;" a ";AS B7AE GOSUB 685 0B53 GOTO 1335 5577 REM SUGGESTIONS 1515 HOME 2F97 1520 PRINT "1") Se placer a la la titude 90": PRINT 7148 1525 PRINT "2") Heure 12, vitesse 1000, distance 40000 Km, se placer successivement aux" 29D 1530 HTAB 5S: PRINT "latitudes 0,6 0,89": PRINT 4025 1535 PRINT "3") Latitude 0, Heure 12, vitesse 1666.666 Km, fa ire varier les distances et" 3ACA 1540 HTAB 5: PRINT “constater ce qui se passe lorsque l’on va vers I’ouest." ADA 1545 HTAB 5: PRINT “Reproduire le phénoméne pour d’autres lat itudes : vitesse = largeur d u": HTAB 5S: PRINT "fuseau, c alculée en exécutant le 4° d u menu" 6A49 1550 PRINT : PRINT "4") Latitude 0, Heure 0 H 30, vitesse 200 0, distance 6000 : voir ce q ui se passe" ;: HTAB 5: PRINT “quand on va vers |’ouest. F aire ensuite varier les donn ées." 2760 1555 PRINT : PRINT "S*) Latitude 0, Heure 12, vitesse 1000 Km » distance 10001. Se placer ensuite a": HTAB 5: PRINT “u ne autre latitude.” 603A 1560 PRINT : PRINT "6*) Latitude 0, Heure 12, vitesse 1000, d istance 20001. Constater ce qui se": HTAB 5: PRINT “pass e quand on va vers l’est ou l’ouest" E2B6 1565 PRINT : PRINT "7") On peut a bandonner le schéma de 1’avi on : le programme s’applique aussi": HTAB 5S: PRINT “bien au piéton qu’a la fusée."; 36ED 1570 GOTO 485 294C Ne cherchez plus nos courtes routines en langage machine : la plupart d’entre elles sont regroupées (avec d’autres, inédites), dans des recueils pratiques, accompagnés d’une disquette. GUY-HACHETTE La plu pré fer qué adr As: ad Q cy 3 AT FRM HH SZ ON HMw RRRARRRKS |e DIDACTIQUE ] Roland JOST Transfert de variables du Basic vers Un programme en assembleur La programmation en Assembleur permet d'écrire des programmes plus courts et surtout plus rapides que le Basic. Les revues consacrées 4 |'Apple publient de nombreuses routines prétes a étre incorporées 4 vos programmes. Ces applications nécessitent souvent le trans- fert de données en provenance du programme Basic appelant. La méthode la plus courante, que je trouve personnellement peu conviviale, est de poker les différentes valeurs 4 des adresses libres en mémoire (généralement dans les trous de la page @) ou le programme Assembleur pourra les retrouver. Je pense qu'il est préférable de faire |’appel par un CALL adresse, variable!, variable2, ... variable n, d'autant que les routines de la ROM sont dis- posées @ vous faciliter la tache. Ce sont ces routines que je vous propose de découvrir et dutiliser pour le transfert de variables entiéres. 1. Un nombre entier entre 0 et 255: CALL 768,X $300: 20 DE BE JSR CHKCOM ; teste la virgule apras I'adresse $303: 20 F8 E6 JSRGETBYT ; évalue la variable X $306: 86 06 STX 06 ; stocke la valeur en $06. GETBYT évalue l'expression. Le résultat est mis dans le FAC et converti en un entier inférieur a 256 et enfin stocké dans X et aussi dans FACLO. La valeur de X est ensuite sauvegardée a l'adresse $06. Il est possible de gagner 3 octets : $300: 20 F5 E6 JSR GETBYTC ; saute un caractére et évalue X. ] GETBYTC saute un caractére avant $303: 86 06 STX d'appeler GETBYT. Et voici encore une autre possibilite : $300: 20 4C E7 JSR COMBYTE ; teste la virgule et évalue X. $303: 86 06 STX Le sous-programme COMBYTE ($E74C) vérifie que l'octet pointé par TXTPTR est une virgule, puis appelle GETBYT ($E6F8). 2. Un nombre entier entre 0 et 65535 : CALL 765,X $2FD: 20 DE BE JSR CHKCOM ; teste la virgule $300: 20 67 DD JSR FRMNUM ; évalue la formule $303: 20 52 £7 JSR GETADR ; FAC —» LINNUM $306: A5 50 LDA 50 ; transfére LINNUM dans $06 Le nombre sera stocké en $06 et $07. $308: 85 06 STA 06 $30A: AS 51 LDA 51 ; transfére LINNUM+1 dans $07. $30C: 85 07 STA 07 FRMNUM ($DD67) évalue Ia formule pointée par TXTPTR ($B8-89) en vérifiant que c'est un nombre et range la valeur dans le FAC. GETADR ($E752) transforme FAC en entier sur deux octets et le range en LINNUM ($50-$51). TREMPLIN MICRO 9 la laa ata ah ele ela edd ee adhe edhe edeedededaleedelelaheledadededededaladadadaladadalalalaiedataledaladededl ooue 3. Saisie de plusieurs entiers : CALL 768,E1,E2, ... En E1,E2... sont des entiers inférieurs 4 256. $300: 20 BE DE JSR $DEBE_ ; testelavirgule $303: Ad 00 LDY £$00 ; initialise le pointeur $306: 84 FA STY $FA : sauvé dans $FA $308: 20 F8 E6 JSR GETBYT ; évalue la formule oA $30A: Ad FA LDY SFA L $30C: 96 06 STX $06,Y — ; stocke la variable ( $30E: £6 FA INC $FA ; incrémente le pointeur oss: $310: C9 2C CMP £$2C ; le code ASCII de la virgule est 2C amis $312: DO 06 BNE $31A ; pas de virgule, c'est fini IBM. $314: 20 81 GO JSR CHRGET ; continue la lecture malg $317: 18 CLC ; oncontinue étres $318: 90 ED BCC $308 ; la boucle... grés. $31A ; __ ... suite du programme. Pda Les valeurs seront disponibles en $06, $07, $08, etc. ... apes nels. 4. Si vous préférez les parenthéses, les concepteurs de la ROM de IApple ont encore pensé 4 vous : semb CALL 768(X) o¥ X est un entier inférieur 4 256 : ce n $300: 20 82 DE JSR PARCHK ; Claire $303: 20 FB E6 JSR CONINT ; inforr $306: 86 06 STX $06 et... PARCHK ($DEB2) vérifie la présence d'une parenthése ouvrante, évalue la formule qui suit par FRMEVL tile de ($DD7B) et teste la présence de la parenthése fermante. La valeur du FAC est transformée en entier dans X Lo pre par CONINT ($E6FB). al On pourrait aussi utiliser : les fc $300: 20 F5 E6 JSR GETBYTC oon $303: 20 88 DE JSR CHKCLS ; teste la parenthése fermante. tie s’c $306: 86 06 STX $06 gramr cété ¢ trouve édite progr ainsi ¢ APPLE // ProDOS ee GUIDE DU PROGRAMMEUR APPLESOFT Vous ne tirerez pleinement profit de votre Apple que si vous connaissez parfaitement les multiples ressources de son nouveau systéme d’exploita- tion : ProDOS. Apres avoir lu l’excellent ouvrage de Marcel COTTINI, vous trouverez en ProDOS I’un de vos meilleurs alliés pour une programmation avancée. 0 GUY-HACHETTE Votre bibliotheque INFORMATIQUE * MS-DOS, GUIDE DU PROGRAMMEUR (Richard Allen King) Rassurez-vous, applemaniaques mes amis, je ne suis pas vendu au standard IBM. Mais je ne suis pas non plus — malgré mon grand age — I'un de ces étres rétrogrades qui refusent le pro- grés. Le standard en question existe. MS-DOS est actuellement le systeme dexploitation le plus utilisé sur les micro-ordinateurs 16 bits profession- nels. Il est bon de savoir & quoi il res- semble... et je vous prie de croire que lon n'est pas décu. Le guide de Richard Allen King (traduction francaise de Claire Baccichet) présente toutes les informations nécessaires 4 l'utilisateur et... au programmeur (il n’est pas inu- tile de faire la distinction !). Lo premiére partie décrit le fonctionne- ment de MS-DOS versions 2 et 3, lo structure des disques et des fichiers, les fonctions du BDOS, Ia gestion du clavier, de |'écran et des interfaces séries et paralléles. La deuxiéme par- tie s'adresse plutét au lecteur non pro- grammeur (il en existe beaucoup du cété des compatibles, on le sait), On y trouve les détails de l'utilisation de 'éditeur Edlin, des fichiers batch et du programme de mise au point Debug, ainsi que de nombreux uiiitaires, SYBEX, 68 Impasse du Curé, 75881 PARIS CEDEX 18 416 pages — 248 F TTC. GUIDE DU PROGRAMMEUR A.Bass D Thomas © DES ORDINATEURS CONTRE LAS VEGAS (Thomas A. Bass) Des doutes m’assaillent quand on pré- cise qu'un récit, aussi extravagant que faire se peut, est pourtant |'étrange et authentique aventure d'une bande de physiciens et d'informaticiens sorciers 4G l'assaut des casinos... Il parait que tout cela est vrai et que cette passionnante histoire de 350 pages n’est pas un roman. Comme vous allez évidemment vous offrir ce bouquin, je suppose que nous ne tar- derons pas 4 entendre parler de vous... lorsque vous aurez, gréce 4 un micro-ordinateur glissé dans la semelle de vos chaussures, ruiné tous les casinos de France et de Navarre ! Attention | les choses ne seront pas si simples. Vous devrez non seulement réinventer toutes les procédures mises au point par la petite bande, mais apprendre 4 pianoter avec vos orteils. Evidemment, vous bénéficierez de l'expérience de nos héros, mais vous partirez néanmoins avec un réel handi- Cap : nous ne sommes pas 4 Las Vegas, par NESTOR mais en France... et vous n'étes pas Américain ! Editions Albin Michel, 22, rue Huyghens, 75014 PARIS 350 poges — 95 F TTC. © DICTIONNAIRE MICRO-INFORMATIQUE (Pierre Le Beux) Un dictionnaire de plus... Notez que l'évolution perpétuelle de la micro- informatique et de son vocabulaire jus- tifie @ elle seule les multiples éditions qui tentent de nous faire mieux connai- tre les mots employés dans les ouvra- ges techniques. Celui-ci présente l'avantage de comporter des lexiques francais-anglais et anglais-francais (ce qui n'est pas vraiment original), mais aussi francais-allemand et allemand- francais, ce qui est moins courant et séduira probablement de nouvelles catégories de lectrices et lecteurs. Vous constaterez que nos voisins alle- mands empruntent volontiers les ter- mes anglais. A tort ou 4 raison. Que cela ne nous empéche pos d’exiger, en France, des documentations rédigées en Francais, ef non en franglais. SYBEX, 6-8 Imposse du Curé, 75681 PARIS CEDEX 18 200 poges — 98 TTC. TREMPLIN MICRO UTILITAIRE Clément RENARD EFFACEMENT PROGRESSIF DE L'ECRAN Cette routine fonctionne aussi bien en 40 qu’en 80 colonnes. Son principe est simple. Chaque carac- tere est lu et sa valeur décrémentée de 1 jusqu’au moment ou elle est égale 4 l’espace ($AQ). 106 105 Wg 5 120 125 130 135 140 145 300 : 302: 304: 306: 307: 30A: 30c: SOF : 312; 314: 317: SIA: 31D: SIE: 320 : 321: 323 : 325 327: 328 : 32A: 32C : 32E : 32F : 331: 333 : 335 : 337: TEXT : NORMAL :D$ = CHR$ (4): PRINT D$"PRE3": PRINT ; HOME HTAB 9: INVERSE : PRINT" VIDEC (EFFACEMENT PROGRESSIF DE L'ECRAN EN 40 OU 80 COLONNES) ”: NORMAL POKE 34,2: VTAB3 FOR | = 768 TO 823: READ R: POKE I,R: NEXT DATA 169,0,133,6,162,23,138,32,71,248,160,39,32,40,3,44,31,192,16,9,44,85,192,32,40,3,44,84,192,136, 16,236,202, 16,227, 165,6,208,217,96, 177, 38,201 ,160,240,9,56,233,1,145,38,169,1,133,6,96 LIST : LIST :N = 80: GOSUB 145 PRINT CHR$ (17): N = 40: HOME : LIST : GOSUB 145 PRINT CHRS (18): VTAB 22: PRINT "(M)ENU DE DISQUETTE ";: GET R$: IF R$ = "m" OR R$ = "M" THEN PRINT D$"RUN MENU" HOME : END PRINT : VTAB 24: INVERSE : PRINT "ESSAI EN "N”COLONNES";: NORMAL : CALL - 198: POKE 49168,6: WAIT 49152,128: POKE 49168,G: CALL 768: RETURN Ad 90 LDA £$00 ‘| On initialise cette adresse-test (on peut prendre n'importe quelle 85 06 STA $06 adresse disponible). A2 17 LDX £$17 X va servir de compteur pour le nombre de lignes. 8A TXA “| On le passe dans A pour GBASCALC qui va nous placer l'adresse de 20 «47 FB JSR $F847 _| base de la ligne en $26-27. AQ 27 LDY £$27 Y = 39 (on va lire de 39 4@ inclus). 20 28 03 JSR $0328 Vers le sous programme. 3c oF BIT $COIF ‘ 10 09 BPL §031D ‘| Si on nest pas en 80 colonnes, saut. 2¢ 55 Ce BIT $C055 ~ | 20 28 G3 JSR $0328 Sinon méme chose en AUX pour les 80 colonnes. 2C 54 CO BIT $co54 _| 88 DEY * repens 10 €C BPL $030C On boucle jusqu’é Y =0 inclus. 1 4 Bet g0306 _| !dem pour le nombre de lignes. AS 06 LDA $06 | $i $6 contient autre chose que le @ initial, encore un tour complet DO D9 BNE $0300 d'écran ! 60 RTS Retour au BASIC. - ] SOUS.PROG. Bl 26 “ LDA ($26),¥ = Lecture du caractére. co Ag CMP £$AG ee a i a Fo 07 BEQ $0335 _| Si c'est un espace, rien 4 faire. 38 SEC - £9 01 SBC £$01 Sinon on le décrémente de 1 et on I'affiche. 91 26 STA ($26),¥ — A? 01 LDA £$01 On met | dans l'adresse-test. 85 06 STA $06 60 RTS Retour. BSAVE VIDEC.LM,A$300,1$38 12 GUY-HACHETTE Je cc gens ver" les fe n'est refai taire don affirr quelc né de Ne n vaise pens nous bles grdaci Bien revie bilité soft TOO Que l'ass nou teur: négl Basir teur, sera les Tene ceux fianc infor pres Parf: chev teur: onan TREA TRES SIMPLE ! Apprenez 4 programmer en C sur le GS Le liGS la déception ou l'état de grace Je connais quelques décus de |’APPLE IIGS, des gens comme vous et moi, qui s‘attendaient 4 trou- ver "LE" super basic MICROSOFT gérant la souris et les fenétres encore mieux que ne le fait “MINIE" (ce n'est pas peu dire !), et puis voila : Apple nous refait le coup de |'APPLESOFT pur, dur et réglemen- taire. Mon ami et complice Yvan Koenig, avec son don naturel du sacrifice et du paradoxe, a beau atfirmer “Less is more”, j‘entrevois tout de méme quelques grimaces parmi les parrains du nouveau- né de la Silicon-Valley. Ne nous resterait-il plus qu’a faire contre mau- vaise fortune bon coeur, et & nous consoler en pensant que toutes les petites merveilles que nous avons pu écrire par le passé restent vala- bles et fonctionnent méme trois fois plus vite grace 4 la WOZ machine ? Bien sir que non : se contenter de cette solution reviendrait 4 n'utiliser que dix pour cent des possi- bilités de notre nouvelle machine. En effet, |'Apple- soft ne tire pas parti des ROM TOOLS et RAM TOOLS véritable cceur logiciel de l'Apple lIGS. Que faire ? Je vois des doigts qui se lévent dans l'assistance... c'est cela méme: apprendre un nouveau langage. Aie ! les trois-quarts des lec- teurs de Tremplin Micro vont probablement négliger mon article pour aller voir si ¢a parle Basic un peu plus loin. Amie Lectrice, ami Lec- teur, un petit effort s'il vous plait... et l'avenir sera 4 vous ! Restez avec nous ! Le secret informatique Tenez, je vais confier un secret @ celles et a ceux, pleins de courage, qui attendent avec con- fiance Ma révélation. Je plonge... “LE” secret informatique, le voici : @ de rares exceptions pres TOUS LES LANGAGES SE RESSEMBLENT ! Parfaitement, on vous a trompés et, a part le fou chevelu qui parle LISP ou PROLOG 4 des ordina- teurs intelligents et le moine bénédictin qui gne des octets de langage machine au fond d'une cave, les programmeurs utilisant les lan- gages de haut niveau (BASIC, FORTRAN, PAS- CAL, APL, € etc.), décrivent plus ou moins les mémes structures et peuvent par conséquent se comprendre... Les langages du futur Ceci étant posé, quel langage choisir ? Une récente prospective américaine laisse entrevoir pour les années 90 la prédominance de trois types : 1. Pour les applications de trés haut niveau, commande de fusées, noyaux de langages etc. : survivance de l'assembleur. 2. Pour les applications de haut niveau, systé- mes, éditeurs, gestion etc. : langage C. 3. Pour les applications de bas niveau od la vitesse d'exécution n’est pas critique : Basic compilé, genre QUICK-BASIC de |'IBM. Oublié le PASCAL, désagrégé |'APL, sublimé le FORTRAN : le rouleau compresseur est passé, les spécialistes de l'intelligence artificielle ont devant eux des lendemains qui chantent avec LISP et PROLOG, mais nous autres, pauvres pro- grammeurs sur APPLE, si nous voulons rester crédibles, il va nous falloir sacrifier & la mode et apprendre le langage C . Cc portable Une bonne nouvelle pour commehcer : les pro- grammes que nous écrirons en € pour le GS “tourneront” avec des modifications mineures sur MAC-INTOSH et IBM. C'est ce que l'on appelle la portabilité. Une deuxiéme bonne nouvelle : il existe déja une version professionnelle de € sur le GS. Les petits futés qui ont profités de |'échange “je te donne mon EUROplus plein de poils (et cing mille cing cents francs) et tu me donnes ton GS plein de puces” peuvent acquérir, pour une somme modique, une doc tout en anglais pour I'instant, TREMPLIN MICRO 13 SanEEEETEsT EEE sees esoesesess sess seen soesseeeeeeneEooEsessseesoeossEeseEsesoeneeeeEEeseeeceeeseeneeeEEE et une tripotée de disquettes 3,5 pouces compor- tant entre autres un éditeur de texte, un assem- bleur version Géessisé du génial ORCA, un com- piciedr C , un LINKER pour relier tout ca, une ibliotheque bien fournie, un SHELL pas piqué des vers, un... Hé ! Hé ! il faut tout ca pour Pregtammer en€ ! et vous avez le toupet de dire C trés simple ! Mais oui, braves gens comblés par tant de bons logiciels, il faut tout ca, mais ces outils sont la pour vous simplifier la tache ou pour améliorer la qualité de votre travail. Jentends, dans le fond de la salle, des individus murmurer que sur leur APPLE Ile, avec leur BASIC, quand on tape PRINT “HELLO” |'ordina- teur répond bien gentiment HELLO sans faire de chichi, mais aussi sans LINKER et autres babioles logicielles... J'avoue volontiers qu'un environne- ment de type professionnel présente évidem- ment des inconvénients, et j’aurai bien souvent l'occasion de vitupérer le systeme de développe- ment APPLE. Toutefois, malgré sa lourdeur, c'est le seul outil qui permette de tout faire et de sur- croit de le faire bien : pensez qu'un programme en€ tourne de 20 & 40 fois plus vite que son homologue en BASIC ! Pour les frais émoulus du Basic, je vais présenter rapidement le systeme APPLE PROGRAMMER'S WORKSHOP (dans sa version 1.0A7, si l'on en croit la notice technique fournie avec la béte). Premiere surprise : une fois la disquette APW C chargée, on ne retrouve pas le "paysage” Pro- DOS habitvel ; I’écran s‘efface et le PROMPT (le caractére qui précéde le curseur) n'est pas le § habituel, mais le £. En haut de I’écran, trois lignes nous apprennent que nous venons de charger APW SHELL. En fait, le SHELL est une interface logicielle qui fournit des commandes simplifiant |I'écriture de programmes en différents langages. Pour con- naitre la liste de ces commandes, tapons HELP. Aussitét, I'écran se remplit aux deux tiers de mots mystérieux : CMPL, CMPLG, COMPILE, LINK et d'autres 4 consonance plus familiére, tels que CATALOG, EDIT, COPY, PREFIX, DELETE, EXEC, etc. Pas d'affolement donc, d’autant moins que, si on tape HELP mot-inconnu (par exemple HELP CMPL), le GS nous explique (dans la langue de WOZNIAK) la fonction et le mode d'appel du mot mystérieux. Au cours de notre initiation, nous allons rencon- trer trois familles de commandes : © Les aides documentaires : HELP, CATALOG © Les aides de programmation : EDIT, COMPILE, LINK, COPY, DELETE ¢ Les commandes de configuration : EXEC, TEXT Rassurez-vous, nous n’utiliserons pas les 54 com- mandes disponibles, celles que je viens de citer suffisant dans 99% des cas. Avant de nous lancer dans la programmation en C, un petit exemple va nous montrer 4 quel point le SHELL est confortable. c SYMPA Les programmeurs en MSDOS (IBM) ont la facheuse habitude de taper DIR pour obtenir la liste des programmes d'une disquette. Bien sdr, PRODOS ne reconnait pas cette commande et "jette” impitoyablement les infidéles. Le SHELL d'APW ne se comporte pas plus galament, mais on peut lui apprendre facilement 4 EXECuter cette nouvelle commande. Si on tape HELP EXEC depuis le SHELL, le GS nous précise que la commande EXEC permet de créer des programmes de commande. On peut grace a eux élaborer de nouvelles commandes, enchai- nements de commandes SHELL. Tapons: EXEC ~ EDIT DIR Le disque se met @ tourner et, en quelques secondes, nous nous trouvons face 4 un message d'erreur nous informant que les paramétres de tabulation ne peuvent étre trouvés, mais que cela n‘a pas de réelle importance puisque |'édi- teur travaille avec des valeurs par défaut. On tape RETURN et on se trouve sous |'éditeur de programme. Fort bel EDITEUR au demeurant : 20 pages de la documentation lui sont consacrées et il fait tout ce qu'un honnéte homme est en droit d'attendre d'un éditeur plein écran moderne ; 48 commandes en tout, plus 16 macros commandes définissables par l'usager... bref, un vrai plaisir. Pour I'instant nous allons nous contenter de taper la commande SHELL qui remplacera notre DIR préféré : CATALOG éle ‘SeaaaansseccenesouerceseseessnessosssessesEEEnEseeuseneEEesseE ses eseseseaseeeeeneaesonsoonEERAeeEesEaTS 14 GUY-HACHETTE les pass UTIL Puis Ine disq DIR! Ung ligne de fl uti lest tard linke beus rons Puis: enp en Ic I nc que, puis cice, pass suiv Notr cons mat J'ap: yeu sert Un 5 sieu vent fonc indic cutic suivi dar: Les: TREA Le symbole é1é désigne une variable qui sera passée depuis la ligne de commande. Ainsi DIR UTILITIES sera "“traduit” par CATALOG UTILITIES. Puis on tape : — CTRL-Q pour Quitter I’éditeur — S pour Sauver notre "programme" sur disque — Epour retourner au SHELL. Il ne nous reste plus qu’d taper DIR. Miracle ! le disque tourne, le catalogue s’affiche. On essaie DIR UTILITIES... OK ca MARCHE ! Un petit raffinement nous permet de rappeler les lignes précédemment tapées sous SHELL 4 i'aide de fleche HAUTE et de fléche BASSE. Uutilité de mon exemple n’est pas flagrante pour les non habitués d'IBM, mais nous verrons plus tard l'importance d'un tel outil : compilateur et linker nécessitent l'emploi d'une syntaxe ver- beuse et complexe que grace a EXEC, nous pour- rons ramener 4 la frappe d'une lettre. Puisque nous savons utiliser |'éditeur nous allons en profiter pour taper notre premier programme en langage C et observer ce qui se passe. Il nous faut taper CC pour informer le SHELL que, dorénavant nous allons travailler en € , puis EDIT EX@1.C (nom de notre premier exer- cice, n'oubliez pas le .C). Lorsque nous sommes passés en mode d’édition nous entrons les lignes suivantes : main() é printf(""HELLO GS GOOD-BYE APPLE Iicn’’); e Notre sympathique machine vibrera de plaisir en constatant que nous parlons sa _ langue maternelle... Jiapergois des BASICOIS qui me font les gros yeux : pas de numéro de ligne ? et non, car ca ne sert G rien. Un programme en C€ est composé d'une ou plu- sieurs fonctions décrivant les opérations qui doi- vent étre effectuées. Ici une seule fonction, la fonction main(). Ce nom réservé et obligatoire, indique au compilateur ot doit commencer |'exé- cution du programme. Les parenthéses vides qui suivent le nom de la fonction signalent l'absence d'argument. les caractéres é et @ délimitent un bloc d’instruc- tions (en fait ces caractéres francais correspondent aux accolades “curly brackets” de l'anglais). Dans notre cas, le bloc d'instruction se raméne a une seule fonction : printf, fonction de la biblio- théeque € et permettant d’écrire sur le terminal. la chaine de caractéres Hello GS Good-Bye APPLE Il se termine par ¢n, ce qui correspond a l'envoi d'un retour chariot (carriage return), tan- dis que le ; est un séparateur d’instruction pro- che parent du : du Basic. Votre curiosité justifiée sur la syntaxe de notre programme étant satisfaite, il ne nous reste plus qu’a demander 4 la machine de I'exécuter. Quit- tons I'éditeur de la fagon habituelle (CTRL-Q $ E) et tapons : CMPLG EX01.C KEEP =EX@1 Ce qui signifie en argot GS : COMPILE et LINK le code source EX01.C, conserve le code exécuta- ble généré sous le nom de EXG1, puis exécute EX@1. La disquette se met 4 tourner et au bout d'un cer- tain temps (piutét long), le GS nous informe que le compilateur est chargé et qu'il s‘occupe de EX@1.C. Un temps certain, et on ajoute que la compilation est terminée et que le LINKER en est a sa premiere passe. Une deuxiéme passe et c'est fini : le programme se charge et s'exécute, devant nos yeux éblouis, les mots magiques Hello GS Good-Bye APPLE II viennent de s’écrire en blanc sur fond bleu. Ouf ! le temps d’écrire 4 notre vieille mére que nous parlons le LANGAGE € , de faire fondre une plaque de bronze "Programmeur Profession- nel” pour mettre devant notre porte et on essaie de comprendre ce qui s’est passé. Je vois des individus (toujours les mémes) qui prétendent qu’en BASIC APPLESOFT... C'est la derniére fois que j’admets une interrup- tion : il ne faut comparer que des choses compa- rables : BASIC APPLESOFT est interprété, c'est- a-dire que quelque part, caché dans des ROMS, se vautre un gros programme qui vient traduire mot 4 mot, et au fur et & mesure de leur exécu- tion, les lignes de votre programme. € est au contraire compilé : la traduction est faite une fois pour toute en langage machine par un esclave docile : le compilateur. (suite page 16) TREMPLIN MICRO 15 Le compilateur génére un code (le code objet) contenant la traduction de votre programme et faisant appel 4 des sous-programmes extérieurs (dans notre cas la fonction PRINTF) ; le LINKER (éditeur de liens en francais) crée un code EXE- cutable en liant le code objet et des modules extraits d'une LIBRAIRIE. Une telle méthode est contraignante au niveau du développement : chaque fois que l'on chan- gera une instruction i] faudra recompiler et relin- ker le programme, mais le gain en rapidité d'exécution est considérable. De plus, le pro- gramme source est entiérement contrélé par le compilateur (notons qu'en € le contrdle syn- taxique est plutét réduit). Autre avantage, les utilisateurs finaux n'ont pas accés au listing de votre programme et ne peu- vent donc pas y effectuer des modifications dangereuses. Uutilisation d'un LINKER vous permet également de lier des programmes écrits dans des langages différents : © , PASCAL ou ASSEMBLEUR et de construire un programme par petits modules que vous LINKerez 4 la fin. Le langage € n'est pas une nouveauté : Dennis RITCHIE a écrit le premier compilateur en 1972 (le BASIC date de 1964). Au départ, € devait faciliter I'écriture des com- pilateurs ou des systémes d’exploitation d’ordi- nateurs puissants genre PDP 11 de DIGITAL (UNIX est pratiquement entiérement écrit en), mais son implantation sur les petits systémes 16 bits l'a rendu extrémement popu- laire parmi les développeurs IBM ou MAC- INTOSH. II ne fait pas de doute que son introduc- tion sur la nouvelle génération APPLE IIGS va renouveler le type d'applications disponibles. Un ou deux compilateurs existent également sur I'APPLE // (AZTEC), mais leur intérét est surtout d'ordre pédagogique. Ne vous précipitez pas pour acheter la version actuelle du compilateur : la pro- chaine sera sans doute plus "USER FRIENDLY". Rongez votre frein, nous allons en rester la pour cette fois. Mon prochain article décrira le lan- gage C du point de vue des objets manipulés (variables) et des structures... Bon courage ! Claude AUBRY. CdeAaz par Bryan Costales EYROLLES éditeur Nous avons récemment écrit (page 40 du n°13 de Tremplin Micro) J. Traister : Les bases, d'usage !). 16 tout le bien que nous pensions d'un excellent ouvrage de Robert DU BASIC AU LAN- GAGE € (interéditions). CdeAdZ, de B. Costales mérite les mémes éloges, méme si les exemples donnés ne se révélent pas toujours aussi portables qu'on le souhaiterait... sur le GS. conseils, généraux de la programmation en € restent valables. Aussi en conseillons-nous méme I'étude) 4 celles et 4 ceux que le C intéresse. la lecture (et Avec l'Apple lIGS, c'est une autre histoire. La documentation géné- rale est prometteuse, mais en anglais (défaut rédhibitoire pour bon nombre de nos compatriotes). De plus, elle ne fournit aucun exemple. Elle se révéle donc lamentable 4 I'usage. C'est pourquoi j’approuve sans réserve l'initiative de Guy- Hachette et souhaite qu'il réus- sisse, grace au concours de pro- grammeurs (et pédagogues) aussi qualifiés que Claude Aubry et les autres, 4 décomplexer les Apple- maniaques et 4 les orienter vers principes NESTOR. le C En attendant le Super Basic, € : la solution ! Clément RENARD. Pratiquer le langage € sur un IBM PC (ou sur un compatible) est chose relativement facile. La “lit- térature” est abondante est les programmes en € merveilleuse- ment portables (avec les réserves GUY-HACHETTE LAI Micro- éléme TREMPLI| LANGAGE C SUR APPLE IIGS NESTOR — EXERCICE 1 Le bon nombre BASIC 10 X = 69 20 PRINT "TROUVEZ UN NOMBRE COMPRIS ENTRE 1 ET 100 —» " 30 INPUT ’";N 40 IFN = X THEN PRINT "C'EST LE NOMBRE - TERMINE”: END Micro-programme 50 IFN < X THEN PRINT “IL EST TROP PETIT”: GOTO 20 élémentaire. 60 IFN > X THEN PRINT “IL EST TROP GRAND": GOTO 20 EQUIVALENCE EN LANGAGE C main() é int x, n; x = 69; NB: printf(TROUVEZ UN NOMBRE COMPRIS ENTRE 1 ET 100 —» “); scanf("%d", &n); if(n == x)é printf(C’EST LE NOMBRE - TERMINEc¢n”); exit (0); é if(n<x)é printf("IL EST TROP PETIT¢n"); goto NB; é if (n > x) printf(“IL EST TROP GRANDcn"); . goto NB; int x,m Les variables x et n sont déclarées comme | M == Notez lo différence entre l'opérateur d’affec- entiéres. tation (=) et l'opérateur d'égalité (==). : tiquette utilisé i ™ eslaueite ilises pox goto nex | Utilisation identique 4 celle du Basic. printf Affiche le message. n>x seamé Aprés scanf, il faut un RETURN. Goto NB Renvoie a |'étiquette NB. “dd Indique que la variable a afficher est entiére. exit (0) ae @ n'a généralement pas d'im- &n Une variable numérique doit étre précédée | =m du signe &. NE PAS CONSIDERER CET EXERCICE COMME UN (BON) EXEMPLE DE PROGRAMMATION EN C ! sunguazsessccscsessesenansscsneersoansanseunecesouonscoccqevenasesasscoscceussseuecoeesscceseooseseseres TREMPLIN MICRO 7 GRAND CONCOURS APPLE-VERSION SOFT Gagnez un Apple, gugnez Ameérique, evenez auteur Version Soft ! APPLE COMPUTER FRANCE et VERSION SOFT, I'un des plus grands éditeurs de logiciels professionnels sur Apple, lancent un grand concours pour |'attribution des prix : "Les fruits d'une passion 1987”. Cing prix récompenseront les cing meilleurs projets de développement sur Apple lIGS ou Macintosh et seront attri- bués pour la premiére fois en octobre 1987. Un jury de professionnels sélectionnera les concurrents et désignera les cing lauréats. Ceux-ci recevront un Apple lIGS ou un Macintosh Plus. De plus, l'auteur du projet le plus original se vera offrir une semaine 4 Cupertino dans la Silicon Valley, od il sera piloté par Luc Barthelet. Version Soft pourra proposer aux auteurs des cing meilleurs logiciels un contrat d’édition et de commerciali- sation établi selon les usages de la profession. Auteurs de logiciels, comme Luc Barthelet responsable développement, visez juste, visez la pomme et vivez en Version Soft. Réclamez votre dossier de candidature a : Fabienne Poupard VERSION SOFT 94, rue Lauriston 75116 PARIS — Tél. : (16-1) 47.27.71.72. COMMUNIQUE LE REGLEMENT 1. LES CONCURRENTS Ce concours est ouvert @ toute personne non liée par un contrat d'édi- tion. Il suffit pour participer de renvoyer une fiche diinscription dment remplie, accompagnée du dossier de candidature. Les projets de développement peuvent étre effectués en équipe. En cas de sélec- tion, le prix sera attribué 4 son représentant. 2. LES PROJETS Les projets remis & Version Soft peuvent porter sur tous les domaines dopplications, qu’ils soient horizontaux ou sectoriels. Les logiciels peuvent étre développés sur Apple IIGS ou Macintosh en langage Pascal, C ou assembleur. Ils devront respecter I'intertace Apple (menus déroulants, souris...). Sons pour autant constituer une list « didocticiels professionnels * aide ala décision « structuration des données imitative, les axes suivants sont proposes: * édition électronique * gestion générale # gestion sectorielle. Le jury sera sensible & la créativité, & la puissance et a la convivialité des projets présentés. 3. LE DOSSIER DE CANDIDATURE Le dossier de candidature doit obligatoirement comporter * une fiche d'inscription diment remplie et signée un texte de présentation du logiciel (2 pages maximum) * laliste compléte des fonctionnolités * une disquette de préversion comportant le noyau du programme Ce dossier, rempli et complété par les documents demandés ci- contre, en deux exemplaires, est & odresser 8 : Fabienne Poupard VERSION SOFT, 94, rue Lauriston 75116 PARIS 4. LA DATE LIMITE DE DEPOT DES PROJETS 5. L'EXAMEN DES DOSSIERS Le jury sélectionnera les vingt meilleurs projets avant le lundi 1*" juin 1987 et en informera les auteurs. Ces vingt dossiers sélectionnés bénéficieront d'un support technique développeurs Apple et Version Soft, afin de pouvoir poursuivre leur développement jusqu’a la phose finale de sélection des cing lauréats. Le 15 septembre 1987 au plus tard. les vingt candidats devront remet- tre & Version Soft leur programme accompagné dun synopsis de démonstration. Ne seront pris en compte que les projets qui permet- tront une utilisation du logiciel par une personne extérieure au déve- loppement. Parmi ces vingt logiciels, le jury en sélectionnera cing, dont les auteurs seront nommés louréats du concours "Les fruits d'une possion 1987". 6. LA REMISE DES PRIX Les candidats choisis par le jury seront informés par courrier au plus tard le 1* octobre 1987. Les prix leurs seront remis officiellement ou cours d'une manifestation organisée courant octobre par Version Soft et Apple dans le cadre d'Apple Expo 87. 7. LE JURY Ml sero composé de — Denis VINCENT! TF — Luc BARTHELET Version Soft Patrick ARNOUX Challenges — Yves HEUILLARD Sciences et Vie Micro — Neil MINKLEY Apple Computer France — Christian ROBERT Microshop 8. LE SUIVI DES LAUREATS Un contrat d'auteur sera propose par Version Soft aux cing lauréats. Il sera établi selon les usages de la profession. Les lauréats recevront La date limite de dépdt des projets est fixée au mercredi 20 mai 1987 un soutien permanent de Version Soft jusqu’é la commercialisation & minut, le cochet de lo poste faisont foi. de leur logiciel . 18 GUY-HACHETTE helges nous donnent des lecons de logique ‘AVOUE avoir été agréablement surpris par la qualité de ce logiciel mis au point par des enseignants et des informaticiens. Je m‘attendais 4 quelque banalité sans grand intérét : c'est souvent le cas, dans ce domaine, et pas seulement en Belgique ! Uobjectif des auteurs est de faire appel aux facultés de raisonnement de l'enfant, mais I'adulte au cerveau ramolli que je suis, s'est beaucoup amusé avec {es locomotives et les wagons de CONVOI. Cest en effet le titre de cette série. Uenfant travaille dans une gare de triage ov, 4 l'aide d'une locomotive — et en s‘aidant d'un aiguillage — il doit ranger des wagons numérotés dans un ordre croissant. Au début de chaque jeu, les wagons sont placés dans un ordre aléatoire. La suite coule de source, mais comme il existe plusieurs niveaux, ce n'est pas PROVINCE DE HAINAUT Configuration nécessaire - un micro-ordinateur APPLE modéle |i Europlus 48 KRAM minimum, lle ou Ile - un lecteur de disquettes 5 pouces 140 K octets ~ un moniteur vidéo monochrome le moniteur vidéo monochrome peut étre remplacé par un moniteur vidéo couleur. Toutefois, le logiciel n'est pas prévu pour utiliser correc tement les différentes couleurs - pour imprimer la trace (voir explication plus loin), ‘ordinateur doit étre connecté & une imprimante (minimum 80 caractéres par ligne) toujours aussi simple qu'on pourrait le supposer ! Arecommander ! NESTOR. ASBL GRAND-HORNU IMAGES. Rue Sai my 8-7320 BOUSSU — Tél. : (065) 33.91.51 TREMPLIN MICRO Ces illustrations, extraites du petit livret accompagnant le logiciel, ne donnent qu'une faible idée de la qualité (excellente) des images. (D) BDémonstration [ied eed | ieee) 9 Votre bibliotheque INFORMATIQUE © FRAMEWORK | & Il FACILE (Philippe Mercier) Ce petit guide Marabout vous fera découvrir l'un des best-sellers de l'informatique. Framework, _ logiciel intégré de réputation mondiale, est a la fois traitement de texte (avec cor- recteur orthographique), tableur, base de données, logiciel de télécommuni- cation , composeur téléphonique, etc. Les utilisateurs d'IBM et compatibles en savent quelque chose. Editions Marabout 192 pages LES BEST-SELLERS DE LINFORMATIQUE ¢ LA PUCE ET LA PLUME (Jean Rivier) Comment se comporte |'écrivain en présence de la Béte ? A-t-il réussi a la domestiquer ? Quels sont les résultats de cette collaboration de l'esprit et du microprocesseur ? Lisez d'abord l'excellente préface de Louis Leprince-Ringuet : elle vous tou- chera, j'en suis sir, foi de Nestor ! Et puis, délaissant momentanément votre clavier et vos propres élucu- brations, plongez-vous dans celles des autres. J’aurais dé vous le préci- fordinateur et (ecrivain Mts ser d'entrée : ce livre est une antholo- gie réunissant les morceaux choisis d'un nombre incroyable d’écrivains. La liste commence par Thérése de Saint- Phalle et se termine par le nom d'un monument : la Bible, ov l'on en évoque un autre, la Tour de Babel, le plus bel exemple d'une communication passant par un langage unique. On imagine mal |écrivain de demain, armé de sa seule plume ! Le Cherche Midi Editeur, 68, Rue du Cherche-Midi, 75006 PARIS 240 poges — 68 F TTC. ¢ CDROM LE NOUVEAU PAPYRUS (Bernard Prost) Le compact-disque, cela vous dit quelque chose ? Vous y croyez ? Qu'en attendez-vous sur votre ordi- nateur personnel ? Sans doute vous posez-vous, comme moi, de multi- ples questions sur ce nouveau moyen de stockage. Suivez donc Bernard Prost et faites avec lui le tour de la question. Je vous préviens : ca ne se passera pas sans quelques heures de veille. On nassimile pas le contenu de 440 pa- par NESTOR ges en se contentant d'un survol rapide de l'ouvrage. Vous reconnai- trez que le CD ROM est trés différent des autres médias (télévision, cinéma, vidéo, photo, livres, disques et disquettes). C'est en quelque sorte la somme de toutes ces techno- logies. Les capacités de stockage du CD ROM sont mille fois supérieures 4 celles de la disquette, pour des codts pratiquement équivalents. Le livre de Bernard Prost regroupe une somme darticles dont les auteurs, convaincus des possibilités du compact-disque, sont tous impliqués dans cette nouvelle technologie. IIs sont donc bien placés pour expliquer clairement ov en sont les recherches et dans quelles voies elles se dirigent. A signaler que la premiére partie de CD ROM est consacrée aux problé- mes techniques : systéme CD, pro- duction, éléments de conception, édition sur CD ROM, tandis que la deuxiéme partie, moins abrupte, aborde les problemes humains, les projets, le marché et un certain nom- bre d'applications plus ou moins prioritaires (médecine, droit, archi- vage, recherche, etc.). Cedic/Nathan — Microsoft-Press 6, boulevard Jourdan, 75014 PARIS 440 pages — 280 F TTC. 20 GUY-HACHETTE re a | Reet | A UTILITAIRE PATCH DOS Marcel COTTINI Lisez d'abord le commentaire de Marcel COTTINI Tout Apple //, avec une RAM de 64 Ko ou plus, et le DOS 3.3 booté. Un lecteur de disquettes standard du type Disk II. Pour une exploitation compléte du patch, un lecteur de disquettes 35/40/80 pistes est alors requis (type TEAC FD55F par exemole). le DOS 3.3 par comparaison @ ProDOS, dernier systeme d’exploitation commercialisé par Apple Computer, demande a étre patché pour modifier une de ses commandes ou encore lui adjoindre une commande externe. Le systéme d’exploitation Pro- DOS initialise, lors du boot d'une disquette sys- téme, deux pages trés particuliéres : * l'une, la PRODOS Global Page aux adresses $BFOO-$BFFF ; * l'autre, la BASIC Global Page aux adresses $BEQQ-$BEFF. Cette derniére est particuligrement adaptée pour le programmeur AppleSoft, et autorise par |'inter- médiaire du vecteur $BE06 |'appel d'une commande externe au Basic System. Le fichier BASIC.SYSTEM, interface entre PRODOS et l'interpréteur Apple- Soft, contient un certain nombre diinstructions standards implémentées d'origine par le concep- teur. A ces commandes internes, le programmeur peut par l'intermédiaire de la BASIC Global Page, ajouter une ou plusieurs commandes externes, le systéme effectuant alors l'exécution de cette com- mande suivant un protocole établi au préalable. Cette innovation nest malheureusement pas pré- sente dans le DOS 3.3 qui semble malgré tout trés présent dans les réalisations diffusées par les revues spécialisées, Tremplin Micro entre autres. Tout au long de sa longue carriére, le DOS 3.3 a connu un certain nombre de modifications. L'appa- ition de |'Apple /le (début 1983) a provoqué un bouleversement profond tant au niveau du Soft ———— Apropos du DOS 3.3 et de Propos ——__— : que du Hard. Ce fut la vague des patches du DOS 3.3 sous toutes ses formes possibles et imaginables. Cer- tains programmeurs ayant fait l'acquisition de lec- teurs de disquettes 35/40/80 pistes restérent sur leur faim, les programmes utilitaires ayant été largement délaissés. C'est ainsi que prit forme le projet de réali- ser mon propre systéme d’exploitation avec des utili- taires s'y rapportant. Le résultat se concrétisa par un DOS réécrit et réassemblé, en gardant les adresses d'entrées/sorties compatibles au DOS 3.3. Par la suite, certaines idées de base furent réutilisées pour patcher le DOS 3.3. PATCH DOS est un programme en Basic AppleSoft pour ceux qui pratiquent I'Apple // sous le langage AppleSoft, et permet d’apporter au DOS 3.3 certai- nes améliorations spectaculaires, ne serait-ce qu'une présentation personnalisée du catalogue de la disquette (une version en langage machine sera présentée dans un prochain numéro). Par ailleurs, toute une série de modifications internes seront réalisées, une fois le programme exécuté. Par la suite, toute explication sera fournie pour une meil- leure compréhension de certains mécanismes du systéme d'exploitation. Ce patch pourra étre réalisé avec la plupart des DOS commercialisés, et vous permettra de travail- ler par la suite avec des disquettes 35, 40 ou 86 pis- tes, sans aucune précaution préalable. Votre nou- veau systéme est maintenant capable de reconnai- tre les différents formats. (suite page 22) TREMPLIN MICRO 2 Modifications internes effectuées au DOS 3.3 Keyboard Intercept — $9002 Adresse de la routine d'entrée de caractére. A l'adresse $9D02 se trouve normalement le poin- teur de la routine d’entrée de caractére au clavier. Sa valeur pour un DOS 3.3 est $981 ($9DG2- 81 9E). Uauteur a uniquement tenu 4 respecter la valeur du pointeur pour observer une certaine compatibi- lité avec d'autres systémes. Adresse de la routine de sortie de caractére. A l'adresse $9D04 se trouve normalement le poin- teur de la routine de sortie de caractére. Sa valeur pour un DOS 3.3 est $9EBD ($9D04- BD 9E). Comme pour la routine Keyboard Intercept, ce vecteur est maintenu pour respecter une compatibilité avec d'autres systémes. No INIT — $9D1E Elimine la commande INIT. A partir de l'adresse $9DIE débute la table des pointeurs des commandes du DOS. La commande INIT se trouve en téte de la table ($9D1E- 4E AS). Pour rendre cette commande inefficace, le poin- teur de la table est modifié, et se connecte par la suite @ l’entrée du démarrage 4 chaud dans le systeme. L’entrée DOS WarmStart se trouve a l'adresse $9DBF. Le nouveau pointeur aura comme valeur : nouvelle adresse -1 ($9D1E- BE 9D). Une autre modification est rendue nécessaire pour annuler les codes ASCII dans la table nominative des instructions du DOS ($A884-$A908). La com- mande INIT est représentée par les codes ASCII suivants : A884- 49 4E49D4 INIT. Le dernier caractére de chaque instruction a son bit 7 égal @ 1, les autres caractéres ont le bit 7 égal 4 zéro. Apres modification, les caracteres ASCII seront les suivants : A884- 58 58 58 D8 riX. Les trois premiers caracté- res (:) sont neutres, pas de caractére alphabétique, le DOS se trouve ainsi piégé. Aprés chaque appel de la commande INIT, un démarrage 4 chaud sera effectué dans le DOS, au retour un message d’erreur affiché. Extension du nombre de drives 6 4. D'origine, le DOS 3.3 limite 4 deux (00 02) le nom- bre de drives pouvant étre raccordés 4 une inter- face contréleur. Un lecteur de disquettes standard Disk Il posséde une téte de lecture/écriture unique située en dessous de la disquette. Un lecteur de la nouvelle génération posséde deux tétes de lecture/écriture, un adressage particulier est alors requis. Chaque drive de ce type est vu par le systéme comme un ensemble de deux lecteurs bien ‘ts. Equipé d'un tel drive, il vous sera possible d'utiliser l'option D (drive) d'une facon particuliére. Nouvelles caractéristiques d'un tel drive : © Deux drives peuvent étre raccordés par interface ; © Chaque drive sera vu par le systeme comme un ensemble de deux lecteurs ; © Le lecteur 1 sera adressé D1 pour solliciter la téte du bas, et D3 pour la téte du haut ; © Le lecteur 2 sera adressé D2 pour solliciter la téte du bas, et D4 pour la téte du haut. Cette modification est réalisée au niveau du DOS en modifiant le byte 4 l'adresse $A95B ($A95B-04). Aux adresses $A955-$A970 se trouve la table des valeurs des paramétres additionnels valides. Qua- tre bytes sont réservés pour chaque paramétre : deux bytes pour la valeur minimale et deux bytes pour la valeur maximale. C'est ainsi que les para- métres réservés au drive se trouvent aux adresses $A959-A95C. Valeurs pour un DOS 3.3: $A959- 01 0G LByte, HByte de la valeur mini (00 01) $A95B- 0200 LByte, HByte de la valeur maxi (00 62) Valeurs aprés modification : $A95B-04 G0 LByte, HByte de la valeur maxi (00 04) Extension du systéme, traite par la suite des disquettes 35/40 ov 80 pistes. Le DOS 3.3 gére par défaut des disquettes forma- tées 35 pistes, les autres formats n'étant pas recon- nus. A partir de l'adressage $BEAF se trouve la rou- tine de formatage intégrée au DOS 3.3. L'espace mémoire $BEAF-$BFB3, réservé normalement pour la routine de la commande INIT, sera remplacé et mis 4 profit pour y placer une nouvelle routine. Une fois en place, le systeme reconnaitra et traitera par 22 GUY-HACHETTE _ tata alee aa ee eel dddatdededeatdeddaeddededetedeedeeied la suite toute disquette avec un format 35/40 ou 80 pistes. Toutes les routines et sous-programmes appelant cette partie du DOS, écriture ou lecture d'un secteur au niveau de la disquette par exem- ple, seront traitées sans probleme. Différents vecteurs annulés de la fonction INIT : SBEAF-SBFOC Gestion de la commande INIT SBFOD-$BF61 DISKF2. Routine de formatage de la piste courante. $BF62-SBF87 NXTSEC. Verification de la piste formatée. $BF88-SBFA7 MARKMAP. Mise a jour de Ia Bit-Map dis- uette, secur. Matrice pour marquer la Bit-Map. SBFA8-SBFB7 Allocate Sector Disk — $8247 Allocation des secteurs d'une disquette. Modification des adresses $B247-$B2B4 pour per- mettre au systéme de gérer les pistes comprises entre 00-79 inclus (80 pistes). A ces adresses se trouve la routine d’allocation du numéro du secteur de la disquette. Aprés le patch, il sera possible de traiter une disquette 80 pistes, le format 35 ou 45 pistes reste accessible. New VTOC — $B2D2 Nouvelle VIOC (35, 40 ov 80 pistes). la table d'occupation d'une disquette standard autorise la gestion de 35 pistes sur une disquette 5 pouces 1/4. A cet effet, certains octets sont réser- vés dans la Bit-Map, piste $11 (17) secteur $00 de la disquette. Volume Table Of Contents — VTOC : La Vtoc (Volume table Of Contents) ou table d’occupa- tion de la disquette, permet de gérer les secteurs et les pistes de la disquette (Bit-Map), ainsi que |'écri- ture d'un certain nombre de données et repéres utiles pour la lecture et I'écriture d'un secteur. Elle occupe le premier secteur ($00) de la piste $11 avec un total de 256 bytes. Les valeurs stockées dans la Vtoc sont en base 16 ou hexadécimal. (suite page 24) Structure d'une Volume Tabie Of Contents standard | pos. | vateur contenu pos — L soo $04 Inutilisé. $B3BB $01 $11 Piste du premier secteur /catalogue. $B3BC | $02 SOF Numéro du premier secteur du catalogue. $B3BD | $03 $03 Version du DOS (3 pour un DOS 3.3). $ B3BE $04-$05 Inutilisés. | $06 SFE Numéro du volume de la disquette (entre 0 et 254 ou $00 et $FE). $B3C) $07-$26 Inutilisés. 122 secteurs maximum dans une liste d'adresses (Tracks Sectors $27 $7A List — TSL) des secteurs occupés par un fichier. $B3E2 $28-$2F Inutilisés. $30 SFF Derniére piste ov des secteurs ont été alloués. $B3EB $31 SFF Direction de I'allocation des pistes (+1 ou -1). $B3EC $32-$33 Inutilisés. $34 $23 Nombre de pistes ($23 = 35 pistes). $BSEF $35 SOF Nombre de secteurs par piste (16). $B3FO $36 $00 Nombre de bytes par secteur = 256 = $100 (HByte). $B3F1 $37 $1 ($36-$37 octet poids faible et poids fort). $38-$3B Occupation de la piste G0 ($00). $B3F3 $3C-$3F Occupation de la piste 1 ($01). $BSF7 $40-$43 Occupation de la piste 62 ($62). $B3FB $CO-$C3 Occupation de la piste 34 ($22). $B47B $C4-SFF Inutilisés, pouvant servir a l'extension de la Bit-Map. TREMPLIN MICRO 23 Voc typique d'une disquette DOS 3.3 standard : Piste $11 Secteur $60 GO— G4 11 OF 03 GO OO FE OG 08— 00 G0 G0 GO GO GG GG GO 10— 00 00 00 G0 G0 G0 GO GO 18— 00 00 00 GO 0G Go OG OO 20— G0 G0 00 G0 OG 00 GG 7A 28— G0 00 G0 OG GO OG OG OO 30— 15 01 G06 GO 23 10 OG O1 38— G0 00 G0 OG GO G0 GO OO 40— 00 00 00 OG FF FF GO OO 48— FF FF 00 OG FF FF GO 00 5So— FF FF G0 OG FF FF GO 00 58— FF FF GO OO FF FF 00 OO 60— FF FF 00 OG FF FF GO 00 68— FF FF 00 OO FF FF 00 OG 70— FF FF OO GO FF FF 00 OG 78— FF FF 00 OO FF FF 00 00 80— FF FF 00 OO FF FF 00 OO 88— FF FF 00 OG FF FF 00 00 90— FF FF 00 OG FF FF 00 oO 98—. FF FF 00 OG FF FF 09 OO AQ— FF FF 00 GO FF FF OG OG A8— FF FF 00 00 FF FF 09 OO 80— FF FF GO OG FF FF GO OO B8— FF FF 00 OO FF FF 00 G0 CO— FF FF 00 00 G9 OO OO OO C8— 00 00 90 GO OG GO OO GO DO— G0 00 GO OG GO OG GO OG D8— G0 GO OO OG OG OG OG OG fo— G0 00 G0 OG GO OG GO a0 &8— G0 00 GG OG GG 00 OG OG Fo— 00 00 GO OG GO OO GO a0 F8— 00 G0 GG OG G0 OG OG OG Pistes G0 et 01 Pistes 02 et 03 Pistes G4 et 05 Pistes 06 et 07 Pistes 08 et 09 Pistes 10 et 11 Pistes 12 et 13 Pistes 14 et 15 Pistes 16 et 17 Pistes 18 et 19 Pistes 20 et 21 Pistes 22 et 23 Pistes 24 et 25 Pistes 26 et 27 Pistes 28 et 29 Pistes 30 et 31 Pistes 32 et 33 Pistes 34 Inutilisés. Occupation des secteurs — Bit-Map : Initialement, 32 bits étaient réservés pour I'enco- dage de chaque piste, ce qui représentait l'occupa- tion de 16 secteurs. Uniquement 16 bits sont utili- sés, les 16 autres étant simplement ignorés par le DOS 3.3. Les bits représentatifs sont regroupés par ensembles de deux octets, ou 2 X 8 bits. Chaque octet est divisé en demi-octets (quartet ou nibble) pour coder un groupe de 4 secteurs. Exemple d'encodage d'une piste — Secteurs $00-S0F : Secteurs: FEDC BA98 7654 3210 Bits : 7654 3210 7654 3210 Valeur possible des bits : soit 1, soit 0. Chaque bit positionné 4 1 représente le secteur concerné comme libre, tandis que chaque bit posi- tionné @ @ indique que le secteur équivalent est occupé. Pour gérer l'occupation des 80 pistes, il sera nécessaire d’étendre la table d'occupation, et d'utiliser les 16 bits ignorés par le DOS 3.3 jusqu’d présent. Le contenu des adresses $B2D2-$B2F7 sera modifié 4 cet effet. Table + Face B disquette — $BD04 Reconnaissance de la face A ov de la face B (disquette). Une disquette standard 35 pistes est lue par la téte de lecture suivant un protocole bien défini : Phase “on” ou “off”, mode lecture ou écriture, positionne- ment du bras de lecture au dessus de la piste et du secteur souhaité, etc. La modification actuelle autorise par la suite une extension du protocole fixé initialement : la sélec- tion de la téte de lecture/écriture du haut ou du bas (D1, D2 pour le bas ou D3, D4 pour le haut). Les adresses modifiées sont : $BD04-$BD4E. MYSEEK PARMS — SBESA Prépare le systeme avant de solliciter SEEKABS ($B9A0/). Moditie 17 octets ($BESA-$BE69) pour rendre le systéme compatible suivant la disquette présente (35, 40 ou 80 pistes). Cette routine déplace le bras de lec- ture au dessus de la piste souhaitée. Elle détermine le nombre de “Phases” par piste et sauvegarde |'infor- mation a l'adresse du slot correspondant. Recalibrate Disk Head — $BDD1 Recalibre la téte de lecture du drive. Les adresses $BDD1-$BDD6 sont modifiées, et appel- lent par la suite les sous-programmes correspondant suivant les nouveaux pointeurs mis en place. Patch en-tete du catalogue Gestion de la commande CATALOG. Plusieurs modifications sont effectuées a ce niveau. Le résultat personalise la présentation du catalogue de la disquette. C'est ainsi que les numé- ros du volume et du drive, le format de la disquette (35, 40 ou 80 pistes), et le nombre de secteurs libres sont affichés avant la liste des fichiers de la disquette. Exemple de présentation d'une disquette : VOL | DRIVE | TRACKS | FREE 254 001 035 0050 Modification des différents vecteurs : $ADA3-$ADBD Mise en place du texte de présentation. SAEGA-$AEAF Appel des sous-programmes de |'affi- chage des valeurs : VOL, DRIVE, TRACKS et FREE. 24 GUY-HACHETTE S$AEBO-SAFO9 S$B3AF-$B3B5 Routine de calcul des secteurs libres. Initialement réservé au texte : EMULOV KSID. Comporte maintenant deux sauts de ligne. Soft utilitaires 35/40/80 pistes Pour les détenteurs de lecteurs de disquettes capa- bles de traiter des disquettes 35/40 ou 80 pistes sous DOS, |'auteur envisage par la suite la vente par I'intermédiaire de Tremplin Micro, d'une dis- quette utilitaire appropriée. A cet effet, les amateurs d'un tel Soft devront se Contenu de la disquette UTILITAIRE 35/40/80 TRACKS : © Patch pour modifier le DOS 3.3 ; © Patch pour modifier le PASCAL (160 pistes) ; Patch divers pour accroitre la vitesse de traite- ment suivant le type de drive utilisé ; faire connaitre auprés de Tremplin Micro pour une © Patch de reconnaissance drive Disk Il et TEAC ; éventuelle souscription de la disquette UTILITAIRE. © Patch pour modifier le programme de copie FID ; Prix de vente conseillé : 150 Francs. © Un programme de copie 35, 40 et 80 pistes ; © Un programme de formatage 35, 40 et 80 pistes ; [ TREMPLN MICRO — Le Petite Mote — Senile — #6100 CHATELERAULT | © Conseils d'utilisation. r a 86 TEXT : HOME : VTAB 12: HTAB 12 66CC 9@ FLASH : PRINT “PATCH EN COURS": NORMAL 270 198 REM ctJctJKEYBORD INTERCEPTctJctJ 116 HEX = "9D02:81 FE": GOSUB 52@: CALL - 144 DSES 120 REM ctJctJVIDEO INPUT HANDLERctJctJ 136 HEX? = "9D64:BD 9E": GOSUB 526: CALL - 144 6705 148 REM ctJctJNO INITetJctJ 15@ HEX$ = "SD1E:BE 9D N A884:58 58 58 D8": GOSUB 520: CAL L- 144 36E7 16@ REM ctJctJRANGE ERROR DRIVEctJctJ 176 HEX = "A95B:94"; GOSUB 524: CALL - 144 A255 180 REM ctJctJ35/40/80 TRACKSctJectJ 194 HEX = "BEAF:@4 20 4B BE 4E 78 04 4E 78 44 68 48 68 48 68 AZ 64 C9 28 9@ 2 AZ G2 28 7E F2 BS EBS BA 29 B1 DA F? C8 CC F@ B3 0@ ES 68 GA A2 82 CF 50 90 84 ED 5B AZ 64 69 61 GA AS BD Fl BS 19 F2 B3 99 F2 BS 8a" Faoe 266 GOSUB 520: CALL - 144 7CSF 21@ HEX® = "BEFG:CA 8A 29 @1 DO FO 50 BH EC ES 44 AS 44 Co 23 976 D3 18 94 63 40 48 BE 36 48 BD 88 CO 4H B1 1 1 @@ 48 AD FS 44 4A $0 30 20 4D BF DG 16 AD 78 44 BA CS 2E DG 87 AD G1 79 BC BF DG 1C AY O1 SBD FS": GOSUB 520 : CALL - 144 AS$23 220 HEX = "BF3G:06 D@ 15 AY 5H 8D 78 44 AD OB 20 SA BE 20 4D BF AS 66 99 GC BF 8D 78 44 AP 466 4C D4 BD AG G2 BI 48 A83 BY BC BF 48 48 78 AF 48 85 45 AD FS B7 85 44 4C 42 AE 20 @C FD C9": GOSUB 524: CALL - 144 BEDA 236 HEX? = "BF68:98 F@ G1 66 68 68 68 68 4C 7F B3 AP OG 85 45 AD EA B7 85 44 4C 42 AE 40 64 66 AD 65 BF 8D 96 BF AR A? 86 9D BS 84 26 48 C4 AZ BZ BD 8 O2 9D AE BS CA 0G F7? A? AD 8D Bi B3 A2 82 BD 64 B2 FD Bi B3 CA DO F?7 A? AD 8D B4 B3" 7265 246 GOSUB 52@: CALL - 144 7CSF 258 HEX = "BFB1:4C C8 BF": GOSUB 520: CALL - 144 2AB5 266 REM ctJctJALLOCATE SECTOR DISKetJctJ et (suite page 26) TREMPLIN MICRO 2 SagenousseeeenerassnssssceceseesaTseAeseenNEETA esas on NTsaseoseouneaseeeNeseeneoweEeeEonEeaNnassosoNeS 270 HEX = "B247:F@ 2A AD Fl BS AZ 86 CP 28 98 2 AZ B2 CE Fe BS 36 15 18 3E F3 BS 3E F2 BS 9@ F2 EE EE BS D@ 03 EE EF BS AD FO BS 68 AY GB 8D F1 BS AP OB BD FE BS 20 F? AF 18 AD EB B3 6D": GOSUB 52@: CALL - 144 DASS 286 HEX = "B280:EC B3 F® G9 CD EF 83 989": GOSUB 528: CALL - 144 668s 296 HEX® = "B288:14 A? FF D@ GA AD 9E BS DO 2E AY B1 BD FE B3 8D EC B3 18 69 11 8D EB BS 8D Fl BS BA A2 G2 CP 5B 76 84 ES 56 AZ 44 69 B1 26 EG B2 90 Cé": GOSUB 520: C ALL - 144 OSA1 300 REM ctJctJNEW VTOCetJctJ 314 HEX? = "B2D2:28 BA BE AS 66 8D F1 BS 4C FB AF 4C BA BE GA AS BY F2 B3 9D Fi BS FG 46 38 AP 4G 99 F2 BS 88 CA 8A 29 61 D@ EB 6@": GOSUB 520: CALL - 144 1E18 326 REM ctJctJIOB TABLE + FACE BetJetJ 330 HEX$ = "BDG4:A8 84 BC FS 86 AB 44 BC FB 4 AB B1 BI 48 738 AQ GF 91 48 AA BD 89 CB AG G2 B1 48 AB CO 43 Ba ac AC 66 C4 AC 86 CS AC BB Cé AC BB C7 BD SE Co BD eC Co AB 12 BD 8C CO 48 68 48 68": GOSUB 528: CALL - 144 0597 340 HEX? = "BD3F:8E F8 85 DD 8C CH D@ 43 88 DO EE G8 AD O64 D@ 45": GOSUB 526: CALL - 144 E412 366 REM ctJctJMYSEEK PARMSctJctJ 376 HEX$ = "BESA:6A 48 28 4D BF 6A 68 9@ 4C 20 6B BE 4E 78 $4 60 66": GOSUB 528: CALL - 144 FE7A 386 REM ctJctJRECALIBRATE DISK HEADctJctJ 396 HEX$ = "BOD1:4C 11 BF 28 95 BE": GOSUB 520: CALL - 14 4 8a53 48@ REM PATCH ENTETE CATALOG ET MODIFIE PARMS 41@ HEX = "ADA3:A? 16 8D 9D B3 2@ 2F AE 26 2F AE A2 1C BD E7 AE 20 C5 9F CA DB F7 86 46 4C BSE AE": GOSUB 528: C ALL - 144 8307 426 HEX = "AESA:A0 2C 26 G8 AF SE CS BS B1 42 99 D1 BS BE 14 F838 C8 18 68 64 AB 20 26 88 AF BY D1 BS 71 42 38 16 Fe C8 38 66 208 58 BF 20 48 F9 26 73 BF AZ 45 20 4A FO AD EF B3 85 44 26 42 AE 26 AD AE 28 AF BS 40 CY AD AZ B46 26" 7B81C 438 GOSUB 520: CALL - 144 7C6F } 446 HEX = "AEBG:4A F9 AP F2 85 18 AY BS 85 19 AB AG AP BB | 85 3C 85 3D F8 B1 18 85 42 A2 G8 26 42 AY O48 65 3C 85 3C AY 46 65 3D 85 3D CA D@ EF 88 DA ES DS AS 3D 28 DA FD AS 3C 4C DA FD 8D CS CS D2 Cé AD AA AD" cssD 456 GOSUB S24: CALL - 144 7C6F 468 HEX = "AEFG:D3 CB C3 C1 D2 D4 AD AA AD CS DS CP D2 C4 7 AD AA AD CC CF Dé EA": GOSUB 52@: CALL - 144 Fsp2 470 REM ctJctJLINE FEEDctJctJ 480 HEX$ = "B3AF:20 2F AE 26 2F AE 60": GOSUB 526: CALL - 144 S9E2 490 REM ctuciJEND PROGRAMMctJctJ | 566 TEXT : PRINT "“ctGctGctG": HOME : END DFS1 516 REM ctJctJSH. LAM ROUTINEctJctJ 52@ HEX? = HEX$ + "N D7D2G": FOR I = 1 TO LEN CHEX$): PO KE 511 + 1, ASC ¢ MID® (HEX$,I,1)) + 128: NEXT : POKE 72,4: RETURN BES8D 26 GUY-HACHETTE Dans son numéro 9, TREMPLIN MICRO a proposé une courte routine en ossembleur (3 lignes) permettant de détecter la frappe d'une touche du clavier. Voici un programme plus complexe permettant de tester les com- binaisons de touches Pomme ouverte ou Pomme fermée. De nombreux programmes (APPLEWORKS pour ne citer que lui), utilisent l'une ou l'autre de ces touches suivie d'une lettre pour accéder aux divers menus. LES POSSIBILITES DE INKEY : * Saisie au vol de tous les caractéres du clavier, en minuscules ou majuscules. * Saisie de la frappe d'une des touches pomme (ou des deux simultanées) et d'une touche alphanumé- rique. Dans ce cas, les minuscules sont converties en majuscules. * La frappe d'une touche est accompagnée de |'émis- sion d'un son variable suivant le cas. UTILISATION : BLOAD INKEY.0 CALL 768,R Suivant Ia (ou les) touche(s) pressée(s) la variable R aura la valeur : * touche alphanumérique : 0<= R <= 127: code ASCII correspondant * touche PO + touche alphanumérique : R = 256 + code ASCII * touche PF + touche alphanumérique : R = 512 + code ASCII * touche PF + touche PO + touche alphanuméri- que : R = 768 + code ASCII. Dans tous les cas les caractéres de contréle sont acceptés. Le programme BASIC DEMO. INKEY visualise parfaitement les différentes possibilités. INKEY utilise des routines de la ROM de |'APPLE qui méritent quelques explications : PTRGET ($DFE3) : Recherche I’adresse d'une variable. Si cette variable n‘a pas encore été définie, elle est créée en mémoire et son adresse se trouve dans VARPNT ($83-84). Pour voir si une touche Pomme ou un bouton de manette a été pressé, lire en $C061 (PO ou bouton @) ou en $C062 (PF ou bouton 1). Roland JOST INKEY Codage de A en ASCII: $41 = 01000001 Codage de a en ASCII : $61 = 01100001 Ces deux octets ne différent que par le bit 5. II suffit donc de faire un AND £$DF (11011111) pour convertir une minuscule en majuscule. Récupération de la valeur finale dans la variable R : on charge maintenant Y avec l'octet de poids faible et A avec l'octet de poids fort. Un appel de GIVAYF ($E2F2) transfére cette valeur dans FAC (accumulateur flottant). La routine MOVMF effectue le transfert du FAC vers la variable R si l'on a eu soin de charger dans X le contenu de VARPNT et dans Y celui de VARPNT + 1 (vous n’avez pas oublié que l’adresse de la variable R se trouve dans VARPNT depuis |'appel de PTRGET). 1. Saisie au vol de caractéres frappés au clavier en évitant la saturation de la mémoire de variables alphanumériques, ce qui ne manque pas d'arriver si l'on utilise trop souvent la fonction GET R$ de l'Applesoft. Mais pour cette seule utilisation on peut faire plus simple. 2. Saisie de commandes avec les touches Pomme. Dans ce cas la conversion des minuscules en majuscules est indispensable. En effet votre programme se plante lorsque vous frappez une commande avec la touche Caps Lock non enfoncée, si vous n‘avez pas prévu le traitement d'une commande en minuscules. 3. Avec un programme d’écriture de caractéres en haute résolution, on peut envisager |'utilisation aisée de plusieurs polices, par exemple les caractéres ASCII standard obtenus par frappe de la touche correspon- dante, les caractéres grecs obtenus par PO + touche, les caractéres en indice par PF + touche, etc. . et d'autres utilisations que vous ne manquerez pas de trouver ! (suite poge 28) Snag onnseesceccccoressesneseesEasenecenaseEEonneoCesNLesooessesesesEEeEnEeeEeeneesseeeeeeesenazeeseeEe TREMPLIN MICRO | _ 27 DEMO.INKEY — 100 REM DEMO.INKEY - R.JOST 1987 110 TEXT : NORMAL : HOME 7F31 120 PRINT CHR$ (4)"BLOAD “INKEY.0" : 2EEA 130 TEXT : PRINT "Essayez les différentes touches ...." 2781 140 CALL 748,R 440F 150 IF R = 27 THEN 210 3C8F 160 IF R < 128 THEN PRINT R. CHR$ (R): GOTO 140 7Bé6B 170 IF R < 512 THEN PRINT “POMME OUVERTE - “ CHR® (R - 256): GOTO 140 36C9 180 IF R < 768 THEN PRINT “POMME FERMEE ~- " CHR® (R - 512): GOTO 140 2178 190 PRINT " LES 2 POMMES ENFONCEES - " CHR$ (R - 768) OEs0 200 GOTO 140 2040 210 HOME VTAB 22: PRINT "<M)ENU DE DISQUETTE ctG";: GET R$: PRINT : IF R $= "M" OR "R" = "m" THEN PRINT CHR® (4)"RUN /TME/MENU" B619 EDASM 1 * SAISIE D’UNE TOUCHE 2 * 3 CODE Eau $00 : octet haut du code ProDOS 2 mre Eau 406 : durée du son S HAUTEUR EQU $07 ; hauteur (fréquence) du son 6 VARPNT EQU $83 : adresse de la derniére variable 2% 8 KBD Eau C000 lit le clavier 9 STROBE EQU $C010 réinitialise lect. du clavier 10 SPKR EQU C030 active le haut-parleur. 11 BUTTONO EQU C061 12 BUTTON1 EQU C062 13. CHKCOM EQU DEBE 14° PTRGET EQU $DFE3 15 GIVAYF EQU $E2F2 16 COMBYTE EQU %E74C lecture état touche pomme ouv. lecture état touche pomme fer. teste la virqule rech. d’une var. par son nom rend flottant Il’entier en A,Y. teste la virqule, évalue la 17 variable et stocke dans X. 18 MOUMF EQU $EB2B transfére FAC dans octet | 19 pointé par X.Y 20 ORG $300 21 * | 22 * KEY Si vous ne 23 * possédez pas 24 * Appel par CALL KEY,.R : le code ASCII de la touche | dassembleur, 25 * se trouve dans R, auamenté de : contentez-vous 24 * - 256 si POMME OUVERTE a été pressée en meme temps | de taper les 27 * - 512 si POMME FERMEE a été pressée codes ci-dessous. 28 * - 768 si les deux touches POMME sont sollicitées 22 -* 30 * 300: 20 BE DE 31 JSR CHKCOM i virgule présente? 303: 20 £3 DF 32 JSR PTRGET 3 oui, recherche l’adresse de R | 306: AY 20 33 LDA £20 : initialise 308: 85 06 34 STA DUREE + les paramétres 30A: 85 07 35 STA HAUTEUR : de la routine SON. 30C: AY 00 36 LDA £00 i; met a zéro le drapeau testant 30E: 85 00 37 STA CODE : l’appui d’une touche POMME. 310: AD 00 CO 38 KEY LDA KBD ? a-t.on enfoncé une touche? 28 GUY-HACHETTE 313: 10 315: 2C 318: 48 | 31C: 10 | BIE: 68 SIF: C9 321: 90 323: 29 325: 48 326: Eé 328: A? 32A: 85 32C: AD 32F: 10 331: 68 332: C9 334: 90 336: 29 398: 48 339: E6 33B: £4 33D: a9 33F: 95 341: 20 344: 68 345: 29 347: AB 348: AS 34a: 20 34D: a6 34F: Ad 351: 20 354: 60 355: 20 358: 86 7F 00 F2 83 84 2B 4c 06 4c 07 06 30 04 06 07 Fé a7 EF co co co 03 E2 EB E7 —? co Bo POMFERM Bi SORTIE * * SON * * Appel * SON SONX SONCO SONO FINSON CODE £340 HAUTEUR BUTTON1 SORTIE £37F CODE $E2F2 VARPNT VARPNT+1 MOUMF non oui . reset du clavier sauve A temporairement touche POMME OUVERTE non sollicitée rappelle A est-ce une minuscule non oui: on la convertit en majusc. sauve A touche POMME QUVERTE utilisée. le son sera en conséquence.. la touche POMME FERMEE na pas été utilisée si. récupére A est-ce une minuscule? non oui: on la convertit en majus. et on sauve dans Ja pile. rajoute 512 au code le son sera différent.. appel routine SON met bit 7 & zéro transfére A dans Y récupére l’octet de poids fort transfére dans FAC adresse de la variable R transfére FAC dans R. c’est termine é par CALL SON,durée,hauteur JSR STX JSR STX Loy LDA DEY BNE DEC BEQ DEX BNE LOX BNE RTS COMBYTE DUREE COMBYTE HAUTEUR DUREE SPKR SON1 OUREE FINSON SONO HAUTEUR SONOO t attend une virgule et stocke la variable. teste la virqule, évalue et stocke la variable début du programme SON active le haut-parleur tant que % > 0 BSAVE INKEY.0,A$300,L$73 | TREMPLIN MICRO 29 ———— | § CARRES MAGIOU HISTORIQUE * Les CARRES MAGIQUES sont fort anciens. Ils étaient connus des Chinois et des Hindous bien avant notre ére, sans que |’on puisse en fixer |'ori- gine exacte. * Lecarré d'ordre 3 existe dans un manuscrit ARABE du 8° siécle, mais c'est au 14° siécle qu'il fut amené en Europe par le grammairien Byzantin MOSCHO- POULOS. * PASCAL, FERMAT, EULER, FRENICLE, VIOLLE et bien diautres, ont étudié mathématiquement le probléme et donnent des constructions plus ou moins simples, mais on n‘a pas encore découvert de méthode générale pour les construire tous. Le programme CARRES.MAG généralise le probleme et permet de construire n'importe quel carré magi- que, MAIS j'ai limité 4 19 l'ordre d'un carré 4 cause de la grandeur de I'écran. On pourrait modifier le programme pour construire des carrés diordre supérieur. Pour obtenir des CARRES MAGIQUES, quel que soit l'ordre, j'ai mis au point trois méthodes : 1. Carrés IMPAIRS : méthode dérivée de celle de LA LOUBERE (XVII° siécle), puis de celle de BACHET : 2. Carrés PAIRS multiples de 4 ; méthode inspirée de la précédente ; 3. Carrés PAIRS non multiples de 4 : méthode des Pourtours qui utilise des carrés magiques multi- ples de 4, que l'on entoure d'une enceinte calculée selon un procédé assez complexe. BIBLIOGRAPHIE SUCCINCTE W. ROUSE-BALL Récréotions Mathémo: tiques (PARIS 192627) — Maurice KRAITCHIK Troité des carrés mogigues (GAUTHIER VILLARS 1990) — Eutrope CAZALAS Corrés magiques au degré n (HERMANN 1934) — Philip. de LAHIRE Nouvelles construc tions et considérations sur les carrés magiques (PARIS 1704) — FRENICLE Des carrées ou tables magiques (PARIS 1729) — Edouard LUCAS Les corrés mogiques de FERMAT et de FRENICLE (PARIS DELAGRAVE 1887) . hahahahaha eee etal LT TTT 30 Jean PERROT PROPRIETES * Un carré magique reste magique : 1. Sion fait tourner tous ses nombres d'un angle DROIT par rapport au centre ; 2. Si on pratique une symétrie par rapport a la médiane verticale ou 4 la médiane horizontale, ou par rapport une diagonale ; 3. Par échange de 2 lignes et de 2 colonnes équidistan- tes du centre : 4, Par symétrie par rapport au centre. } * De nombreux mathématiciens ou chercheurs étudiérent le probléme et ils introduisirent des conditions supplémentai- res, Cest ainsi qu'ils découvrirent : | — LES CARRES BIMAGIQUES qui restent magiques en remplo- Gant leurs nombres par leurs carrés ; — LES CARRES TRIMAGIQUES qui restent magiques en remplo- Gant leurs nombres par leurs carrés ou par leurs cubes. GENERALITES * SiN est ordre (nombre de colonnes ou de lignes), le carré contient les N X N nombres entiers, de telle facon que les sommes des lignes, des colonnes et des diagonales représentent le méme nombre ou CONS- TANTE MAGIQUE. * Soit S$ la somme des N premiers nombres : S=1¢243t....0.00. + (NXN) = (NXN)+[(N-1) X (N-I)] +... 4241 2XS=(NXN)X(NXN+1)d'ou S=(NXN)X(1+NXN)/2 * La CONSTANTE MAGIQUE est donc : CM=NX(1+NXN)/2 * Les constantes des premiers CARRES MAGIQUES sont donc pourN=3—»CM=15 N=4—»CM=34 N=5—»(M=65 pour N=6—» CM=111 N=7—»CM=175 etc, GENERALISATION @ des nombres non consécutifs. Soit OD l'ordre, NB le plus petit nombre et INC I'incrément (diffé- rence entre 2 nombres consécutifs de la suite). On obtient $= (OD X OD) x (2 X NB + (OD X OD + 1) x INC) /2 CM = OD X (2 X NB + (OD X OD + 1) X INC) /2 GUY-HACHETTE ___ 108 REM -------- CARRE MAGIGUE -------- 165 : 68340 116 PRINT CHR (4)"PRE3": PRINT EDSs 115 PRINT " ORDRE ....= Nombre de lignes du carré magiqu e.eelimité ici & "3: INVERSE : PRINT " 19 ": NORMAL 3087 126 PRINT " INCREMENT = Différence constante entre 2 nom bres de la suite.": PRINT E4ss 125 PRINT : PRINT "“Lorsque tous les nombres du CARRE MAG IQUE ne pourront pas tenir dans 1’écran": PRINT "APP LE refusera les données, et vous devrez entrer des n ombres plus petits." 4627 136 VTAB 13: INPUT “-Entrez le plus petit nombre :°"sNB: PRINT FEE4 135 INPUT "-Entrez l’incrément :°"3;INC: PRINT C2BE 148 INPUT "-Quel est l’ordre du CARRE ? ";0D 81DA 145 IF 00 = 2 OR OD > 19 THEN CALL - 998: CALL - 198: GOTO 144 PE4A 15@ ND = NB + (OD * 2 - 1) * INC:NN = LEN ¢ STR (ND)> 7EDB 155 DIM ACOD + 1,0D + 1),HCOD) ,YvCoD> 3514 160 IF (NN + 1) * OD > 77 THEN GOTO 265 A239 165 IF OD 7 2 <¢ > INT (OD “ 2) THEN GOSUB 285: GOTO 3 5@: REM ORDRE IMPAIR Cé21 178 IF OD 7 4<¢ > INT (OD “ 4) THEN GOTO 295: REM NON MULTIPLES DE 4 71A4 175 3 863A 180 REM --------- CARRES PAIRS MULTIPLES DE 4 --------- 185 : 86340 194 GOSUB 285 234F 195 K = 1: IF AA = 1 THENK =2*N-1 @38D9 206 FOR J = 1 TO OD: FOR I = 1 TO OD 9279 265 Al = NB + (K - 1) * INC?ACJ,I> = Ai:L1 = LEN ¢ STRS CAL) 3E63 21@K=K+1 215F 215 IF Li < = L THEN 225 7774 226 L=Li 7PPP 225 NEXT I,J 9741 238 FOR J = 1 70 0D / 2: FOR I = 1 To oD 3376 235 IF «J = 1 OR J=40R J = 5 OR J = 8 OR J = 9) AND ¢ 1=10RT=4O0RI=SORI=80RI=9 ORI =12 OR I = 13 OR I = 16) THEN 2598 C1DF 240 IF (J = 20RJ=3 0R J= 6 0R J = 7 OR J = 16) AND (Il =2O0RIT=3 O0RI=60RI=70RI=10 ORI =1 1 OR I = 14 OR I = 15) THEN 258 772E 245 2 = ACOD - J + 1,00 - I + 19:AC0D - J + 1,00 -1 +1 > = ACIJ,ID:ACT,1I) = 2 DE3a 250 NEXT I,J 9741 255 IF AA = 1 THEN 315 938D 268 GOTO 415 OF45 265 HOME : CALL - 198: VTAB 8: PRINT “Plus petit nombre = "3NB;: PRINT " “~""Incrément = "sINC3;: PRINT " ~~~ “Ordre = "30D 3663 276 PRINT : PRINT “L’une de ces données (au moins) est t rop grande...Recommencez..." 3A8E i TREMPLIN MICRO a 275 VTAB 21: POKE 14@3,50: PRINT "Une touche...SVP "3: C ALL - 198: GET H$: PRINT A2CB 288 PRINT : HOME : RUN 115 2A88 285 HOME : VTAB 1@: POKE 1403,28: PRINT “PATIENCE... Je calcule...": RETURN ABSD 290 : 9834 295: REM ---<-=— CARRES PAIRS NON MULTIPLES DE 4 ----- 300 : 883A 305 DIM BCOD + 1,0D + 1) 7ESD 3148 N = 00:0D = OD - 2:AA = : GOTO 198 8052 315 OD =N 8361 326 FOR J= 170 OD: FOR I = 1 TO oD 9279 325 BOJ + 1,1 + 1) = ACJ,ID 8665 338 ACJ,I> = BCJ,I> 8073 335 NEXT : NEXT 143E 348 GOTO 54a Fads 345 : 863A 350 REM --------- CARRES IMPAIRS ----------- 355 : BO3A 368 X = INT (OD / 2) + 1:Y = 1: REM PLACE DE NB DANS LE CARRE 6969 365 FOR I = NB TO ND STEP INC DS1E 37@ ACX,Y) = I:L = LEN ¢ STR® (1) 7796 375 2X = X:2¥Y = ¥:X =X - 1:1VY =Y-1 A25A 380 IF X < 1 THEN X = OD 4286 385 IF Y < 1 THEN Y = OD 81838 390 IF ACX,Y) < > @ THEN X = 2X:Y = ZY +1 sce? 395 NEXT 9582 400 : 883A 405 REM —+-—-—---< ECRITURE SUR ECRAN ---------- 416: 68346 415 HOME : PRINT :D1 = 6:02 = 9 S1EA 426 LL = 1: IF OD ¢ 14 THEN LL = 2 61A7 425 FOR I = 1 TO OD 171F 436 HCI) = @:4CI) = @ 3EeC 435 FOR J = 1 TQ OD 7720 446 ACJ,I> = INT CACI,IDD CF9S 445 VTAB I: POKE 1463,J * (L + LL) - LEN ¢ STR CACJ,ID »> E466 456 PRINT ACJ,1) C368 455 HCI) = HCI) + ACJ,ID $5AD 966 VOID = VET) + ACT ,ID ASCP 465 NEXT J A3CC 470 D1 = D1 + ACI,I> BBD2 475 02 = D2 + ACI,OD - I + 1) FS29 486 NEXT I 9DCB 485 2 = OD * (2 * NB + (COD * 2) - 1) # INC) 4 2:2 = IN T 2d CEDC 496 PRINT : PRINT "NOMB.INFERIEUR:"3;: INVERSE : PRINT " "NB" "3: NORMAL S1iA@ 495 PRINT " “INCREMENT:"3: INVERSE : PRINT " "INC" "3: N ORMAL 40D8 560 PRINT " “ORDRE:";: INVERSE : PRINT " "OD" "3: NORMAL i968 32 GUY-HACHETTE 5@5 PRINT " “CONST.MAGIQ.:"5;: INVERSE : PRINT " "2" "33 NORMAL + PRINT " " AF? 514 FOR I = 1 TO 40:2 = PEEK (49200): NEXT 9F42 515 PRINT : PRINT : PRINT "VOULEZ-VOUS VOIR D’AUTRES CAR RES MAGIQUES ? (O/N) "3: GET H®: PRINT : PRINT 58a3 S26 IF H® = "N" THEN PRINT "Confirmez en appuyant sur " 3: INVERSE : PRINT "N "3: NORMAL : PRINT " “"; B97 S25 IF H$ = "0" THEN PRINT "Confirmez en appuyant sur " 3: INVERSE : PRINT "0 "3: NORMAL : PRINT " “"; DEG? 53@ FOR I = 1 TO 20:2 = PEEK (49208): NEXT cr) 535 GET H$: PRINT 1B1E 540 IF H$ = "0" THEN HOME : RUN 115 6754 545 PRINT CHR® (4)"RUN MENU" BiB4 550 END 61808 555 : 8038 560 REM ----- CALCUL DES NOMBRES DU POURTOUR ----- 565 : 8038 570 FOR I =1TON- 3 34Dé6 575 ACI + 1,1) = NB + 2% I # INC:ACI + 1,N) = NB + (N 2-2 1-1) * INC 3F3B 580 ACI,N - I) = NB + (2 * I + 1) * INC:ACN,N - I) = NB + (N* 2- 2% 1 - 2) * INC 7202 585 IF I > N / 2 - 2 THEN ACI,N - I) = NB + (2 * I + 3) * INC:ACN,N - I) = NB + (N * 2 - 2 * I - 4) ® INC 8095 590 IF INT (I / 2) < > I / 2 THEN Z = ACI + 1,1):ACT + 1,1) = ACI + 1,ND:ACI + 1,N) = 2 4957 595 IF I =N - 3 THEN 695 7C6F 600 IF INT (1 4 2) < > I / 2 THEN Z = AC1,N - 1):AC1,N - I) = ACN,N - I)tACN,N - 1) = 2 24CF 605 NEXT 9582 618 ACL) = NB:ACN,N) = NB + (N * 2 - 1) * INC 0977 615 ACN - 1,N) = NB + INC:ACN - 1,1) = NB + (N * 2 - 2) * INC 5928 62@ ACN,1) = NB + (N - 1) * INC:A¢1,N) = NB + (N * 2-N > * INC 2999 625 ACN,2) = NB + 2 * (N - 2) * INC:AC1,2) = NB + (N * 2 - 2* N+ 3) * INC 630 AA = 8 635 GOTO 415 Les meilleures routines LM ne sont pas les plus longues. C’est la raison pour laquelle nous reprenons périodiquement, dans nos ouvrages collectifs, la plupart des programmes courts insérés dans Tremplin Micro. Mais ces Ouvrages contiennent aussi de nouvelles versions de routines LM déja publiées. C’est une raison suffisante pour ne pas manquer : NOUVELLES ROUTINES POUR LE 65C02 DE L'APPLE a a eS (on sait que le 65C816 du GS émule parfaitement le 65CO2) Prix de vente avec disquette : 160 F TREMPLIN MICRO i QUESTION ] ~ FOND D'ECRAN csen QUESTION : 10 HOME : A$=""" Comment remplacer le petit programme 20 FOR A=1T0 40: AS=AS + "WV": NEXT Basic ci-contre par une routine en langage 36 FOR B=23 TO | STEP - 1: VTAB B: PRINT machine... pour une plus grande rapidité CHRS(27);: INVERSE : PRINT AS;: NEXT d'exécution ? 40 NORMAL : PRINT CHR$(24) Clément RENARD REPONSE: Voici une solution en 33 ov 27 octets. Avec un écran couleur, elle donne un fond a d'écran plutét joli. On peut aussi essayer avec la valeur $4E en $311 (FECQ) ou $309 et 0310 (FEC1). La partie DEMO ci-dessous est tout a fait superflue

Showing the first 100000 of 202573 characters.

mp.ls