Skip to main content

tremplin micro newsletter issue 07

  • PublicationApple Periodicals
  • Pages66
  • Sourcetremplin_micro_newsletter_issue_07.pdf
← Magazines tremplin micro newsletter issue 07
/ 66
Source: Internet Archive — Aggregated Apple-era periodicals, 1981–2012.
Page 1
Loading…
Text content (OCR)
tremplin Av sommaire du n°8 de TREMPLIN MICRO © LA BOITE AUX IDEES (petite base de données) Mastermind (version pour Apple Ile et llc) Translist... ou comment créer un fichier source 4 partir d'une simple routine en langage machine ? Redimensionner vos variables Variables dimensionnées (comprendre les...) Ecran-damier en 4@ et 80 colonnes (initiation) AND.DEMO (comment utiliser cette instruction) Miroir (toutes les lignes d‘écran inversées en un clin d'eeil) Téte en bas (encore de I'initiation !). HISTO, TEXT (graphique en mode TEXT, avec les caractéres souris... mais sur Apple Ilc ou Ile + 65CG2) * CATALOG PRODOS inédit © MIXAGE HGR! et HGR2 ® ORGANISATION D'UN TOURNO! Ftc., etc. Parution le samedi 3 mai (Disquette disponible 4 compter du 15 avril) Un décalage dans la photocomposition de VISU-PUCE obli VISU-PUCE (n°6) Redouiat coconut (NOP) en 91FF ligne 307). Baprlehicn modifie en rien le fonctionnement du programme, mats... VISU-CH (Basic) ournit dO étre rectifié de la méme maniére.., ce qui n'a pas été le cas, Dewx solutions : 1° Elimination des NOP (EA EA), facile quand on utilise un assembleur... ef VISU.CH est bon. 1 Ne rien changer, mais moditier les lignes 160 et 180 de VISU.CH, de la maniére suivante < 692 au lieu de 690 — 665 ou lieu de 663. TREMPLIN MICRO — GU'Y-HACHETTE Apple ct ProDOS (noms et logos) sont des marques dépo- sées d'Apple Computer, Inc. BIMESTRIEL Le numiiro > 33 F Abonnemant d'un an 180 F (6 nuréros) EDITIONS JIBENA Direction-Rédaction Editions JIBENA. ‘Guy-HACHETTE Lo Petite Motte — Senillé 84100 CHATELLERAULT, Téléphone : 49-93-66-66 PUBLICITE : Joelle (mame numéro} Commission paritalre : Bermande en cours. Let revuns qui chaicissent d'dtre réedlament nu servicw du Lertaur en ne Vobligeant pent 4 ganar, dors plusiaurs magazines, les Tonssignemeris concernant so machine, ww bindficéent pos du euméra de Commission Paritaire, ft pos doveriage dos torits pos- ftoyoe ndduits. TREMPLIN MACRO — Birmesirie! — C'est une publicotion des Editions JIHENA, 4, rue de lo Cour-des- Noves, 7020 PARIS 5A, au capital de 2400000 F — imprimé por CITE-PRESS/PARIS — Dapét légal 6 to date de orution — Ing: ctiption 4 la Commession Paritaire des Publications 9 Agentes de Presse : en cours — Directaur de fo Publicoticn Guy:Clérment COGHE — Delfusion N.MLPLP. Je persiste et signe... HT] EXISTENCE méme de TREMPLIN MICRO nous en administre une preuve irréfutable : la program- mation passionne (au moins) un utilisateur d'Apple JI... sur dix, Qui plus est, cet utilisateur est devenu un lecteur régulier de la revue, Je suis tenté d'ajouter... et un ami. Je l'avais écrit sous le titre de notre numéro 1, i! y o un peu plus d'un an : Programmer devient un jeu. C'était — et cela reste vrai aujourd'hui — un objectif pour Tremplin Micro ; fournir aux amateurs de programmation le plus grand nombre possible de routines capables de les aider a “posséder vraiment leur Apple”. Depuis, T.M. a publié bon nombre de programmes, tantét élémentaires, tantét d'un niveau supérieur. Le Basic n'a pas été négligé, mais de fréquentes incursions dans le langage machine, celui que la machine comprend le mieux... ef le plus rapidement, ont permis de débroussail- ler le terrain... encore & découvrir d'une programmation qui séduit déja de nombreuses lectrices et de non moins nombreux lecteurs, Spécialiste des jeux d'esprit (et créateur d'une soixantaine de revues), je maintiens que lo programmation est un jeu, Mieux : une aventure dans laquelle on ne saurait s'enga- ger sans avoir le désir intense de progresser... pour gagner. Amusez-vous bien ! GUY-HACHETTE. ...a programmation est un jeu ! ahr ce a a ee eee TREMPLIN MICRO 1 Sommaire 7 INITIATION ® ALLUMEoUETEINT ?...........4. 19 © Sondage surSbits........-...... 43 JEUX e MEMO-VISU (un jeu visuel pour tester votre sens de la perception et apprendre a uti- liser une petite forme) ..... ua es 7 * Villes de France un jeu instructif de M, DEVAUX.,, 37 DES TRUCS * Adresses utiles ...-...--..--... 8 ® Inversiondefonte..........--.-- \4 © Lepoint sur RND ... 00... :c sy sees 4] AMUSETTE LETTRES EN PLUIE un programme pour les nostalgiques de l'elfacement progressif . that shea! GRAPH Une nouvelle version Pave chiffres en dents de BOI ci sea sh iewnes PsP cet ee ae | COMMENT COLORER UNE FIGURE? graphisme en haute résolution .... . re 21 LE COUT REEL DE VOTRE Cape AUTOMOBILE por Clément RENARD... 47 TREMPLIN micno Le numero 8 paraitra le 3 mai, IPO de Dominique LUGAT oe nouvelle fonction graphique pour inverser la couleur, effacer le point, créer de patites animations, find B Construisez des pyramides ..,.,.... 16 @ ALLUME ou ETEINT ? Comment connaitre |'état d'un point ERIN ass ars as ta inl win wenn we ae ema 9 @ Colorer une figure ......-..-- ne wal ® CADRE-DEMO en réponse OM, ANSELME .... oo 40 ORIGINAL! CARACTERES GEANTS sur votre imprimante Apple (DMP et IMAGEWRITER Let II)... 12 CARAGINVIDEMO «oe s0000, 15 LOGICIEL * CX HERAKLES -...0..,...).- set UTILITAIRES @ DATA-GENERATOR pour créer des lignes DATA au ere de sa fantaisie ...... 90 @ OU CATALOG devient C EBPS eahnsace vg ®@ Remplocer une chaine de caractéres .. 15 LISEZ AUSSI : * Bibliothéque informatique ....-. 1!—29 * Logiciels de jeux sur Apple II ; MANDRAGORE, HOLD-UP, COLO- RIAGES, PUZZLES, ARCANE Js 42 * Utilisation de GRAF.G .. eA 52 * Lecourrierdeslecteurs,.....-.. as — MULTIPLIER PAR 16 5s — PRNTAX ET PRNTYX sé — INPUT, WRITE ET READ EN MODE DIRECT $4 — ADRESSE DUNE VARIABLE sé — POUR UN CADRE HGR 57 — PREVENTION ROUTIERE SF — FORMATAGE IMAGEWRITER sa — GET. TE sf — ON SGN/X) GOTO... 59 © Votre Fiche 07 soci sve so ey ees es 6)—82 Bulletin de commande et d’abonnement 64 GUY-HACHETTE DOS 3.3. |ProDOs Dominique LUGAT UNE NOUVELLE FONCTION GRAPHIQUE | Comme HPLOT X, Y, la fonction & IPO X, Y trace le point correspondant aux coordonnées X et Y, mais la s‘arréte la comporaison. En effet, & IPO est capable de lire les caractéristiques existant déja a l'adresse X, ¥ (méme vide, votre écran est constitué de points). Le programme IPO est écrit en assembleur, rapidité oblige, et peut étre divisé en deux grandes parties : * IPO proprement dit (dont nous vous fournissons le programme source complet). * IPO TO, transposition modifiée de HLINE, dont seuls les codes vous sont donnés. Ces deux parties sont réunies dans un seul fichier : IPO.C UTILISATIONS POSSIBLES : Au gré de votre imagination, bien sir, mais en voici une liste non exhaustive : inverser la couleur, effacer le point, le faire clignoter, déplacer un pointeur commande par la souris, créer de petites animations, des effets spéciaux, etc. PROCEDURE : IPO.C est appelé via Ampersand, de la maniére habituelle ($3F5 : 4C 18 68 ov encore POKE 1013,76 : POKE 1014,16 : POKE 1015.96) SYNTAME: HPLOTX, Y devient & IPO X, ¥ HPLOT TO X,Y devient & IPO TO X, ¥ QO —— ae PROGRAMME DEMO Un programme de démonstration, en Basic, vous montrera, mieux que de Jonques explications, comment utiliser & IPO dans le cadre de vos réali- sations graphiques. Notez que la routine en lan- gage machine n'est pas relogeable et n'oubliez Pas, si vous employez de nombreuses variables, de protéger la totalité de vas programmes, ainsi que les pages graphiques par un LOMEM : 25074, Si vous aver des questions @ poser, téléphonez 4 Dominique ! TREMPLIN MICRO 3 (soa RRO UE EEESO RRS IA Paredes Nee e NSERC OTe E ERA TA TENS see sSNA ORES INE TOs s SSN Se RSET LETSE ETS ewes ATES 100 J 110 120 130 140 150 159 160 161 162 170 180 188 190 191 200 210 220 IPO DEMO jig2 + 228 ¢ REM DEMONSTRATION & IPO X,.¥ ET & 1 PO TO X.Y TEXT : NORMAL :DS = CHR® (4):G% = CHRS (7): PRINT CHR® (21): HOME : PRINT Ts t i": INVERSE : HTAB 11: VTAB 10: PRINT TS: HTAB 11: VTAB 11: PRINT * DEMONSTRATi ON “: HTAB 11: VTAB 12: PRINT " KIPO RIPO TO “: ATAB 11: VTAB 13 : PRINT TS: NORMAL : GOSUB 320: GO SUB 860 HOME : PRINT D$“BRUN IPO.C*: CALL 768: HGR : HCOLOR= 3: HTAB 1: VTAB 22: PRINT " ON TRACE DEUX RECTANG LES QUELCONQUES...* FOR ] = 1 TO 10: HPLOT 80,80 + 1 T O 150,80 + I: NEXT : FOR I = 1 TO 10: HPLOT 70,100 + I TO 170,100 + 1: NEXT GOSUB 320: HTAB 1: VTAB 22: PRINT “PUTS DES DROITES PARALELLES AVEC *HPLOT’" 157 3 REM HOH FHE HANSON ETRE REM # HPLOT NORMAL. * REM WA AHEN ew HOH ee ee FOR J = 1 TO 6: FOR 1 = 50 TO 150: HPLOT 4 + 1,1 + J # 2: NEXT : NEX T GOSUB 320: HTAB 1: VTAB 22: INVERS E + PRINT “ & IPO ENTRE EN JEU “; NORMAL : GOSUB 320: CALL 934: HTAB 1: VTAB 22: P RINT “L*EFFET DIMENSIONNEL EST EVI DENT... s PEM CORPSE HEHEHE EHO PEM # & IPO i] REN Seeded ENA ee GOSUB 210: GOTO 220 FOR J = 1 TO 6: FOR I = 50 TO 150: & IPO. + 30,1 + J © 2: NEXT : NEX T : RETURN GOSUB 320: HTAB 1: VIAB 22: PRINT . LE MECANISME EST SIMPLE... 229 230 231 232 240 250 260 270 278 279 280 281 282 290 300 308 309 310 311 312: 320 328 329 331 332 340 350 360 370 380 3970 400 410 418 aig REM ARRAS RHRRE RENEE RHR He REM * ANIME * REM HOR RHE ee t GOSUB 250: GOTO 260 FOR J = 1 TO 6: FOR I = 50 TO 150: & IPOI + 60,1 + J 4 3: NEXT : NEX T : RETURN GOSUB 320: ATAS 1: VTAB 22: PRINT " IL PERMET DES PETITES ANIMATION 5" FOR J = 1 TO 6: FOR I = 50 TO 150: & IPOI + 60.1: NEXT + NEXT REM Sy RON eer ee REM # EPFACEMENT i] REM Sed RH AERO UH GOSUB 320: PRINT : VTAB 22: PRINT J BON... IL EST TEMPS D’EFFAC ER! *: PRINT G$;: GOSUB 210: GOSUB 250: HOME : PRINT GSGsG8: HT AB 1: VTAB 22: INVERSE : PRINT * E T MAINTENANT. PLACE A L’ART...GAST ON *: GOSUB 320: NORMAL GOTO 340 REM RR He REM * SP.IPO 222 ’ REM #4) 0-0 We RH FOR 1 = 1 TO 2000: NEXT : FOR I = 1 TO 20:B = PEEK ¢ - 16396): NEXT : RETURN ? REM Suse aHH RAE R EERE EE ee REM * ART.GASTON AVEC &IPO TO REM #824 NRK REM NEHER REHM RR HOME :0C = 1: CALL 768: HGR2 : CAL L 791: CALL 768 FOR X = 5 TO 250 STEP X GOSUB 430 IF OC = 1 THEN HPLOT X.100 TO 100, hy IF OC = 2 THEN HPLOT 104,¥: & IPO TO X.102 NEXT X OC = OC + 1: GOSUB 700: IF OC = 3 THEN 470 GOTO 350 REM #825420 eeReR SER eee GUY-HACHETTE Sogo EP TREEEREEE DRO eREAns se snaderennN eee DAN ATs DS AATS ALON TESME TAA N Sede eMeonenrsaaoEEEEEETOEESANTSS 420 421 422 430 440 450 590 709 710 711 712 720 708 : REM # CALCUL DES COORDONNEES 4 REM 41 AHH eae ae are at Y=3.14ex*2 Y= 1100 RETURN REM KHHRKEHMEHEH EE REM # DESSIN ALEATOIRE # DEM #H#HPOOHM HHH eee Al = 30:BI = 160: GOSUB 600: GOSUB 600 ¥ = 130:Z = 90 FOR I = 1 TO 100 GOSUB 550 HPLOT Y¥.2 & IPO TO A,B NEXT GOSUB 700: GOSUB 720: GOTO S80 A = INT ¢ RND (120) * 100) + 160 B = INT ¢ RND (120) »* 100) + 20 RETURN HOME : CALL 768: HGR : HTAB 10: VT AB 22: PRINT "AU REVOIR...": FOR J = 1 TO 1000: GOSUB 590: POKE 855, Al: POKE 856.BI: CALL 834: NEXT : ONERR GOTO 730 GOSUB 650 INT ¢¢ RND (1) # 1000) 4 7) INT ¢¢ RND (1) # 10003 / 4) IF BI < Al THEN 650 BI > 170 THEN 650 RETURN FOR P = 1 TO 2000: NEXT : FOR P = 1 TO 10:8 = PEEK ¢ - 16336): NEXT : RETURN REM RAHM N NM ROHS Hee REM * FEU D*ARTIFICES ‘ REM HHNHHEHRE EERE DIM AC30),B¢30): CALL 768: HGR2 : CALL 768: HCOLOR= 3: FOR I = 1 TO 8: FOR B = 1 TO 3:0 = PEEK ¢ - 163 36); NEXT : GOSUB 780: FOR J = 179 TO Y STEP - 2: HPLOT X.d: IF I < 730 740 750 760 768 769 70 771 772 760 880 4 THEN FOR P = 1 TO 20: NEXT NEXT : GOSUB 740: NEXT : FOR P = 1 TO 800: NEXT : CALL 768: HGR : RE TURN P= 0: FOR P = 1 TO 8:B = PEEK ¢ - 16336): NEXT : FOR K = 1 TO 20: G QOSUB 820: HPLOT X,Y: & IPO TO ACK) »B¢K): FOR UW = 1 TO 2:B = PEEK ¢ - 16336): NEXT : FOR U = 1 TO INT ¢ RND ¢13 # 20>: NEXT : NEXT IF I < 3 THEN HCOLOR= 0: FOR J = 1 79 TO ¥ STEP - 2: HPLOT X.J: NEXT : FOR K = 1 TO 20: HPLOT X,Y TO At K),BCK): NEXT : HCOLOR= 3 RETURN t REM WOH mM We Me REM « RND CECRAN) * REM HORNE NAH X = INT € RND (1) # 1000) / 4:¥ = INT ¢ RND (1) * 1000) * S: IF X ¢ 30 OR X > 250 THEN 780 IF ¥ < 10 OR Y > 80 THEN 780 RETURN REM +OHRHO HMMM REN + RND CECLATE? “ REN AHHHAN ENR ACK) = INT ¢¢¢ RND (1) * 1000) / 6 2 + X — 309:BCK) = INT (CC RND (1) # 1000) / 14) + ¥Y - 303: IF ACK) < 1 OR ACK) > 279 THEN 820 IF BCK) < 1 OR BCK) > 150 THEN 820 RETURN REM Ha#0#HEHHHEHR EMR H OHHH REM * ROUTINE CLEARHGR.SON . REM #8kRRHE HREM H EHH HEM 3 FOR ADR = 768 TO 656: READ CODE: P OKE ADR.CODE: NEXT : RETURN DATA 169,32,193,7,169,0,.139,6. 162, 64,160,0,145,6.136,208,.251 .230.7.2 02,208.244.96,169,32,139,7,169.0,1 39.6,169,255,162,64.160,0,145,6,72 -138 DATA 72,.32,.57,3,104,170,104,136,20 6,242,230,7.202,208,235,96,162,21, 173,48, 192,202.208,250,96,173,48,1! 92,136,208,5,206,88,3,240,9.202.20 8,245,174,87,3, 76,65,3,96.0,0 > TREMPLIN MICRO Si vous ne possédez pas d’assembleur, ne tapez que ces codes : wry) 6000: AY 4c 6002: 80 FS ag 6005: A? io 6007: BD F6 03 600A: AP 60 600c: 8D F7 03 600F: 60 6010: A® 3a 6012: 85 06 6014: A? 60 6016: 85 07 6018: AS aS 601A: 48 601B: AS B9 601D: 48 601E: AO 00 6020: 20 a7 OO 6023: D) 06 6025: FO Ot 6027: 60 6028: Ce 6029; Co O03 6028: FO 09 602D: 20 Bi oO 6030: 4C 23 60 OO ~) OF OT ae Go BD $6 38 319 31A $iB sic 926 $30 BL SB7 $BB SE4 $3F5 $F411 SF6B? $6000 £S4C AMPERV £<IPOAMP AMPERV+1 £>1POAMP AMPERV+2 £<ASCIPO INDEX £>ASCIPO INDEX EQU VARCOUL EGU POSHB EOQU POSHH EGU Posv EQu HCOLORL EQU HBASL EQU HMASE EQU CHRGET £QU CHRGOT EQU TXTPTR EQU HCOLORG EQU AMPERV EGU HPOSN EGU HFNS EQU ORG #¥ Vectorisation & DEBUT LDA STA LDA STA LOA STA RTS IPOAMP LDA STA LDA STA » Conserver les pointeurs LDA PHA LDA PHA Loy JSR * Test de l‘instruction & IPO TEST CMP BEO RTS SUIT INY cPY BEG JSR JMP INDEX+1 TXTPTR TXTPTR+1 £0 CHRGOT CINDEX).Y SUIT £3 PARAMS CHRGET TEST :Pour codes ASCIT Variable Couleur ;Coor .horizontale javec dépassement 256->279 :Coor.verticale iVar.en fonction de la “HMASK’ sAdresse du point HGR +Octet masque bit/point Pour acquérirc prochain carac. fau curseur. yAdresse du dernier caractére. #Code couleur point iVecteur & Calcul position point iTranspose X-> XH XL iAprés les pages HGR + JMP isur le programme LM. iRetour de BRUN ou CALL tLa table ASCII est lue ten index. ;Pour revenir a |’ interpréteur :BASIC au bon endroit. Lecture qu caractére aprés & :Comparons-le avec la table t...e’est bon -> SUIT 3Ce n’est pas pour nous. :Pour passer 4 la lettre tsulvante sauf si 3e. tLecture du code set compare encore. ‘GUY-HACHETTE 54 * Table ASCII 55 6038: 49 50 4F 56 ASCIPO ASC ‘IPO’ Ss? 58 59 #* Paramétres fonctions 60 6036: 20 8: 00 61 PARAMS JSR CHRGET tLecture du cade 6039: CF Ci 62 CMP £SCi sest-ce TO ? 6038: FO 34 63 BEQ IPOTO Oui: fonction & IPO TO 603D: 68 64 PLA 603E: 68 65 PLA 603F: 20 89 Fe 66 JSR HENS tI] faut lire les paramétres 6042: 86 19 67 STX POSHB wet les transtérer. 6044: G4 1A 68 STY POSHH 6046: 65 18 6? STA POSV 70 71 * & IPO 72 6048: AS £4 73° «IPO LDA HCOLORO ill faut conserver |a couleur 604A: 85 08 74 STA VARCOUL ipour la restituer en cas ce 604C: 20 61 60 75 JSR ADRPLOT ichangement 6O4F: DO OF 76 BNE NOCHANG 6051: A? 00 77 CHANG LDA £0 Couleur noire pour tracer 6053: 85 £4 78 STA HCOLORO igur une zone déja dessinée 6055: 20 61 60 79 JSR ADRPLOT 6058: 51 26 80 NOCHANG EOR CHBASL),Y 605A: 91 26 81 STA CHBASL),Y ;Dessin du point apres masques 605C: AS 08 82 LDA VARCOUL isuccessifs. 60SE: 85 £4 83 STA HCOLORG :Rétablir la couleur d’entrée 6060: 60 B4 RTS :Retour principal 85 6061: AG 19 66 ADRPLOT LOX POSHB ;Coordonnées écran HGR pour 6063: Ad 1A 87 LDY POSHH ile SP ‘HPOSN’ 6065: AS 18 88 LDA POSV 6067: 20 11 F4 89 JSF HPOSN i0n calcule |‘adresse en fonction 606A: AS 1C 90 LDA HCOLOR1 ides coordonnées ‘POS’. 606C: 5i 26 91 EOR (CHBASL),Y :Masque de couleur 606E: 25 20 92 AND HMASK Masque du bit/point 6070: 60 93 RTS ibas les masques! 94 95 #8 IPO TO (voir codes IPO.C) : pas ee yo 97 IPOTO Fou +* Tabie des symboles ordre alphabet :aue -ADRPLOT.. .#6061 -AMPERV....903F5 -ASCIPO..,.86033 ? -CHANG..... #6051 -CHRGET....S00B1 -CHRGOT....#00B7 ? -DEBUT.....#6000 -HBASL..... $0026 -HCOLORO.. .$00E4 -HCOLOR1.. .8001C -HFNS.....- SF6B9 -HMASK..... $0030 -HPOSN..... SF411 -INDEX..... $0006 7 -IPO....... $6048 ~IPOAMP - 36010 -IPOTO.....96071 -NOCHANG, ..26058 ~PARAMS.... .#6036 -POSHB..... $0019 =POSHH..... s001A -POSV...... $0018 SOIT. ah $6028 <TEST «0.20 $6023 -TXTPTR....300B8 -VARCOUL. ..80008 TREMPLIN MICRO ? 6128- 84 26 98 18 69 EB 18 2c (suite) 6130- 68 FS F@ 12 AS 26 69 58 6138- 49 F@ FO 82 49 FB 85 26 6148- AS Ed 98 82 49 EB 66 26 Suite et fin de la routine IPO en langage BISe- sd 46 ee rH ts eH ay teeebine, S 27ee Pore best ra woe Nomar dige 49:80. 65 E1186 02.80 $A sition modifiée de HLINE... d'od |'absence Se aee [6 AS FEES EL MEAS Be du programme source (lequel exigerait é148- ES 03 8&5 DI 85 DS 68 85 d'aillours plusieurs pages). 417@— D@ 85 D4 48 85 E@ 86 El 6178- 98 18 ES E2 7@ 84 49 FF an aa ae aa Bi we Se-89 619@- 69 FE 85 D2 84 E2 66 D3 6878- Fé 84 9D AB BA AS 9D 26 6188- 38 ES D@ AA AP FF ES Di 6080- 54 41 468 18 23 AS 38 4A é6198- 85 1D A4 ES BO 85 BA 26 6888- B86 85 49 CO 85 36 48 8S 6196- 83 68 38 AS D4 65 D2 65 6990- 19 @2 AB 27 AP CB B85 3a é41A@- D4 AS DS EF 88 85 DS 48 é66°8- $4 E5 AS IC BA CF Ce 16 461A8- 5A 46 98 48 66 26 D2 41 48AG- @46 AS 1C 49 7F 85 1C 66 41B@- 28 48 AS 68 AA 48 EB DO 48A8- A5 39 BA 49 86 30 DD AP 61Ba- 64 E46 1D F@ 14 AS D3 Be é69be- 81 C8 CH 28 98 EB AB BO é61C@- DS 28 ED 4@ 18 AS D4 65 66BS- 68 DC 18 AS Di 29 64 FB 61C8- De 85 D4 AS DS 65 Di 56 40C8- 21 AF 7F 25 38 31 24 DS 41D@- D4 68 AS E4 85 68 26 EB 48C8- 19 ES EA AP 7F 25 30 16 61D8- 61 D@ 87 AP 88 B85 Ed 28 6809-— 11 18 AS Di 29 @4 FB GA é61E@-— EB 41 5! 24 #1 26 AS 88 6606- Bi 246 45 IC 25 38 DA 82 61E8- 65 E4 68 AS Ed Si 26 25 48EG- E6 EA AS D1 65 03 29 63 S1F@— 38 48 S50ES8- CP G2 6A GO 76 36 36 18 460F0- AS 27 2C BF F5 DO 22 O46 Aprés CTRL-C ou RESET, sauvez le tout (IPO 48F8- 26 BG 1A 2C CD F4 Fe OS + IPO TO): BSAVE IPO.C, A$6000, LSIF2 6100- 6? 1F 38 88 12 67 23 48 VERIFICATION : S1NS- AS 26.69 BO BG bE :67 FE = T= GORI = 2457610 2575'+-490:T = 6110- 85 26 68 BB BZ 459 IF 46 : ; 4118- 26 469 FC 85 27 66 18 AS T + PEEK(I) : NEXT : PRINT T 4120- 27 49 84 2C BY FS De FS RESULTAT : 58634 - 2 Pour connaitre ladresse & laquelle vient ADRESSES UTILES | d'étre chargé un fichier binaire, interrogez le DOS (ou ProDOS) par : * PRINT PEEK(43634) + PEEK(43635) * 256 (DOs) * PRINT PEEK(48825) + PEEK(48826) * 2546 (ProDOs) Vous connaitrez la lonqueur (décimale) du fichier par : * PRINT PEEK(43616) + PEEK(43617) * 256 (DOs) * PRINT PEEK(4884@) + PEEK(48841)“ 256 — (ProDOS) AMPERSAND ($3F5.3F6.3F7) On installe les vecteurs par trois pokes (1013,X : 1014,X% : 1015,X). Ainsi, si vous fapez POKE 1613,76 : POKE 1414,165 : POKE 1@15,214, il vous suffira de taper & (+ return) pour lister votre programme. GUY-HACHETTE 1 AMUSETTE | [EXTEEE ProDOs LETTRES EN PLUIE V OUS ne trouvez pas un peu triste de taper "HOME" dans un programme basic? tout s‘efface d'un coup, vous laissant face a un grand écran vide... Voici un programme pour les nostalgiques de l'effacement progressif. Chargez le pro- gramme par PRINT CHR$ (4);""BLOAD PLUIE". Lorsque vous voudrez effacer l’écran, vous taperez CALL 768, les lettres sembleront tomber du ciel ! 1 2 KI 4 5 6 if 8 Si vous ne 9 possédez pas io d'assembleur, W topez seulement 12 les codes, 13 oprés un \ CALL—15] ; 16 ————_——},| 0 18 300; AS 22 19 302: 48 20 363: AD oO 21 305: A2 00 22 307: 65 G6 23 309: 86 a7 24 25 308-> AG OG 26 30D: E6 o6 27 30F: DO g2 28 311; 66 oF 29 ict) 313; AS 4e— v 315; 7) o6 32 317; Ca 33 318: 65 4c 34 311A; 38 35 31B.: £5 2) 36 31D: BO F® 37 31F: AS 4F a) 321: 18 39 322: 71 Gé 40 324: 18 4) | PROGRAMME INEDIT DE CLAUDE AUBRY . POINTEUR WNDLFT WNDWODTH WNDTOP WMDBTM cH cv BASL RNDL ROM VTAB PLUIE INCPO LOOPF AGAING AGAINI EQU EQu EQU EQU EQu EQU EQU EQu EQu EQu EQuU ORG EQU LDA PHA LDA LDx STA STX tby INC BNE INC LDA ADC INY STA SEC SBC BCS LDA cL”e ADC cLe $06 $20 $21 $22 $23 $24 $25 $28 $4E $DG00 $FC22 $300 WINDTOP £<ROM £7 ROM POINTEUR POINTEUR+ 1 £300 POINTEUR LOOP POINTEUR +1 RNDL (POINTEUR),¥ RNDL WNDWDTH AGAING RNDL+1 (POINTEUR),¥ ; Dans la ROM pour NB aléstoire } Curseur HORIZONTAL : Curseur VERTICAL : Adreasse de lo LIGNE couronte + Nombre aléotoire : Premibre adresse BASIC ; Déploce le curseur en CV ; Appelé par CALL 768 ; On sauve le haut de la fendtee ) aién Mempilont } On crée un pointour (dans lo : .fom les voleurs trouvées ; Création du nombre aléatoire i; Ovec valeurs prises en ROM i Stocke + oy fvant soustraction > dons lo fenétre ; Non : on soustrolt > ..deuxiéme aléatoire : Avant oddition ; Avant addition Marge GAUCHE LARGEUR fenétre HAUT de lo fenétre BAS de la fenétre serviront de nombre aléataire) Incrémente la pointeur HSB ef LSB des nombres -.aléatoires TREMPLIN MICRO ¢RA SAE RER EEO R NEE ESSSssN ses ek sess See E SNES SEERRR TERED Owes hse SE SARTESISRORE ET LSe sees AeeaeeaeTSS 325: 65 22 42 ADC WNDTOP ; «haut de fenétre 327: 85 4F 43 STA RNDL+1 ; stocké 329; 38 44 SEC S32A; 65 23 45 SBC WNDBTM ; dans fenétre 32C; BO F6 46 BCS) = AGAINI ; Non? S2E:; Ad 4€ 47 LDY RNDL ) Récupere 330; 84 24 46 sty CH +. colonne 3392: A5 4F 49 LDA RNDL+1 , ligne 394: 05 22 Bi CMP WNDTOP > dans lo tendtre 336: 90 EC 51 BCC AGAIN ; Non? 338: 85 25 52 STA CV 334: 20 22 FO 53 JSR -VTAB : Qui positionne BASL BASH 390: 6) 28 54 LDA (BASL),¥ ; Caroctére 33F: C9 AG 55 CMP E£" ” , Un espace 7 341: FO Tt 56 BEQ ESPACE ; Ou? 343: 48 oT PHA : On souve le caractere 344: A9 AG 58 ton, 2” ;} On l'elface de I'éeran 346: 97 28 59 STA = (BASL),¥ ) on etrivant espace 348: AS 25 68 LDA CV ; Ligne 34A: C9 17 6) CMP ESI7 ; ba derniére 7 34C: 90 O83 62 BCC FINECRAN ) Qui on posse ligne suivante S4E ; 48 63 PLA ; Souve le numéro de ligne 34F : BO OB ot BCS ESPACE ; On vo en premiére colonne 351: && 25 65 FINECRAN INC CV > Ligne sulvante PLUIE 353:209 22 FO 66 JSR =VTAB : Pasitionne BASL BASH 356: 648 67 PLA ; Récupeére le caractére 357: 9) 28 68 STA (BASL),¥ ; On l'écrit une ligne plus bas 359: Ag oa 69 ESPACE LoY £800 ; Début de ligne S5B: 84 24 70 STY CH : On recherche un coractére 35D: AS 22 7 LDA WNDTOP ; Haut de fenétre 35F: 85 25 72 STA CV ; En curseur vertical 361: 20 22 FC 73 JSR =VTAB ; Positionne BASL BASH 364: Bl 28 74 CHERCHE LDA {BASL).¥ i Prend coractére 366: C9 AG 75 cMP f° " > Est-ce un espoce ? 368: DO A3 74 BNE INCPO : Non : prochain aléotoire 336A; CB 7 INY ; Oul, on incrémente 368: C4 21 78 cPY WNDWDTH ; = Glalargeur ? 36D: 90 FS 7F BCC CHERCHE ; Non : on continue la recherche 36F : EA 22 ao INC WNODOTOP ; Terminé pour haut de tenétre 371: AS 22 81 LDA WNDTOP ) Récupére haut de fenétre 373: €5 22 82 CMP WNDBTM ; Compore hout et bas da tendtre 375: 90 EF 83 BCC ESPACE ; < an continue ? 377 : 48 a4 PLA ; Sinan ferming. on récupére 378: 85 22 a5 STA WNDTOP ) position de hout de fendire 37A: 60 Be RTS ; Retour ou Basic a7 900: A5 22 49 AD OG AZ DO 85 O6 86 O7 AD | SAISIE-CONTROLE | 00 E6 06 DG G2 £6 G7 AS 4E 71 G6 CB BS 4E 98 £5 2] BO F9 AS 4F 18 71 G6 18 65 22 Si yous étes néophyte, tapez CALL—151, 8S 4F 36 €5 23 BO FG Aa 4E 84 24 AS 4F puis return. Ensuite, en 40 colonnes, tapez CS 22 90 EC B5 25 2 27 FC B) 28 CP AD lecvniours dante. FO 16 48 AS AQ 9) 28 AS 25 C9 17 90 03 Pour terminer : BSAVE PLUIE.C, A$30Q, L$7B See G5: RIE Sour ferminer: a . 351: £6 25 20 22 FC 68 91 28 AG OG B4 24 VERIFICATION : ‘ Aon B5 25 20 22 fC e128 co Ag Dd Ad oA 1 F5 E64 5 23 T=0; FOR! = 76870 890; T = T + PEEKII) : ie See artes ae NEXT : PRINT T Résultat : 14077 (CTRL-C of RETURN 10 GUY-HACHETTE Votre bibliotheque INFORMATIQUE ‘LES BEST-SELLERS DE INFORMATIQUE * MS-DOS FACILE (Marabout) de sais; vous ne disposez que dun modeste ordinateur person- nel 8 bits, et j'ai Noir de retourner le fer dans fa plaie en vous par- lont (oh | pas trop souvent !) des machines travaillant sur 16 bits, Mais elles existent... ef votre prochain Apple aura cette inestimable qualité, Fout-i) voir, dans le MS-DOS, comme Ilya Virgatchik, auteur de ce nouveau Marabout-Service, "un 4ystéme d'exploitation de seconde générofion, en quelque sorte I/héritler du CP/M" ? Sirement, puisqu'il est qujourd’hul, pour les ordinateurs 16 bits, le seul vrai stondard : le triomphe de Microsoft ef d'lBM len effet, PC-DOS et MS-DOS. méme combat |). Il fout lire MS-DOS FACILE, ne seraif-ce que pour le comparer ou ProDOS d’Apple, On consta- fero que les deux systémes com- portent de nombreux points com- muns, méme si ProDOS, mois es! foul & son honneur, tourne sur une mochine d'une outre génération (n’accablons pas les “anciens”, surtout quand ils ont joud |'éminent réle de détri- cheurs |). Personnellement, jai porcouru ce petit guide avec intérét et javoue avoir un faible pour la présentation des ouvra- ges dune collection ou fitre ambitieux : “Les Bast-sellers de Nintormatique” Tout un programme | * GRAPHISME SCIENTIFIQUE (Masson) Un livre sérieux dans une collec. tion destinée & des lecteurs stu- dioux : "Méthade + Program- mes”, Le sujet étudié ici est ambitieux : le graphisme scienti- fique sur micro-ordinoteur (de bo 2? 6 la} dimension). Dans cette troisime dditian, revue ef corrigée, Robert Dony sadresse 4 fous les possesseurs d'un ordinateur personnel ayant des possibilités grophiques, avec 50 opplications résolues en Basic, of testées sur Apple i et Wang 2200, Jaurais aimé publier ici, non pas lune de ces 50 routines, mais une sélection des graphiques dont ce manuel est bourré, mais je prétére vous conseiller de les découvrir vous-méme, devant votre Apple. Ne vous attendez pos 4 une suc- cession de programmes illus- trés.,. & recopler sans y attacher ouirement dimportance, mais bien 6 des “applications” longue- ment ef minutieusement expli- quées (de solides connoissances mathematiques ne sont pas inuti- les quond on désire vraiment finer profit d'un livre comme celui-ci}. Cela étant, personne ne yous obligera & foul lire et les programmes peuvent évidem- ® par Clément RENARD ment se suftire & eux-mémes. lauteur espere que cetle nou- yelle édition est deéfinitivement expurgee des quelques coquilles et erreurs des deux précédenties. A vous de lui prouver le con: fraire: je suls persuade qu'il vous en souro gré, C’es! ainsi que l'on ovonce.,. dans notre petit monde de l'informatique | * LE LANGAGE MACHINE SUR VOTRE APPLE Ile (Inter Editions) Vouteur est Graharn Keeler, pro- fasseur 4 |'Université de Salford (Grande-Bretogne), || est troduit par Phong Tuon Nahiem. Vlowvroge constitue une bonne introduction au langage machine de |'Apple et 4 l'architecture du 6502, mais il va plus loin en se ravélan! accessible au profane. Linitiction est menée ronde- ment, mais sdrement. De plus, en annexe, fauteur fournit les solutions des exercices choisis (i noter quune disquette, conte- nant toutes les routines du livre, peu! étre vendue séparement), Clément RENARD, LE LANGAGE MACHINE Ey a TREMPLIN MICRO WW TITRE DOUBLE FORMAT et TREMPLIN HICRO e ot Caracteres geants sur votre WE imprimante Apple Ces titres n’ont pas été agrandis et vous obtiendrez les mémes (sur DMP et IMAGEWRITER I et II), a partir de la fonte que nous vous proposons. Quant aux caractéres en mode inverse, lisez un peu plus loin... et mettez votre imprimante a contribution ! 12 GUY-HACHETTE Comment obtenir des titres en double hauteur (16 bits) ? ll est indispensable, dans un premier temps, de concevoir une fonte spéciale dont chaque lettre utilise deux caracté- res. Dans celle que je vous propose (CARAC.DOUBLE), Ia minuscule de chaque caractére sert de code 4 la partie supérieure de la lettre “double format" et la mojuscule est le code de Ia partie inférieure. Ainsi pour obtenir "TOTO", on tapera : PRINT “toto” ; PRINT “TOTO”, Naturellement, il faut définir un interlignage de 8 pts : CHR$ (27)'TG8". Vaus comprenez pourquoi CARAC,DOUBLE ne comporte que des capitales. Avec le programme CARAC, 1.0 de notre précédent numéro, ‘a composition d'une telle fonte ne pose aucun probléme. CHARGEMENT : Non moins facile par le truchement de CARAC.CHARG (Tremplin Micro n°6). Quant 4 la démonstration, la voici. Vous pourrez essayer les différentes possibilités que vous offre |'IMAGEWRITER, tant en mode expansé qu’en mode normol (essayez avec ESCAPE"N”, "E", ""q", "Q", etc.). CARAC.DBLE DEMO 198 PRINT CHR (4)"PREI* 118 PRINT CHRS (27)*°'* 128 PRINT CHRS (27)"p" 138 PRINT CHR® (27)">": REM UNIDIRECTIONNELLE 148 PRINT CHRS (27)"T#6": REM INTERLIGNE=8 PTS 158 PRINT CHR® (27)"’": REM CARACTERES PERSONNAL ISES 168 PRINT : PRINT {78 PRINT "bonne annee": REM PARTIE SUPERIEURE 188 PRINT "BONNE ANNEE*: REM PARTIE INFERIEURE 198 PRINT ; PRINT : PRINT 266 PRINT "titre double format* 218 PRINT "TITRE DOUBLE FORMAT": PRINT : PRINT : PRINT 228 PRINT "tremplin micro" 238 248 258 248 PRINT “TREMPLIN MICRO" PRINT CHR$ (27)°$"; CHR® (27)"A"; CHR (27) + CHR (34); CHRS (27)"<¢* PRINT CHRS (15) PRINT CHRS (4)"PREB" . AeyawA suse eeeeneeenses ee eeeoneosoEssUTeeseREESesoCEseSRDERTES TREMPLIN MICRO CARAC-DOUBLE 4000- 4008- 4010- 4018- 4020- 4028- 4030- 4038- 4040- 4048- 4050- 4058- 4060- 4068- 4070- 4078- 4080- 4088- 4090- 4098- 40A0- 4048- 40B0- 40B8- 40co- 40C8- 40D0- 40D8- 40E0- 40E8- 40FO- 40F8- 4100- 4108- 4110- 4118- 4120- 4128- 4130- 4138- 4140- 4148- 4150- 4158- 4160- 4168- 4170- 4178- 4180- 4188- 1B 28 18 49 62 50 00 00 FF FP FF SSSSnPSQseIsseeessays maenacgemsaSsens FF 83 83 83 83 83 83 C7 FF 7E 3C 42 S0 00 00 FF FF FF FF Ei Et El £1 £1 £1 £3 FF 7B 3¢ 6F 50 00 00 FC FE FF FF 07 03 03 03 03 03 07 FF FE FC 4F 50 00 00 3F 7F FP FF FO EO EO EO £0 EO FO FF 7F 3F 6E 50 00 00 FF FF FF FF 1C 38 70 EO CO 80 00 OO FF FF 4£ 50 00 00 FF FF FP FF 00 00 00 00 01 03 07 OF FF FF 61 50 00 00 FS FC FE FF 83 63 83 83 83 83 83 B6 FC F8 41 50 00 00 FF FF FF FF 03 03 03 03 03 03 03 03 FF FF 65 50 00 00 FP FF FF FF 83 83 83 83 83 B3 03 03 03 03 45 50 00 00 FF FF FF FF El Ei El El £1 £1 £0 £0 £0 £0 6D 50 00 00 FF FF FF FF 38 70 EO CO £0 70 38 FF FF FF 4D 50 00 00 FF FF FF FF 00 00 00 01 00 00 00 FF FF FP 6¢ 50 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 4c 50 00 00 FF FF FF FF EO £0 BO £0 EO 80 £0 £0 £0 £0 75 50 00 00 FF FF FF FF 00 00 00 00 00 00 00 FF FF FF 55 50 00 00 3 7F FP FF FO 0 EO EO BO EO FF 7F 3P 76 50 00 00 FF FF FF 00 00 00 00 00 00 FF FF FF 56 50 00 03 OF 1F 38 70 ED 60 18 OF 07 03 50 00 00 3C 7E FF FF 3 C3.C3 C3 C3 C3 87 0¢ 53 50 00 00 10 30 Fi £1 £1 £1 £1 £1 Ei TF OF 74 50 00 00 o7 o7 07 FF FF FF oT oF 07 O7 54 50 00 00 00 00 00 FF FF FF 00 00 00 O00 > CARAC-DOUBLE (suite et fin) Partie () (Haut) [ele le |e] e)6)«@ DoouG Dowuues (slalejelele jelelelele oi Tae ® Hi fe seis ae * 5 o a o = Secon Cooo = oo Exemple {caractéres oA) SAUWVEZ VOTRE FONTE : BSAVE CARAC.DOUBLE, AS40009, LS397 VERIFICATION : T=0:FORI = 16384 TO 17302 : T = T + PEEK(I) : NEXT ; PRINT T RESULTAT: 110821 4190- 4198+ 41A0- 4AB- 4180- 41BB- 41C0- 41CB- 4100- 41DB- 41E0- 4) EB- 4iFo- 41 F8- 4200- 4206- 4210- 4216- 4220- 4268- 4270~ 4278- 4280- 4288- 4290- 72.5000 00 FF FF FF FF 4298- £7 £7 F7 FF 7F SF 68 50 83 89 89 89 83 .C3 E7 7F 42A0- 00 00 FF FF FF FF 80 80 3E 1C 5250 00 00 FF FF 42A8- 80 80 80 BO 80 FF FF FF FF FF 03:03 07 OF 1F 39 42B0- 48 50 00 00 FF FF FF FF 70 £0 CO 80 7850 00 00 42B8- 03 03 03 03 03 03 03 FF 03 07 OF 1F 3C Fa FO EO §=642C0- FF FF 6A 4E 00 00 00 00 FO B8 1C OF 07 03 58 50 = ©42C8- 00 00 00 00 00 OO FF FF 00 00 FO FA FC FEOF O7 42D0- FF FF 4A 4£ 00 00 SE 7E 03.01 03 07 OE PC F@ FO 42D8- FE FO 0 EO BO FO FF FF 69 47 00 00 PF FF FF FF 42E0- 7F SF 6B 50 00 00 FP FF 00 49 47 00 00 FF FF FF 4258- FF FF 80 80 CO BO FO 78 FF 00 70 50 00 00 FF FF 42F0- 3C 1E OF 07 4B 50 00 00 FF FF 89.83 83 6383.03 42F8- FF FF FF FF 03 03.03 07 E? 7F 3E 1¢ 50 50 00 00 «4300- OF IE 3C Fa FO EO 71 50 PR FF FF PF 03.0303 03 4308- 00 00 FC FE FF FF O7 03 03 01 00 00 00 00 6350 4310- 03 03 03 03 O7 FF FE FC 00 00 FC FE FF FF 07 03 © 4318- 51 50 00 00 3F 7F FF FF 03903 09 O7 IF LE IC) = 4320- FD BO £4 EC FC Fe 70 FF 43.50 00 00 3F 7F FE FF 4 4328- FF BF 77 50 00 00 FF FF FO £0 £0 EO EO EO PO FB 4 4330- FF FF 00 00 &0 80 80 00 78 38.6450 00 00 FP FF 4998- 00 FF FF FF 57 50 00 00 FP PF 030303030303 4340- OF 1F 3F 7F £0 70 3F IF O7 FF FE FC 4450 00 00 4348- 3F 7O EO 7F 3F IF 79 50 FF FF FF FF EO EO ED E0 4350- 00 00 03 07 OF IF 3C 78 £0 EO FO FF 7F 3F 66 SO 8 4358- FO £0 FO Fa 3C 1F OF 07 00 00 FF FF FF FF 63.83 ©64360- 597 50 00 00 18 3F 7F FF 83 63 63 83.0303 03 03 4968- FO £0 El ES F7 FF 7E 3C 4650 00 00 FF FF FF FF 4370- 18 00 7A 50 00 00 07 07 Of 01 01 01 01 01 00 00 437B- 07 O7 OF OF B7 C7 EV FF 00 00 67 50 00 00 FC FE 4960- 7F 3F 1F OF SA 50 00 00 FF FF 07 0303030303 4gqg- mp) FO Fe FC FE FF F7 FS O7 IF 1E 10 47 50 00 00 §=4390- Fy FO FO FO FO FO 04 SF 7F FF FF FO £0 £0 £0 . INVERSION DE FONTE 100 TEXT : NORMAL : HOME 110 DS = CHR® (4) 120 VTAB 12: INPUT “TITRE DE LA FONTE: ";F® 130 ONERR GOTO 100 140 PRINT DS"BLOAD" Fs" ,A16364* 150 L = PEEK (43616) + PEEK (43617) * 256 160 REM PRODOS: 46840 & 48841 Si votre colonne de blanc est & gauche, au départ, des caractéres assez gras et jl est sou- utilisez CARAC.IN/® (lire page 16). Avec CARAC 7.0 (Tremplin Micro n°), vous dispo- sez d'un utilitaire qui vous perme! de transformer les fontes grophiques du TOOL KIT Apple en pali- ces de coroctéras personnalisés, Certaines d'entre elles permetient de trés belles impressions en mode inverse. C’es! le cas, par exemple, de COLOSSAL.SET. D'une maniére générale, il faut, haitoble de ne pas abuser des minuscules. Si vous 180 PRINT DS"BLOAD CARAC.INV*: CALL 768 tapez d'abord ce petit programme en basic, |’opé- 190 FS = Fs + ". INV" ration sera outomatique... ou presque | 200 PRINT DS" BSAVE* FS" ,A16384.L"L Attention | n'utilisez que des fontes obtenues 4 210 PRINT DS*RUN CARAC.CHARG* partir de CARAC. 1.0, LE} GUY-HACHETTE la routine CARAC.CHARG (T.M. n°6) vous permettra de charger votre nouvelle fonte,, Vous ferez ensuite vos essais avec un embryon de programme ressemblant 4 CARAC.INVDEMO (ci-contre). Changez tout ce que vous voudrez... sauf les codes ! PROBLEME : CARAC.INV (ci-aprés) a été congu pour inverser des fontes dans lesquelles le blane (sépa- rant la lettre de la suivante) est a droite du caractére, ce qui est normal, Si vous avez concgu une fonte dans laquelle vous avez placé le blane 4 gauche, utilisez CARAC.INV@ 4 Ia place de CARACINV. CONSEIL : Pour obtenir de trés bons résultats, concevez vous- méme une police de caractéres trés gras. Place 4 l'imagination... et au talent | CARAC.INVDEMO 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 DS = CHRS ¢4):ES = CHR® (27) Ts = Et + “NY + ES + "X" + ES + eo ar TEXT : NORMAL : HOME PRINT D@"PRE1": PRINT PRINT T#: PRINT PRINT CHR® (15) PRINT “ VOICI UN TITRE * PRINT CHR® (14) PRINT " ET UN AUTRE ELARGI * PRINT : PRINT “On peut s*amuser: PRINT : PRINT ES"TO9";Es">" Ls = * *: PRINT LS PRINT * AVEC UN APPLE “: PRINT L $ PRINT : PRINT CHRS (15) PRINT *Minuscules deconse|| lees! PRINT ES" Y" ;E9"9";Es + CHRS (34> 3 CHR (15); ES" <"; Es" A" . H Guy-HAC . 260 PRINT D"PR£O . CARAC INV EEE HE HEHO HEHEHE IEE HERA EL OHE AUG EI IEH Ie a x 1 * CARAC.INV GUY-HACHETTE 15 DECEMBRE 8S # 2 # (INVERSE UNE FONTE DE CARACTERES PERSONNALISES) * Bo bea = $n nnn nn nn nn nen ---------# Sivous ne 4 * Fonctionne ¢automatiquement) avec CARAC.INVBAS +* possédez pas PMT LILLLL LLL LLL LLLL OLE LLL LLERLELLLeLeneet cece ee d'assembleur, 6 ORG $300 topez seulement 7 ADRB EQU S06 ; Pointeur adresse caractére ces codes : 8 ADRH EQU $07 : Partie haute méme adresse 9 LONG EOU $08 ; Longueur du caractére | 10 VAL EouU $09 : Stockage temporaire tL #---------------- ates a ane anne ano on een == - = -- === * 0300: AS 05 12 LDA £805 : Adresse du premier... 0302: 85 06 13 STA ADRB + ...tealté (partie basse) 0304: AY 40 14 LDA £840 : Adresse de ce caractére. 0306: 85 07 15 STA ADRH ; mais partie haute 1G Wesendtecdeet esse Reeth ae nai Sessa eee * 0308: AO 00 17 DEBUT LDY £0 : 0 dans le registre Y pour... O30A: Bi 06 18 LDA (Adrb).Y ; ...lecture adres. indirect O30C: 29 1F 19 AND £#1F : Avec OOOLLI11, S$41/86!=301 O30E: FO 04 20 BEG FIN ; St le césuitat est zéro,.. O3510: CF 11 21 CMP £911 3 4,,0U dépasse 16 (points), 0312: 90 O01 22 BCC SUITE i c’est ja fin 0314: 60 23. «=FIN RTS 24 Ronan nn nn nen n ener nnn * 0315: 85 08 25 SUITE STA LONG i La Jonqueur est sauvee, —_ TREMPLIN AAICRO CARAC. INV (suite et fin) 0317: £6 08 26 INC LONG + est incrémentée de 1 0319: AG 01 27 LOY £801 + Boucle de lecture O31B: Bi O06 28 BCLE LDA ¢Adrb>,¥ + Premier octet O031D: 49 FF 2? EOR £SFF + Inversion de |4 valeur O31F: 38 30 SEC : Retenue forcée a 1... 0320: 2A 31 ROL t ...pour une rotation gauche 0321: C9 On 32 CMP £s0D + ¥Y a-t-il OD dans |’accumu!.? O3c2: FO 06 33 BEQ TRAITE ; 5) oul: vers traitement 0325: Co 8D 34 CMP FSs8D : Parei) avec 8D o327: FO o2 35 BEQ TRAITE 0329: Dd a2 36 BNE FAIT + Saut au-dessus du traitement 032B: 29 FE a7 TRAITE AND &£sFE ? Masque "11111110" (moins 1) 032D: 48 38 FAIT PHA : On empile provisotrement A, O32E: AS O09 39 LDA VAL + le temps de charger | ‘octet 0330: 91 06 40 STA (Adrb),Y + précedent 4 i’adr. actuelle 0332: 66 41 PLA + Récupération sur ia pile et 0333: 85 09 42 STA VAL i Sauvegarde dans VAL 0335: CB 43 TINY ; Un de plus pour Y de boucle 0336: C4 08 da CPY LONG ; Est-ce la bonne longueur ? 0338: 90 El 45 BCC BCLE : Si *non": goto BCLE O33A: AQ O1 46 LDY £$01 ; Y chargé avec 1 pour mettre O33C: AS 09 47 LDA VAL + le contenu de VAL dans le O33E: 91 06 48 STA (Adrb),Y¥ ;} premier octet du caractére 0340: Es 08 49 INC LONG + Ne pas oublier la case conte- 0342: AS 08 60 LOA LONG + mant le code du caractére 0344: 18 St cLe ? avant de calculer | ‘adresse 0345: 65 06 52 ADC ADRB } du caractére suivant 0347: 65 06 53 STA ADRB 0349: AS 07 54 LDA ADR +: I] peut y avoir une retenue, 034B: 69 00 55 ADC £300 ; et i] faut aussi y penser 034D: 85 07 56 STA ADRH O34F: 4¢C 08 03 57 JMP DEBUT BSAVE CARAC.INV, AS300, L$52 Table des symboles ordre alphabet ique -ADRB...... 30006 -ADRH...... 90007 -BCLE......903)B -DEBUT..... $0308 =FAIT...... 20220 cones e 909140 =LONG. 0.4, 90008 -SUITE..... $0315 -TRAITE....9032B -VAL....... 80009 "300.340 CARAC.INV® 0300- A9 05 85 06 AD 40 85 07 Mini-routine spéciale pour des polices dont la 0308- AO 00 B1 06 29 IF FO 04 colonne de blanc est 4 l'extréme gauche. 0310- C9 11 90 O1 60 BS 08 AB BSAVE CARAC.INV@, A$300, LS41 O318- B1 06 49 FF 38 2A C? OD 0320- Fo os c9 aD FO Oz DD oz) | A TIS: ENT : 0328- 29 FE 91 06 DOE? AS Ces programmes fonctionnent sur Apple /le, Ic 0330- 08 18 69 02 65 06 85 06 et He 65CQ2, avec imprimante DMP ou IMA- 0336- AS O07 69 00 85 07 4C 08 GEWRITER — sous ProDOS, tenez compte des 0340- 03 indications mentionnées en REM. GUY-HACHETTE DOS 3.3. MEMO-VISU BR ON PIED... peutétre, mais bon ceil ? Ce jeu visuel sans prétention | | vous permettra de tester votre sens de | la perception (rien a voir avec la col- lecte des impdts, rassurez-vous !}... et aussi d’apprendre a utiliser une petite | forme (ici : un carré). 6 110 ; HGR of HGR? initiali- sent les deux pages gra- phiques... et les nettolent, © 120 ; POKE 32,10 et POKE 33.20 permettent de créer une fenétre au centre de "ecron. a 130; CALL—198 émet un Bip. a 150: On réatfiche ici lo page graphique HGR sans texte (et sans effocement), € 170: SCALE fait varier la taille de ta forme (aléatoi- rement, avec I'utilisation de RND}, 5 190 : POKE 239,64 permet d'écrira dans la page 2 (HGR2) et POKE 230,32 dans lo page | © 300 ; AHfichage de lo page 2 © ——_—— 6 Vous noterez que chaque corré est tracé dans lo page 2 {sans effacement), tracé de nouveau dans la page 1... puis efiacé por XDRAW aprés une courte boucle d'attente per- mattant de le visualiser, Cette boucle est fonction de lo vitesse choisie (ligne 139). TREMPLIN MICRO Prados INITIATION 100 110 120 130 140 150 160 170 180 190 200 210 230 240 260 270 300 310 320 330 340 TEXT : HOME : PRINT CHR (21): GOSUB 390 HGR : HGR2 : HCOLOR= 3: ROT= 16: TEXT TS =": :*: POKE 32,10: POKE 33, 20: VTAB 12: INVERSE : PRINT T$;* COMPTEZ LES CAR RES ";T#: NORMAL PRINT : PRINT : CALL - 198: PRINT “VITESSE (1 A 4 > => *¢: GET V@:V = VAL (V@): IF V< 1 ORV >4T HEN V = 1 TEXT : HOME POKE - 16304,0: POKE - 16300,0: POKE - 16297,0: P OKE - 16302,0 N= 12 + INT ¢ RND C1) # 12) SCALE= 8 + INT ¢ RND (1) # 8) X% = 32 + INT ¢ PND (1) # 215):¥ = 32 + INT ¢ RND (1) # 127) POKE 230.64: DRAW 1! AT X,¥: POKE 230,32 DRAW 1 AT X.Y FOR Z = 1 TO 100 * V: NEXT XDRAW 1 AT X,¥:F = F + 1: IF F < N THEN 170 GOSUB 360 VTAB 22: INVERSE : PRINT “COMBIEN Y A-T-IL EU DE CARRES ?*;: NORMAL INPUT * 8":Re HOME : VIAB 22: INVERSE : IF VAL (R#) = N THEN PR INT "EXACT!*;: GOTO 280 PRINT "FAUX: “;F: NORMAL : PRINT * GOSUB 370 POKE - 16302,0: POKE - 16299,0 GOSUB 370: GOSUB 360 PRINT : HOME : VTAB 22: CALL - 198: PRINT *<1> EN CORE <2> FIN <3> MENU DISGUETTE *;: GET RS IF RS = "3* THEN TEXT : PRINT : PRINT CHR® (4)°RU N MENU" IF R@ = “1* THEN RUN IF R® < > *2" THEN 320 PRESSEZ UNE TOUCHE $.V.P* 360 HOME : TEXT : END 370 CALL - 198: POKE - 16368,0: WAIT - 16984,128,127: POKE - 16368,0: RETURN 3680 POKE - 16304,0: POKE - 16300,0: POKE - 16297,0: P OKE - 16301,0: RETURN #370: curseur, Affente sans @ 389 : Affichage de Io page 1 avec 4 lignes de texte. 390; Initiclisation de la 390 FOR I = 768 TO 781; READ D: POKE I,D: NEXT : POKE table de forme ($E8. $E9). 232,0: POKE 233,93: RETURN : 400 DATA 1,0,4,0.18,63,96,36,45,45,54,54,63,0 m | 28 :489s Forme (corre). Construisez des pyramides,.. 4 partir des paramétres que vous propose NESTOR. 100 TEXT : PRINT CHR® (21): HOME : GOTO 270 110 CX = SX + (H #0,.329:CY = H # 0,66:BX = SK + CH ® O.14):BY = H:AX = SX - (CH # O.45):AY = H # 0.772 RETURN 120 HPLOT SX,SY TO CX,CY TO BX,BY TO AX.AY TO SX,SY T © BX,BY: RETURN 130 SX = S5:SY = 10:H = 115: GOSUB 110: GoSUB 120 140 SX = 290:SY¥ = 5:H = 95: GOSUB 110: GoSsUB 120 150 SX = 145:SY = O:H = - 1 160 H =H + 2: GosuB 110 170 COLOR 2: HPLOT Cx,CY TO BX,BY: HCOLOR= 3: HPLOT BX.BY TO AX,AY TO SX, SY 160 1F H ¢ = 15? THEN 160 190 GOSUB 120 200 VTAB 24: HTAB 10: PRINT "PRESSEZ UNE TOUCHE SVP"; : VTAB 22: PRINT ** 210 CALL - 198: POKE - 16368,0: WAIT - 16964,128,127: POKE - 16384,0 220 VTAB 24: HTAB 1: PRINT "<M>ENU DE DISOUETTE <E>NC ORE. <T>ERMINE": 290 VTAB 19: PRINT : CALL - 196: GET Re: IF RS = "T" THEN TEXT : HOME : END 240 If R® = *M* THEN PRINT + PRINT CHR® ¢4)"RUN MENU" 250 1F RS = *E* THEN 100 260 GOTO 220 ae: 270 POKE 8192,0:A% = *2001<2000.3FFEM D823G": FOR I = 1 TO LEN (AS): POKE 511 + I, ASC ¢ MIDS (AS,I,1) ) + 126: NEXT : POKE 72,0: CALL ~ 144 260 HCOLOR= 3; HGR 290 VTAB 22: INVERSE : HTAB 14: PRINT * LA PYRANIDE » : NORMAL + GOTO 130 18 totole- ment orbitraires, mais correspondont & une pers- pective de base exacte, © 110 ; Poramétres © 130;5X ef SY sont les coordonnées du sommet (55 pts & partir de la gou- che ef 10 4 portir du haut de l'ecron)}. H est lo how- teur. Méme chose oux lignes 149 ot 150. § 270; Ce sysiéme permet d'eftacer Ia poge graphi- que. sans que celo soit visible, HGR produit le méme effet, mais ono le temps de voir fe contenu de I'geran avant l'efface- ment. Quand HGR a déja été uti- lisé, l'effecement peut aussi 6tre obfenu por : HCOLOR=@ ; HPLOTG,G - CALL— 3082 {si on utilise HCOLOR=3, on colore |'écran), Pew ees oSw ESET REweeneEeEs GUY-HACHETTE EN HAUTE RESOLUTION INITIATION ALLUME ou ETEINT 2 Comment connaitre l'état d'un point de |'écran ? Liécran Haute Résolution de |'Apple se compose de | RAPPEL DE NOTIONS CONNUES | 200°" 192 pts (200 x 160 quand il avtorise Foff- chage de 4 lignes de texte), La poge HGR va de ladresse 8192 & 14383 ($2000-S3FFF), la page HGR2 de 16384 4 24575 ($40G0-S5FFF). Choque paint de l'écran (pixel) correspond 4 un octet de la mémoire. Cet octet est lui-méme divisé en B bits, Ainsi, la ligne @ de votre écran HGR est constituée de 7 bits X 40 = 280 bits, points ou pixels. Mais ou sont donc possés les 8° bits ? Chacun d’eux est tout simplement utilisé pour déterminer la couleur des 7 autres, C'est relativement complexe.., et clair 4 la fois. Qu’on en juge ! > oa Quond un bit est 4G, la couleur est le noir. Le point est OU INTERVIENT LA COULEUR | teint et on n'y voit goutte, Quand I] est 41, le point est allumé... mois ¢a ne nous renseigne pas sur {a couleur. II est alors intéressont de consulter un tableau comme celui-ci BS BITa: COLONNE PAIRE COLONNE IMPAIRE POINT a VIOLET VERT ALLUME | 1 BLEU ROUGE = Patience ! on y arrive, Quand deux bits consécutifs (sur une ‘ou EST PASSE LE BLANC 2| mame rangée Norenatale, si vous préférez) sont 4 |, ils sont obligatoirement blancs. Pas d'exception ! Ca vous parait en- fantin ? D'accord. Alors, expliquez-moi comment faire pour obtenir un écran uniformément bleu ? Réponse ¢ || fout que le 8 bit soit 4 |, que chaque bit des colonnes paires soit aussi 4 | et que, par contre, a chaque bit des colonnes impaires soit 4. En binsire, cela nous donne : 1101010) = $D5 Si, avec les m&émes dannées, le B° bit est 4 G, on aura du violet, soit, en binaire G1G101G1 =$55 TABLEAU DES COULEURS ¢ | NOIR so0| goocggga | 4 | NOIR saa | iagg0Ge0 1 | VERT $24) ggigigig | § | ORANGE |sAa| 10101010 2 |vierer | $55) gigigig 6 | BLEU $05} 11910101 3) BLANC [S7F| oIninii 7 | BLANC | $FF) oii Cette instruction fixe la couleur Haute Résolution. $i vous tapez HCOLOR = 4, la HCOLOR couleur choisie est noire of l'adresse $E4 (228) va contenir lo valeur $80 (128), soit 16900009 en binaire. Les 7 bits aftichés par un HPLOT x,y sont nuls ; le point va donc rester noir, On obtiendrait un résultat identique avec HCOLOR = 0. (Suite page 30) TREMPLIN MICRO iJ 100 110 120 130 146 150 160 170 1890 190 200 210 220 230 100 110 120 130 COLOR.DEMO TEXT : HOME : HGR PRINT : VTAB 21: CALL - 958: PRINT "NUMERO DE COULEUR (0-7) -> "3: G ET CHs IF CH® = CHR® (27) THEN TEXT : HOM : END C = VAL (CHS); IF C > 7 THEN 110 RESTORE : FOR I = 0 TO C: READ Ce, HSB: NEXT : HCOLOR= C PRINT : VIAB 23: PRINT Cs* "Hs" "B at; IFC=10RC=30RC=5 0RC= 7 THEN 180 X = O:X1 = 50:P = 0:P1 = 50:Ps = * COLONNES PAIRES*: GOTO 190 X = SO:X1 = 100:P = Si:P1 = 100:Ps =“ COLONNES IMPAIRES" FOR I = 1 TO 30: HPLOT X,.P TO X1.P a 1:X1 = X1 + 1: NEXT IFC <> 0 ANDC <> 3 ANDC <> 4 AND C < > 7 THEN PRINT Pa" *; FOR I = 11 TO 19: HPLOT 1,0 TO I + 100,100: NEXT CALL - 198: GET R$: GOTO 110 DATA NOIR,$00 00000000, VERT ,#2A ,00 101010, VIOLET,$55,01010101,BLANC,® 7F,01111111.NOIR,$80, 10000000, ROUG £,$A4A,10101010,BLEU,$D5,11010101,B LANC .@FF,11111111 COLOR.VAL TEXT : HOME PRINT “VALEUR DES DIFFERENTES COUL == --": PRINT FOR I = 0 TO 7: HCOLOR= I: READ Cs .H8,B®: INVERSE : PRINT I;: NORMAL : PRINT " "C$; TABC 10)H$;" "BS" “; PEEK (228): PRINT : NEXT DATA NOIR,S00,00000000 , VERT ,$2A ,00 101010, VIOLET,$55,01010101,BLANC,$ 7F 01111111, NOIR, $80, 10000000 , ROUG E.SAA, 10101010, BLEU,$D5,11010101,B LANC .@FF.U1111111 FACULTATIES ‘Ces mini-programmes peu- vent vous cider & mieux comprendre le comportement de votre Apple... face 4 la couleur. Notez que le rouge designe improprement l'prange. POKE 228,128 ou POKE 228,0 provoquerait le méme effet. Vous pouvez lire la couleur en cours, a n‘importe quel moment, en mode direct ou dons un programme, en tapant PRINT PEEK (228) ou C = PEEK{288) : PRINT C. Si vous essayer d'écloirer un point avec une couleur ne pouvant pas s'afficher sur la colonne indiquée, vous n‘obtiendrez rien, On comprend facilement, en consultant notre petit tableau qu'il n'est pas possible d'éclai- rer certains points avec certaines couleurs, Vous en aurez la prouve en tapant et en exé- cutant ce court programme : 1@ HCOLOR=1 ; REM VERT 20 HGR 30 HPLOT 2,¢ ; REM COLONNE PAIRE RUN... I ne se passe rien 30 HPLOT 1.0: REM COLONNE IMPAIRE RUN... Le point est offiché EN MODE HGR, UNE COULEUR NE PEUT ETRE REPRODUITE QUE TOUTES LES DEUX COLONNES. Comment, dans ces conditions, obtenir un bon tracé ? Trois solutions : @) Utiliser Je blanc... qui fonctionne partout | Q) Sélectionner la colonne en fonction de la couleur @ Doubler |I'épaisseur du tracé pour toutes les lignes verticales. Ne pas oublier, en tout cas, que |'Apple va outomatiquement transformer en un double point blanc... deux points allumés contigus sur une méme ligne horizontale... quelle que soit leur couleur d'origine. Les effets obtenus sont rarement heureux, notamment quand on trace les fameux camemberts, chers oux omoteurs de graphiques. On croit pouvoir disposer de 8 couleurs... mais avec ses deux noirs et ses deux blancs, notre palette n’en compte déjé plus que 6. En fait, avec les écrans trichromes, on n'uti- lise que les trois couleurs fondamentales (bleu, rouge et jaune) ou leurs complémen- toires (orange, vert et violet), Nous n‘allons pas nous plaindre... d'autant moins que, en Double haute résolution, la palette de |'Apple présente bel et bien 16 couleurs... mais c'es! une autre histoire | ala ae eal La Lal lal halal GUY-HACHETTE NON AUTORISE (2) 120 ; Nettoyage préalable de jo page HGR... puis HGR. 40: ¥1= Sommet de lo forme plus 1 Y¥2 = Base de lo farme 160 : On peut ufiliser une cutre couleur (si vous essayez avec HCOLOR=4, yous modifierez légérement fe contour... sans rien colo- rer, évidemment). 140-250: Si vous Stes curleux, tournez lo page of yous aurez l'explication de ces deux lignes | Peersannagenseernnrsnaennenn TREMPLIN MICRO SUITE COLORER UNE FIGURE la coloration d'un polygone régulier... ou d'un cercle ne présente pos de difficulté particuliére, il n’en va pas de méme pour une figure plus ou moins biscornue. Nous vous proposons ici une solution valable pour colorer une figure isolée obéissant 4 certains critéres (impératifs). * Elle ne doit pas s‘afficher au-delé de la colonne 255 (la routine est évidemment modifiable, mais n'autorise pas de dépassement sous sa forme actuelle). * Aucun de ses points ne doit étre plus haut que le dernier point de la ligne précédente (cela vous parait compliqué, mais les graphiques ci-contre vous donnent un exemple de “bonne” (1) et de “mauvaise” (2) figures). cow < ENT RENE 188 TEXT : HOME : PRINT CHRS (4)*PRE3* 118 GOSUB 238 128 POKE 238,32: CALL 62458: HGR : HCOLOR= 3 138 HPLOT 28,8 TO 120,49 TO 70,58 TO 95,88 TO 255,148 TO 5,148 TO 48,78 TO 28,8 148 X = G:Yl = 1:¥2 = 148 158 POKE 4,¥1: POKE 7,X: POKE 8,0: POKE 25,Y2 148 HCOLOR= 2: REM PAR EXEMPLE 178 CALL 748: CALL - 198 188 VTAB 23: PRINT "<1} MENU DE DISQUETTE (2) LIST <3 > FIN "33 GET RE 198 PRINT : HOME : TEXT : IF R& = "3" THEN END 200 IF R% = "1" THEN PRINT CHR$ (4)"RUN MENU" 218 IF R$ = *2* THEN HOME : LIST : PRINT 228 GOTO 188 234 FOR I = 768 TO 838: READ R: POKE 1,R: NEXT + RETU RN 248 DATA 167,0,133,9,32,55,3, 240 ,4,238,9,238,7, 208,24 5,165,9,248, 248,201 ,5,174,19,32,55,3,208,14,165,4 1166,7,164,8,32,87,244 250 DATA 238,7,208,239,96,149,8,133,7,238,4,165,6,197 125,144,202, 96,165,4,166,7,164,8,32,17,244,177,38 137,48,41,127,96 aa 20 COLOR-HGR 'es ata 240-250 de la page précédente 6368- AS Bo LDA £t86 09 ost un pointeur: il est 6 8 tant que l'on n'a 6382- BS OF STA a9 Pos rencontre un point allumé. 8364- 28 327 4&3 JSR $4337 GOSUB |e sous-programme de lecture d'écran. —— - CARREFOUR a3e7- Fe B4 BEG S030F Si A= @ saut 4 $30F, @369- Eé 8° INC Bag sinon on incrémente les pointeurs 09, ainsi 936B- Eé 67 INC 207 que G7 pour avancer d'une colonne, e3e5- OB F5 BNE $6304 puis retour 4 Ia lecture d'éeron vio $304. a3ar- as 8 LDA $59 | Le painteur 09 est-il a1 ? Si non, encore un S31)- Fe FS BEG $5366 four | 43i13- c? a5 CMP £S05 Est-il plus grand que 5 ? 9315- Ba 123 BCS 632A Si ui saut, 6317- 22 37 62 JSR $agg7 Si non, GOSUB lecture d’écron @31Aa- DB GE BNE $0324 Si A=] on @ rencontré une limite droite de lo forme. ~ HPLOT COLORE — - AS 86 LDA 5 a ont AS O87 Lox pies Si A=@, on vo le colorer grace 4 HPLOT {aprés avoir chargé la bonne adresse dans 8320- Ad OB LDY $08 les 3 registres), 8322- 28 S7 F4 JSR SF4S7 €325-— Es oF INC sa? Plus un. paint, @327- De EE BNE $aai17 Sion n’est pas 4 zéro, encore un four, @32?- 68 RTS = NOUVELLE LIGNE ———__--— @a32a- A? 88 LBA £sae ~) Pointeur 07 remis 4 zéro pour lire une nou- 832C- 85 a7 sta sar _| velle ligne 632E- Eé B6 INC 86-86 Z| : ‘ +1 pour le nombre de lignes et comporaison 633@- AS 86 LDA #86 avec lo valeur-limite contenue dans $19 H332- £3 19 CMP $17 - 8334- 8 Ce Bee $8309 Suite ou fin G334- 668 RTS — - LECTURE D’ECRAN HGR —— 8337- AS 86 LDA $06 9237— Ad, 8? LDX +e? Apres avoir plocé ¥1 (liane 4 lire) dans l’occu- 6336- Ad 98 Lo Ha mulateur et X (colonne) dans les registres X @330- 26 11 F4 JSR BF411 (partie basse) et ¥ (partie haute}, on laisse & 8348- Bi 26 LDA X$26),Y HPOSN ($F411) le soin de foire tout le travail, a342- 25 36 AND $30 A la sortie, 51 A est 4 1, le point est allumd. @3aq- 29 7F AND £S7F S'il est 4 zéro, il es! éteint, 8344- 58 RTS —_ Cette routine est perfectible, d'abord parce qu'elle n'est pas efficace | REMARQUE | dans tous les cas de figures, ensuite parce qu'elle ne sait pas colorer une forme au-deld de Ia 255" colonne. C'est la modification la plus facile (les deux pointeurs existent ; $7 et $8... et il suffit d'incrémenter le second quand le premier dépasse $FF, ce qui ne pose pas de probléme particulier). Néanmoins, telle qu'elle se présente, la routine constitue 4 mon avis, une bonne approche du "colorioge automatique” des formes. A vous de jouer ! Go. 22 GUY-HACHETTE GRAPH par NESTOR C ET utilitaire présente l'avantage (non négligeable) de reprendre des routines et polices de caractéres daja parues dans Tremplin Micro, On peut oussi utiliser les fontes classi- ques de la disquette Apple DOS TOOL KIT (DOS 3.3), Une courte routine en langage machine accélére considérablement Vaffichage du grophe = (texte notamment). Lo premiére reprend le méme principe que “Colorer une figure” (page 21), BASIC et LANGAGE MACHINE UNE NOUVELLE VERSION POUR CHIFFRES EN DENTS DE SCIE VEHTE NEMSUELLE DE GUILIGUILIS EN VALEURS 7/1808 GRAPH se compose de : GRAPH (programme en Basic), GRAPH.LM (routine installée a l'adresse $390), GRAPH.IMP (@ reprendre dans le n°6 de Tremplin Micro, sous le titre "IMP.HGR1"), GRAPH.F [fonte par- tielle de caractéres). Une routine GRAPH.AIDE permettra aux néophytes de récupérer ef reloger automotiquement GRAPH.IMP et GRAPH,F, 105 : LOMEM est fixe a 16984 100 TEXT : HOME : PRINT CHRS (21) pour protéger io page 105 LOMEM: 16384 graphique. 110 DIM VC13),VPC13):DS = CHRS ¢4) ns 125 : ONERR GOTO renvoie 120 au menu. 125 130 135 : 140 145 150 155: 160 Pour accélérer le trace du graphique, on a plocé le s0us-programme de trocé en t6te. Dans la version finale, il est conseillé d'éliminer les lignes de REM, 165 170 180 PRINT D®"BLOAD GRAPH.F.AS1D4C*: REM 7500 PRINT DS"BLOAD GRAPH.LM": PRINT Ds"BLOAD GRAPH.IM P,A?250" ONERR GOTO 595 GOTO 585: REM MENU REM fh ##e kee EEE E ROHNER MH REM # REM HNMHHE HERRERO POKE 8,AC: POKE 254,AD - INT (AD / 256) ¥ 256: PO KE 255, CALL 829: RETURN L = LEN (R9):AD = AD + INT (21 - L / 2) 175 FOR I = 1 TO L:AC = ASC ( MIDS (RS,1,13) - 31 AD = AD + 1: GOSUB 160: NEXT I: RETURN 185 RS = TI$:AD = 8191: GOSUB 170 LES CHIFFRES ET LETTRES + INT CAD / 256) TREMPLIN MICRO 23 ka iaelaialaleel GRAPH (BASIC) SUITE 190 195 200 205 210 215 220 228 | 230 235 240 245 250 255 260 265 270 275 280 285 290 295 300 305. 310 315 320 325 330 335 340 345 350 355 360 365 370 375 FOR I = 1 TO 12:AC = ASC ¢ MIDS ¢" JFMAMJJASOND" .1 .1)) - S1:AD = 8785 + CI *# 3,125): GOSUB 160: NEX T R= O:DX = 1:CAS = *831 985758891 90978359861 588719 12783998655" IF PG / DX > 999 THEN DX = DX * 10: GOTO 200 FOR I = 1 TO 40 STEP 4 AB = VAL t MIDS (CAS,1.4)) CH = INT (PG - (R ® (PG / 9))):CH = INT (CH / DX) CHS = STR® (CH):CH® = LEFTS ((CH$ + * "3,32:R = Rt FOR K = 1 TO 3:AC = ASC ( MIDS CCH.K,199 - 31:AD | = AB + K: GOSUB 160: NEXT K: NEXT I RS = "EN VALEURS": IF DX = 1 THEN R$ = R$ + “ REE LLES": GOTO 240 Re = RS + "/* + STR (DX) AD = 9039: GOSUB 170: RETURN REM 6S Rar IRE AE REM * TRACE DU GRAPHIQUE * REM HHREH RHEE IF NOT ND THEN R$ = * SAISIR LES DONNEES *: GOTO 365 IF NOT M THEN 285 IF M THEN POKE 230,32: CALL 62450 POKE 49236,0: POKE 49234.0: POKE 49239,0: POKE 49 232,0: HCOLOR= 3 IF NOT M THEN 355 HPLOT 24.10 TO 24,155 TO 279,155 TO 279,10 TO 24, 10 IM = 30: HPLOT IM,156 TO IM.159:D = 1 FOR I = 52 TO 279 STEP 22:D =D + 1 A = 154 - VECD):Al = 154 - VFKD - 1) IF Al = 155 THEN Al = 154 IF A = 155 THEN A = 154 HCOLOR= 3: HPLOT 1,158 TO 1,156 HCOLOR= IM = T: NEXT HCOLOR= 2: CALL 768 FOR I = 26 TO 154 STEP 16: HPLOT 24,1 TO 278,1: N EXT NG = 1: GOSUB 185 M= 0: CALL - 198: GET Rs PRINT : TEXT : GOTO 595 VTAB 21: CALL - 958: CALL - 198: HTAB 11: INVERSE : PRINT RS: NORMAL : FOR | = 1 TO 2000: NEXT: G OTO 595 2: HPLOT IM.A1 TO 1,A REM ANMHRHR HRS RRR RRR HR 24 168 ; POKE 8, AC indique le n® de caractére & la routine en langoge machine. Vodresse-écran ou dalt se faire Volfichoge est alle méme poquée en 254 ef 255 ($FE et SFF). toujours & intention de la routine en LM. 165 : La routine L.M. com- mence cette adresse, 190: On peut imaginer de remplacer Jes Initiales des mois par autre chose... 195 : Les odresses des lignes de lo page HGR sont conte- nues dons lo variable CAS. ‘On aurait pu les mettre en DATA, De 185 4 240 : affichage de tout ce qui est texte. 270: Quand ND=Q, pos de données en mémoire. 280 : EHacement de lo page HGR. 285 : Atfichage de la page sons les 4 lignes de texte... et sons offacement. Suivez pas & pas le trace du grophique. Ce n'est pas Irés compliqué... et de longues explications poraissent superilues. 340 + CALL 768 envoie & la routine qui va colorar |e gro- phique {avec HCOLOR =2). Nous avons supprimé le tracé {en blanc) des dents de scie, mals il peut étre retabli - 339) HPLOTIM,A1 TOLA (Supprimer HCOLOR = 2) Seeereewennenseessesunorenes GUY-HACHETTE ESSA See SOK TEE ERATE EU LESSEE see Se PESTS STN SEES S RUST ST RAN AN SSRN ES STS LANA ANT ener eR ERD SREEEEEE En cours de saisie, il est pos- sibla de revenir ou menu en fopant un ?. Pour carriger lo donnée précédente, toper I *. Silo valeur est bonne, se con- tenter d'un RETURN. le programme accepte les valeurs @, mais vous vous planterez proprement s'il n'y @ pas ou moins une valeur supérieure a0. 590; Si le titre est bon, un simple RETURN suffira, Attention | on ne contrdle pas la longueur de ce fameux titre. Ne dépossez pos 39 coroctéres... ou modifiez le programme : (531 IF LEN(TI$) #39 THEN 539). Le signe §, aprés INPUT, indi- que la présence d’um CTRL- G... invisible, Ne tapez pas §, mais CTRL-G. 585-590 : Comptez bien vos espaces,.. sinon gare aux dégdts ! 598 : L'utilisation des POKES evite HTAB_ ‘aneseseueensueeeoenevesuee TREMPLIN MICRO 380 385 390 39S 400 405 410 415 420 425 430 435 440 445 450 455, 460 465 470 475 480 490 495 500 505 510 515 520 525 530 535 540 545 550 §55 560 565 570 575 580 585 590 595 600 REM * SAISIE DES DONNEES « REM FeO HH HERMAN EER TEXT : HOME :I = 0:4 = 0 T=l4+14 Va=" "; IP [ > 9 THEN Ve = "* VIAB 3 + I: PRINT VSI", VALEUR -> *VCI}; HTAB 1S: INPUT *";:Ve IF V$ = *?* THEN 450 IF VS = “#" AND I > | THEN I = I ~ 2: GOTO 400 IF VS < > *" THEN VI) = VAL (Vs) VTAB 3 + I: HTAB 15: PRINT ¥¢1> M=l IF | < 12 THEN 400 PP = VC1):PG = PP FOR I = 1 TO 12 IF VCI> > PG THEN PG = WI) IF V¢1) < PP THEN PP = VC) NEXT IF PG < 144 THEN CO = 144 / PG:P = 1 IF PG > = 144 THEN CO = PG / 144:P = 2 FOR I = 1 TO 12 ON P GOTO 500,505 VFCI) = INT (VOI) * COd: GOTO 515 IF VeI> = 0 THEN VF(1)=6:G60T0 515 VFC1) = INT (¥VCI) ¥ CO) NEXT :ND = 1 IF LECT THEN LECT = 0: GOTO 595 VTAB 20: INVERSE : PRINT "TITRE:": NORMAL : PRINT : VTAB 22: PRINT Tl@;: HTAB 1: INPUT “S";RS: IF R$ < > °* THEN TIS = Ro VTAB 20: CALL — 958: PRINT TIS VTAB 22: PRINT "<1> ENREGISTRER LES DONNEES <d> N GN *:: CALL - 198: GET Rs PRINT : IF R@& = "0" THEN 595 IF R® < > *1" THEN 540 GOTO 695 REM SHR RR w Hee He ae REM * MENU * REM eae RHO Ts =": i"3TMS = * 4“ EN vu ri MS = "1, LECTURE DE FICHIER 2, SAISTE/CORRECTI ON 3. VOIR LE GRAPHIQUE APHLQUE 5, FIN DE PROGRAMME* HOME : POKE 32,10: POKE 33.20: VTAB S: INVERSE : PRINT TS#TMST$: NORMAL : POKE 32,8: POKE 33,32: PR INT FOR I = 1 TO LEN (M$) STEP 25: PRINT MIDS (MS,1,2 —_ 4. IMPRIMER LE GR 25 GRAPH (BASIC) 5): PRINT : NEXT 605 POKE 32,0: POKE 33,40 610 PRINT : VTAB 21: HTAB 11: INVERSE : PRINT “OPTION CHOISIE: “s: NORMAL : HTAB 27: CALL - 198: P RINT “> <";: HTAB 28: GET R& 615 R = ASC (R®) - 48: IF R < 1 OR R > 5S THEN 610 620 PRINT RS 625 ON R GOTO 750,395,270,655,790 630 : 635 REM MRM HEHOHEH ANAM ee 640 REM + IMPPESSTON DU GRAPHIGUE + 645 REM thn Ohare hn tenet 650 : 655 IF NOT NG THEN RS = “ OPTION GRAPH S,V.P *: GOTO 365 660 POKE 6,1: POKE 7 1: POKE 253,0: POKE 254.23 665 POKE 49236,0: POKE 49234,0: POKE 49239,0: POKE 49 232,0% CALL 7250: HOME : TEXT : GOTO 595 670 : 675 REM #HeNHNH EHH | 680 REM * ECRITURE DU FICHIER . BAS REM WON N eR Ree eH eee 690 : 695 VIAB 20: CALL - 958: PRINT “TITRE -> GRAPHO (PA R DEFAUT)";: HTAB 10: INPUT ““;Fa: IF F% > CHRS ¢ 47) AND FS < CHR® (58) THEN Fs = "GRAPH" + FS 700 IF Ps = "?" THEN HOME : PRINT DS“CATALOG": PRINT : PRINT : PRINT : GOTO 695 70S IF Fa = “* THEN FS = "GRAPHO" 710 VTAB 20: HTAB 10: INVERSE : PRINT Fs: NORMAL 715 IF LECT THEN RETURN 720 PRINT DS*OPEN"*FS: PRINT DS*WRITE"FS: PRINT TIs: F OR I = 1 TO 12: PRINT V¢I>: MEXT : PRINT D#*CLOSE “Fe: GOTO 585 SUITE et FIN 725: 730 REM C44 eee HHO HMM eH end He 735 REM « LECTURE D’UN FICHIER & 740 REM HheeAN AHA EE HER 745: 750 HOME :LECT = 1: GOSUB 695 755 PRINT DS*OPEN*FS: PRINT D$"READ"FS: INPUT TI$: FO RI = 1 TO 12: INPUT VC): NEXT : PRINT D@*CLOSE" Fs 760 M = 1; GOTO 450 765 : T70 REM HHEHAHA HERMON RHR HR RRR R EE 775 REM * FIN DE PROGRAMME i) 780 REM #¥HHNHSHERN ENMU 785 t 790 TEXT : HOME 795 VTAB 20: PRINT *SGOTOL0000": VTAB 19: END 10000 POKE 51,0: GOTO S95 4 24 Roppelons que lo routine d'impression doit tre reprise dons la n°6 de Tremplin Micro (IMP.HGRI). Utilisez notre programme GRAPH.AIDE pour la reloger (page 28). Ce sera plus facile car il y a quelques adresses & modifier. Cette routine ne fonctionne quiavec les imprimantes Apple, y compris ImageWri- ter Il (vair configuration des DIPS dons T.M. 6). 695-715 : Trome commun pour écriture et lecture du fichier. Le ? renvoie au cotalague de disquette. Les fichiers = s‘appellent “GRAPHG,1,2, ete.”. Pour obtenir GRAPHG RETURN Pour un autre numéro, taper saulament le numéro + RETURN En cas de pépin, GOTO 10000 vous renverra ou menu ProaDOS Ne pas oublier — _ de tronsformer CATALOG en CAT. De plus, modifier ainsi lo ligne 665 : Entre CALL 7250 et HOME, insérer : NOTRACE : PRINT : Seneneeseusenerveesenesiewe ‘(GUY-HACHETTE Aprés avoir tapé les codes de cette courte routine, vous e la sauverez par un : ea eee BSAVE GRAPH.AM, A$300, L$79 e30ea- Ag IC LDA £$1C P - a302- e5 a? STA 437 ‘| Position horizontale {-2) du premier point 4 lire 6364- AP ae LDA £308 5 . a3B6- a5 es STA $08 a 0 dons mémoire 08 (position harizontale, partie haute) O386- AP 9B LDA £58 ‘ ; ri 8380- BS Bé Sta $06 ‘| Limite verticale (+1) de lecture {on lira de 155 a ...) 836Cc- E4 8? INC $87 ~ +2 pour la partie basse 830E- E4é 87 INC $07 J 8310- 06 a2 BNE 8314 Si on n'a pas obtenu @ (SFE+1-+1), saut @312- E4é ee INC £a8 Sinon, plus | pour partie haute 8314- AS 67 LDA $07 @7 dans l'aceumulateur 8316- CF {2 CMP £12 Est-on & $12 7 a318- Da a5 BNE $O31F Non ; on continue 831A- AS as LOA $03 ‘Oui ; $8 est-il 6 1 ($112=274, limite horizontole de lecture} 7 @31C- Fe Bl BEQ #O31F 51 $8 est G zéro, on cantinue @31E- 46 RTS Retour ou Basic @31F- c4 $H6 aT 6321- AS an A $046 Compte 4 rebours vertical et mémoire $4 dans A 9323- AS BP LDx $67 “| % et ¥ chargés avec l'adresse (bosse et haute) du g325- Ad 86 LOY $68 | point é lire = @ 11 Fa R $F4 aT td = 26 pee “wed ‘Y HPOSN travaille pour nous. Sa réponse sera dans a32c— 25 30 AND $36 pensar etn On aura G si le point est éteint et | @32E- 2? 7F AND £S7F ad 6338- Fe ED BEQ 4#831F 51 A=, retour 4 $31F pour remonter d'une ligne @332- AS 87 LDA = $87 “| Partie basse abscisse dans A 6334- Ad OB LDX $68 Partie haute abscisse dons X a334- AB FA Loy £S7A Ordonnée dans ¥ a338- 28 3A FS JSR $F53A _| HUN trace la ligne (du haut, of l'on dtall, |usquien bas) #33B- 4c @8 G3 JMP e308 ET ON RECOMMENCE | — ECRITURE HGR 833E- AP 44 LDA £44 e34a— B35 84 STA $66 Adresse de base de la police de caractéres @342- A? 1B LBA £$1D ($104 — 8 = $1D44) a344- 85 87 STA $67 = e346- a4 68 LDY sag Numéro du caractére dans le registre ¥ 6348- 138 Cle Retenue 4 ovant l'addition a349- AS #6 LDA $06 Adresse de bose (partie basse) dans A 934B8- 4? 88 adc £$08 +8 (nombre d'octets por coractére) @34D- as a6 STA BH6 Nouvelle valeur dans mémoire $6 @34F- AS @? LBA $67 Adresse de base (partie haute) dans A 8351- 4° 98 ADC £$008 ] On lui ajoute lo retenue éventuelle et on lo remet 9333- 85 a7 STA $07 dans $7 @355- 86 DEY y=Y-1 8356- DB Fi BNE Sa347 Si ¥ est different de G, GOTO 349 63g58- Bl a6 LDA ($04) ,v Lecture-écriture (adresse coractare + 0 — odresse- a354—- Gl FE STA (SFE) ,Y¥ écran + 0) anil SPS RSE PEE EEE SSUES ETE ee EERO ELL Ee SERIE Es PREC ESE SELU PETER ESE OEE oD Sewer wre m averse see N UCN emem eR Tere TES TREMPLIN MICRO 27 eugusensenqeoesheeesnseseneeneraersuvenneswssoessSoussnnnEsannensnneseeeeUTeTARETSRENEEETesesuTeeTEAEES e35c- Az oo LDx £308 % 80 pour écriture adressoge indirect 435E- cs INY ¥=¥+1 @35F— a5 FF LDA FF Adresse-écran (partie haute) dans A pour lui ajouter 83461- 67 4 ADC £204 $4.., ce qui correspond & + 1024 ($400), puis remise @343- 85 FF STA SFF dans $FF. 8345- Bl @6 LDA ($66) ,7 Lecture adresse caroctére + ¥ ef décriture adresse- @367- 81 ~FE ST& ($FE,x) _| écran +6 (x=) e367- C8 B7 cPyY £307 | svn 936B- De FI BNE $035E | Si ¥ n’est pos 4 $7, on fait encore un tour @340- 46 RTS Retour au BASIC a Si vous étes rompu 4 la pratique du Basic, ne PH. DE tapez pas ce programme. Une lecture atten- SS S25 = ee tive vous indiquera les diverses opérations 6 effectuer pour mettre rapidement au point | une fonte spéciale (GRAPH.F) et une routine d’impression (GRAPH.IMP)... Par | contre, si vous manquez d'expérience, utilisez GRAPH.AIDE ! 198 TEXT : PRINT CHRS (21):0% = CHR® (4); HOME 185 GOSUB 285 118 PRINT "PLACEZ DISKETTE DDS TODL KIT DANS VOTRE SLOT 1, PUIS FRAPPEZ UN 5 IMPLE ¢RETURN)" 115 GOSUB 196;F% = "FLOW.SET" fy FLOW.SET est, a notre ovis, lo police TOOLKIT Ia plus oppropriée. Vous al sussi utiliser FAIRE.FT (Tremplin Micro a°1 128 ONERR GOTO 195 125 PRINT DS"BLOAD *F$*,A7508" 138 GOSUB 198 135 PRINT D$*BSAVE GRAPH.F ,A75@6,L512° 148 HOME : PRINT *INSERE2 LA DISQUETTE <TREMPLIN MICRO 4) (OU CELLE SUR LAGU ELLE FIGURE UNE COPIE DU PROGRAMME <IMP.HGR1)) DANS LE SLOT 1" 145 GOSUB 198 158 FS = *IMP.HGRI* 155 PRINT D$*BLOAD "FS" ,A7258" 168 GOSUB 198 165 POKE 7432,123: POKE 7493,26: POKE 7292,24; POKE 7293,27: POKE 7305,48: P OKE 73¢4,29 170 PRINT D$*BSAVE GRAPH. IMP ,A7259,L230" 175 VTAB 22: HTAB 6: INVERSE : PRINT "VOS DEUX ROUTINESSONT AL) POINT": NORMA L + END 190 PRINT : YTAB 22: PRINT * RETURN S.V.P, *73 GET R$: IF R® ¢ > CHR $ (13) THEN 188 185 PRINT : RETURN 198 HOME : VTAB 12: PRINT “PLACE2 MAINTENANT VOTRE DISQUETTE GRAPH DANS LE S LOT 1, PUIS PRESSEZ <RETURN)*: GOSUB 180: PRINT : RETURN 195 PRINT : HOME : VTAB 12: IF PEEK (222) = 4 THEN PRINT “OU CE N’EST PAS LA BONNE DISQUETTE... OUVOUS NE POSSEDEZ PAS <"F$")"; GOTO 318 288 PRINT “IL Y A UNE ERREUR QUELQUE PART: CHERCHEZ™ 285 VTAB 18: PRINT " SI VOUS DESIREZ UTILISER LES FONTES: <FAIRE.FI) ou ¢F AIRE.F2> DU NUMERO 1 DE TREMPLIN REMPLACE2 (FLOW.SET), LIGNE 115 PA R <FAIRE.F1)> ou (FAIRE.F2)." 218 VIAB 22; HTAB é: PRINT "<1) CONTINUER (2) CORRIGER --) ";: GET R$: PRINT : IF R$ = "i" THEN HOME : RETURN 215 IF R$ ¢ > "2* THEN 218 . 28 GUY-HACHETTE Votre bibliotheque INFORMATIQUE * LA SECURITE INFORMATIQUE (Dunod) Tow! chel d'entreprise, utilisateur de l'infarmatique, devrait lire lowvrege de Jean-Marc Lamére... ef en conseiller une lecture plus atfentive encore ou responsable du service intéressé, Les risques existent, Ceux dont on parle, mais aussi les quires, moins connus, mals copables de semer la pagaille dans une enireprise, On salt deja quils codtent, chaque année, plusieurs milliords de francs et son! une des causes de lo disporitlon de nombreuses entre- prises. L'auleur ne se contente pos dénumérer les risques, mais pro- pose une méthode pratique d'évo- lation et de réduction de ces ris- ques, A lire... ai-je écrit plus hout, mais également & dtudier, puis a mottre en ceuvre. E PIRAI AMATIQUE L'INFO * LE PIRATE DE LINFORMATI- QUE (Cedie/Nathan) Nows sommes tous des victimes potentielles du piratage de linfor- matique. Le" cracker”, capable, 4 \éans, de percer les secrets des ordinoteurs les mieux protégés... membre du "Cénocle", fésequ regroupant les meilleurs pirates, nous le démontre dans un livre qui ost en méme temps un guide de la sécurité informatique. Vous avez bien compris < Bill Lan- dreth, appréhendé por le F.8,1, et mis en accusation, yous livre aujourd'hui ses secrets, Comment se proteger contre ces modernes “casseurs de systomes” que sont les pirates de |'informati- que ? Comment décavroger leurs incursions indesirobles... Com- ment les empécher d'ogir ou encore ebtenir leur appul ? Si vous désirez en savoir plus, ou encore proteger votre serveur, lisexz ce livre gussi captivant qu'un roman ! INTELLIGENCE ARTIFICIELLE ET SYSTEMES EXPERTS © INTELLIGENCE ARTIFICIELLE ET SYSTEMES EXPERTS (Cedic,‘Nathan) On porle beoucoup de intelli. gence ortificielle... mais sans trop savoir ob en sont les recherches, ef an gual consiste exactement cele nouvelle revolution — in- formatique Cest proboblemeni, octuellement en tout can, l'un des secteurs les plus attroctifs, sinan les plus pro- metteurs, de linformotique de par Clément RENARD demain. Qu'est-ce qu'un systeme expert ? Quels sont Jes grands principes déterminant lo construc. tlon ef exploitation d'un tel systame ? Vous le sourez aprés avoir lu ce manuel d'Adrien Les- cort. Je suis méme perswode que vous éprouverer l'envie irrésistible décrira, sur votre Apple. un pra- gromme reposant sur les grands principes régissant intelligence artificielle, * SYSTEME —D'EXPLOITATION DES /8M PC (Dunod) Demain,.. ou apres-demoin, votre Apple nouvelle maniare vous per- metira sans doute de franchir le fossé qui fe sépare actuellement du stondard IBM, Gageons que vous gimerez olors mieux connalire lo systeme dexploitation du jeune frére [ilo ad fres wite !). Wl n'est d’ail- jours pos tellement dittérent de notre Prepos., G, Fodor, DB. Bonifas et G. Tanguy vous gident ici, avec un quide clair et agréoble o compulser, & com- prendre les differences entre DOS 1.4.2.0, 3.0, 2.1 /PC-1X ef XENIX Tout un programme | WPI wenice TREMPLIN MICRO 29 DATA-GENERATOR N OUS avons déja publié (n°3 de Tremplin Micro), un programme générant des '’ Jignes DATA ou POKES, mais différent de celui de Nestor, puisqu’il partait de don- nées existantes, déja installées en mémoire par une routine en assembleur. NESTOR DATA-GENERATOR permet de créer des lignes DATA au gré de sa fantaisie. Chaque ligne peut @tre facilement corrigée (voire rema- niée), aussi longtemps qu'elle n’a pas été validée par un CTRL-F. Point fort ; quand on désire rentrer, sous forme décimale, une donnée que lon a en hexa, il suffit de taper un CTRL-G... puis la valeur hexa ; le programme fait le reste. C'est amusant et pratique a la fois. Autre point fort : il est souvent nécessaire d'inclure un espace au début d'une donnée alphanumérique. Lorsque celui-ci est inclus entre une virgule et la donnée, pas de pro- blame. Par contre, s'il est en téte d'une ligne DATA, immédiatement aprés le mot "DATA", il ne sera pris en compte qu’en utilisant les guillemets. Exemple : 100 DATA ” TOTO", LILI... Bien | avec DATA.GENERATOR, tapez votre espace... ot laissez faire votre utilitaire ! PRINCIPALES VARIABLES de DATA.GENERATOR 100 TEXT : PRINT CHR® (21): PRINT : € LEAR : GOTO 685 105 : 110 REM 4M eee Serer On eH 115 REM « ROUTINE DE SAISIE “ A Nombre de lignes de DATA 120 REM #2 kexHERHH NH DS Le CHRS (4) bien connu To. # DAS Renferme le mot "DATA" 130 HOME :Ss = CHRS (44):ES = CHRS (3 " fe 2):DAS = “DATA":G® = CHR® (34):Ds ES Comme “espace” : CHRS (32) = CHRS (4) Gs Comme “guillemets” : CHRS (34) 135 HTAB 1: VTAB 1: CALL - 198: INPUT H Pour fier HTAB (correction) "NUMERO DE LIGNE ";Ne: IF N& = " “ THEN N# = "1000" HE Paints i -décimal ‘ointeur pour conversion Hexa decimal 140 N= VAL (NS): IFN <1 ORN > 640 ' Nombre de données par ligne 00 THEN 135 L$ Renterme lo donnée en cours de saisie 145 HTAB 1: VTAB 1: CALL - 958: INVER t Longueur de Iq ligne en cours SE : PRINT "LIGNE * + NS: NORMAL tl l 150 N=N-1 aude U8 + SF a 155 N= N+ i:NS = STR® (NIA =A + 1 LB Longueur de base (n° de ligne + "DATA”) : HTAB 15: VTAB 1: CALL - 668: IN us (lignes crédes) VERSE : PRINT N: NORMAL +Li = O:L Mc Pointeur pour écran de commandes B = LEN (NS) + 4 NSetN Numéro de ligne R$etR% Choque coractére saisi par GET 8$ Est lo virgule : CHR$ (44) 30 160 LSA) = LSCA) + N® + DAS: IF S = 1 THEN § = 0: GOTO 525 165 HTAB 1: VIAB 3: PRINT : CALL - 86 8:1 = 1 + 1: PRINT Is: PRINT * > GUY-HACHETTE 170 175 180 185 190 195, 200 205 210 215 220 225 230 235 240 245 250 260 265 270 280 285 300 + 310 315 320 325 330 335 : “::PH = LEN ¢ STRS (12) 4 4 HTAB PH: VIAB 4: PRINT Ls:: GET R $:R% = ASC (RS) IF R% = 7 AND NOT HE AND L# = ** THEN INVERSE :HE = 1: CALL - 198: GOTO 170 IF NOT HE THEN 190 IF R%& = 13 OR LEN (L$) = 4 THEN N ORMAL : GOSUB 465:R% = 13:HE = 0 IF R% = 27 THEN GOSUB 725:MC = 1 IF G AND aes 13 so R& = 44) THE LS + G8:G = G AND I= 1 AND Ri 32 TH GS + ES:G = 1: GOTO 170 31 AND R& < 127 THEN LS = : GOTO 170 “" THEN 225 13 THEN 520 IF R& = 127 OR R& = 8 THEN LS = IDS (L$,1, LEN ¢L#) - 1): CALL - 1008: PRINT E#: GOTO 170 IF R& = 4 AND L > LB THEN 280 IF Ri = 3 AND I < > 1 THEN 360 IF Ls < > *" OR L < = LB THEN 170 IF R& = 6 THEN 510 IF R& = 19 THEN 515 GOTO 170 ~ ~ —=z Pe es ns oa @ e B+3S5 *3; ra hob ht aoe 2 255 : REM #e#ee ee RHEE REM * DEL DERNIERE DONNEE *# REM HeRHWHHRHA WHER H eH 275 FOR K = L- 170 1 STEP - 1: IF M TDS CLSCA),K,1) < > S® THEN NEXT IF K < LB THEN K = LB + 1 LSCA) = LEFT® (LSCA).K - 13: IF L EN (L9CA)) > LB THEN L@¢A) = Laca d+ 38 I =I = 2:L = LEN ¢L8¢A))+ GOTO 3 “3 REM # IF RIGHTS (L8CA),1) « > SS AND LE N CLS#CA)) > LB THEN L@¢A) = La¢Ad + 58 L = LEN (LSCA)):X = 0: FOR K = 1 TO L: IF MIDS (LS¢A).K,1) = S® TH EN X=X+1 NEXT :1 =X GOTO 535 NOMBRE DE DONNEES 7 = * 4 365 370 375 380 385 390 395 400 405 410 415 420 430 435 PEM #94#4HEHSH AHA MEN REM * CORRECT IGN * REM #000 ee RS HORE HSH Hee He Le i: MC = PRINT : VITAB 18: PRINT LOCA* "3: L = LEN (LStA)) PRINT : VTAB 18: HTAB H: GET R®:R % = ASC (RS) IF R% < > 127 THEN 400 IF H ¢ = LB + 1 THEN H = GOTO 370 IF H> L + 1 THEN 360 IF H=£ + 1 THENL = L - t:Lecay = LEFTS (L8¢A),L): GOTO 360 IF MC THEN CALL - 958: LB + t: LStA) = LEFT® ¢(LSCA),H - 2) + RIG HTS CLSCA).L + 1 - Ho:H = H = Lt GOTO 365 IF R& = 13 THEN L8 = "": GOTO 315 IF R& = 8 AND H > Ll THEN H = H - i: GOTO 370 IF RX = 21 AND H < L +1 THEN H = H+ 1: GOTO 370 IF R&S = 9 AND L > = H THEN LS¢A) = LEFTS (LS(A),H = 1) +" " + RIG HTS CL9¢A),L + 1 = H): GOTO 365 IF R& < 32 OR R& > 126 THEN 370 IF H > = L THEN L(A) = Leta) +R $:L =L + 1: GOTO 360 LStA) = LEFTS (LSCA)},H - 1) + RS + RIGHTS (LS¢A).L - Hi:H = H+ 1: GOTO 365 GOTO 370 440 3 445 450 455 REM ROH OW HRM M HM REM * HEXA EN DECIMAL ” REM He eda 460: 465 470 475 480 LS = RIGHTS ¢c"O00" + L€),49:P = O:¥ = 0 FOR K = 4 TO 1 STEP - 1:X = ASC ¢ MIDS (LS,K,1)) - 48: IF X > 9 TH ENX=X-7 Y=Y¥+( #16 ° PrP =P + 1: N EXT L$ = STRS (Y}: RETURN 485 : 490 495 500 REM WN HORNER SHEEN REM * DONNEE/LIGNE SUIVANTE « REM se s3h ee HE HH aE 505 : —_ TREMPLIN MICRO a1 DATA-GENERATOR fin) 510 LacA) = LEFTS CL8tA2,L - 19: GOTO 580 515 LStA) = LEFTS (LSC(A),L - 132] = 0 : GOTO 155 520 Li = LEN (LS + S@): IF Li + PH > 40 THEN VTAB 4: CALL - 958 525 IF Li + L > 239 THEN LScA) = LEFT $ (LS(A),L - 13:8 = 1:1 = 0: GOTO 155 530 LSCA) = LSCA) + Le + Stile = ** 535 IF MC = 1 THEN MC = 0: PRINT +: YT AB 6: CALL - 958 540 PRINT : VTAB 18: PRINT LSCA);: CA LL - 958:L = LEN (LSCA)): PRINT 545 VTAB 1: HTAB 37: CALL - 868: INVE RSE : PRINT L: NORMAL 550 GOTO 165 555 : 560 565 570 75 580 REM #4240 Sede EM He REM ® FICHIER EXEC + REM #HAeHHR SRNR EHS HH HOME : FOR I = 1 TO A: PRINT Lac] ?: NEXT PRINT DS"OPEN F*: PRINT DS*WRITE F*: FOR I = 1 TO A: PRINT L@cI>: NEXT + PRINT DS*CLOSE F* 585 590 595 600 605 610 615 REM ReeeRHSEH SHEE SHON MeN REM * MICRO MENU * PEM HR OM RENEE HOME : INVERSE : FOR | = 10 TO 31 + VTAB 10: HTAB I: PRINT " *: VTA B 20: HTAB I: PRINT * *: NEXT FOR 1 = 11 TO 19: VTAB I: HTAB 10 t PRINT * *:: HTAB 31: PRINT " "+ NEXT VTAB 13: HTAB 12: PRINT 1+ VTAB 1 5: HTAB 12; PRINT 2: VTAB 17: HTA B 12: PRINT 3: NORMAL VTAB 13; HTAB 14: PRINT “EXEC-EFF ACEMENT*’: VTAB 15: HTAB 14: PRINT “AUTRE SAISIE*: VTAB 17; HTAB 14 : PRINT "FIN DE PROGRAMME” 635 VTAB 22: HTAB 10: PRINT “VOTRE CH OIX S.V.P. "i: GET Rs PRINT :R = VAL (RS): N 745 620 625 630 640 IF R = 1 THE 645 650 655 665 670 675 IF R = 2 THEN 100 IF R < > 3 THEN 635 HOME : END REM # He OHM HHEN NR REM * EXPLICATION * REM SSR e eH eR ESSE ER 680 : 690 695 700 705 710 715 720 725 730 735 740 745 HOME + HTAB 7: INVERSE : PRINT “ GENERATEUR DE LIGNES DATA ": NORM AL + PRINT PRINT : PRINT "CE PROGRAMME PERME T DE GENERER AUTANT DELIGNES DE 0 ATA GU‘OQN LE DESIRE... POURVUQU’O N NE DEPASSE PAS DIM (50>* PRINT : PRINT “<RETURN> VALIDE CH AQUE DONNER - POUR UNECORRECTION, TAPER CTRL-C, PUIS UTILISER LES TOUCHES <DEL> POUR SUPPRIMER ET C TRL-I AVANT D’INSERER UN CARACTER ER PRINT : PRINT “POUR EFFACER LA DE RNIERE DONNEE: CTRL-D* PRINT ; PRINT "LES LIGNES VONT DE 1 EN 1 CDEPUIS LE NU-MERO DONNE AU DEPART). PASSAGE AUTOMATI-QUE A LA LIGNE SUIVANTE DES QUE L‘ON AT-TEINT 239 CARACTERES." PRINT : PRINT *<ESC> PERMET D‘AFP ICHER UN RESUME DU TA-BLEAU DES D IFFERENTES COMMANDES." POKE - 16368,0: WAIT — 16384,128, 127: POKE - 16368,0: PRINT PRINT + GOTO 130 PRINT : VTAB 10: PRINT "SAISIE: D EL et <- effacent un CARACTERE -- CTRL-D efface DERNIERE DO NNEE CTRL-S = ligne suivante et C TRL-F = FIN CTRL-C = correction d ans |a |igne DATA RETURN = valid ation de la DONNEE saisie" PRINT : PRINT “CORRECTION: DEL ef face - TAB ou CTRL I ajoutent un espace — RETURN pour terminer.* PRINT : PRINT “CONVERTIR: Taper C TRL-G, puis la valeur HEXA (=<SFFFF)." RETURN HOME : HTAB 2: VTAB 23: PRINT *EX EC F*: HTAB 1: VIAB 22: DEL 100,7 45 32 GUY-HACHETTE | PETITS UTILITAIRES EXE Clément RENARD Ou CATALOG devient CAT ... et autres corrections mineures OUS venez d’écrire (ou de recopier) un programme fonctionnant sous DOS 3.3, et vous avez converti pour qu’il s'accommode du systéme ProDOS. Aucun probléme, bien sir, si ce n'est que Ja commande CATALOG, lancée en 49 colonnes, ne sera pas du meilleur effet... sauf si vous uti- lisez la routine CAT.ALOG pour transformer instantanément les CATALOG de votre programme Basic en autant de CAT. \| peut aussi y avoir incompatibilité entre certaines adresses du DOS et les adresses correspondan- tes de ProDOS, En voulez-vous un exemple ? Aprés avoir chargé un programme en langage machine, on trouve l'adresse du premier octet en $AA72-AA73 (43634-43635) et lo longueur du programme en $AA60 -AA6] (49616-43617) alors que, sous ProDOS, ces adresses deviennent respectivement : $BEB9-BEBA (48825-48826) et $BECS-BECY (48840-48841). Pour remplacer (toujours instantanément) une valeur par une autre (de méme longueur), vous utili- serez REC.REM (comme RECherches-REMplacer !). Tapez donc ces deux micro-programmes, puis testez-les, en respectant les indications données 4 la suite de chacun d'eux, lls ont des ambitions limitées... mais ont le merite de "marcher”’.., sans délal ! CAT.ALOG ASSEMBLAGE cans muRANe ai mcs {) Sea yor S Si vous ne possédez 2% * pos d'assembleur, 3 INDEXB EGU 306 ; Adressage indexé (AdrBas) seule cette partie 4 INDEXH EOU $07 ? Idem (AdrHaute? . vous concerne, sa ors #300 —~ on 2 | 7 * * 8 PROG EQU * 0300: AS 67 9 LDA 967 : Début du programme (Ap)... O302: 86 06 10 STA INDEXB 0304: AS 68 ll LDA $68 : et Adresse haute 0306: 85 07 12 STA INDEXH 0308: AS 07 13° BCLS LDA INDEXH ; Adresse haute cans A.,. O30A: Ch 6A 14 CMP $6A ; comparée a LOMEM ¢AdrH? 030C: 90 OD 15 Bcc BCL : Si A plus petit, saut. O30E: AG 06 16 LDA INDEXB ; Adresse basse dans A... 0310: C5 69 17 CMP 969 : comparée a LOMEM (¢AdrB) O312: 90 O7 18 BCC BCLI + Si A plus petit, saut. O314: AS O7 19 LDA INDEXH : Plus grand, alors on fait 0316: CS 6A 20 CMP #64 3 un nouveau test avec 0318: DO 01 21 BNE BCL : Lomem (AdrHaute)...Saut OS1A: 60 22 RTS 7 ...0u fin de travail. 23 # oe TREMPLIN MICRO 33 CAT.ALOG (suite et fin) OS1B: £6 06 24 BCLI INC INDEXB : + 1 pour pointeur AdrB O31D: DO 02 25 BNE BCL2 : Sl different de O: saut, OS31F: £6 07 26 INC INDEXH + ou alors. + 1 pour AdcH 0321: AO 08 27 «=BCL2 LbY £908 : On a 8 caractéres 0323: B! 06 28 BCL4 LDA ¢#06).Y + “CATALOG a tester 0325: D9 BE 03 4892? CMP $036E.Y : en utilisant |’ adressage 0328: DO DE 30 BNE BCL3 + Indexé. O32A: 88 31 DEY 2Y=¥-1 O32B: DO Fé 32 BNE BCL4 : SLY <> de 0, suite 0320: AS 06 33 LDA INDEXB : On a trouvé "CATALOG O32F: 16 34 cL¢e : Pas d’addition sans cela! 0330: 69 08 35 Apc £808 : On ajuste Je pointeur... 0332: 85 06 36 STA INDEXB ; qui n’a pas ¢teé,., 0334: AS OF 37 LDA INDEXH + incrémenté a |’ interieur 0336: 69 00 38 ADC £800 t de la boucle 0338: 85 O07 39 STA INDEXH + C’est fait! 033A: ce 40 «BCLS INY + ¥ @talt a0 Cle, +19 0338: Bl O65 4i LDA (806),Y + On cherche les guillemets 033D: 49 42 PHA i en stockant les valeurs O33E: Cc? 22 43 CMP £822 : Guillemets ? 0340: DO Fa 44 BNE BCLS + Non: une autre lecture 0342: 64 FF 45 STY SEF + Oui: mémorisons ¥ 0344: AS 06 46 LDA INDEXB : On revient en arciére de 0346: 38 47 SEC ; 4 cases, par une petite 0347: EF 04 48 SBC £804 i Soustraction (ALOG) 0349: 85 06 49 STA INDEXB 3 et on met a jour 0348: AS 07 50 LDA INDEXH : sans oublier la retenue 034D: B9 00 51 SBC £900 : é@ventuelle pour la O34F: 85 O07 52 STA INDEXH : partie haute de |’adresse. 0351: 68 53 BCL6 PLA : Avec cette poucle, on 0352: 91 06 54 STA ¢806),¥ ; é¢erit les valeurs empilées 0354: 88 55 DEY + suc ALOG 0355: DO FA 56 BNE BCL6 0357: AS 06 57 LDA INDEXB : et on s’offre une autre 0359: 18 58 cLe : mise a jour de |‘ index O35A: 65 FF 59 ADC $FF + sans oublier | ‘ancienne O35C: 85 06 60 STA INDEXB t+ valeur de Y (mémorisée O35E: A5 07 61 LDA INDEXH : plus haut), et pas 0360: 69 of 62 Apc £800 + davantage la fameuse 0362: 85 07 63 STA INDEXH 3 retenue.,.. si elle existe! 0364: AY 20 64 LDA £920 : A chargé avec | “espace 0366: CB 65 BCL? INY + Plus un pour ¥ O367: 91 06 66 STA ($06),Y ; Espace 4 ‘adresse $6-7+Y 0369: CO) 04 67 cPY £904 } A-t-on mis 4 espaces 7? 0368: DO FO 68 BNE BCL? + Non: encore un tour! 036D: Fa 99 69 BEQ BCL3 : Qui: retour case départ. 70 * O36F: 22 71 DFB ‘* + C’est ce que |’on cherche 0370: 43 72 DFR “‘C ; pour le transformer en un O371: 41 73 DFB “A + simple CAT... sulvi de 0372: 54 74 DFB ‘T ; 4 espaces (dont notre 0373: 41 7 DFB “A + Apple adoré n‘a que faire, 34 GUY-HACHETTE 0374: 40 0375: 4F O376: 47 76 7 78 DPB “‘L ' mats dont i| se moque DFB ‘a : @perdument. DFB ’G + Au revoir et Merci! BSAVE CAT.ALOG, ASSO, L$77 On ne peut plus simple. G_) BLOAD CAT.ALOG — @) LOAD PROGRAMME BASIC — (3) CALL 768. Vous terminerez par SAVE PROGRAMME BASIC REC.REM Qo Wem ee en ne ne + 1 +* RECHERCHER UNE CHAINE DANS UN PROGRAMME ET LA * 2 * REMPLACER PAR UNE AUTRE DE LONGUEUR IDENTIQUE * DB Hew ne a en RR EE Fn * 4 * * 5 INDEXB EU 306 : Acres. indexé (Partie basse) 6 INDEXH EQU 807 : Idem Partie Haute 7? LONG EQU SFP : Contient longueur du mot B cv EQU $25 3 Position verticale curseur 9 BUPFER EOU s200 + Buffer d’entre¢e (0 a la find 10) (CHI EGU $376 + Le mot “REMPLACER: * 11 CHa EQU CH1+12 : Le mot “PAR: * 12 VECDOS #80U 0300 ; REPRISE DES E/SORTIES Si vous ne 13 STROUT EQU SDBSA : Affiche une chalne par Y,A possédez pas 14 VP EQU SFCLA + Remonte le curseur | d'assembleur, 15 VTAB EQU #FC22 ; Déplace le curseur en CV contentez-vous i6 HOME ROU = sFCss + Efface |’éeran de recopier 17 INLIN EQU sD52C + Saisie texte sans prompt ces codes. ig # * 19 ORG $300 leq + + 0300: 20 58 FO 2i JSR Home ; Le bel écran que voila! 0303: AY 15 22 LDA £815 + On travaille sur Ja ligne... 0305: 85 25 23 STA CV i 22 (CV va de 0 a 23; S15=21) O307: 20 22 FC 24 JSR Vtab } Mais renseignons | Applesoft OS0A: AD 09 28 LDY £>Chi ; Partie haute dans Y,.. 030C: A? 75 26 LDA £<Chi 7 et partie basse dans A.., 030E: 20 3A DB 27 JSR Strout : pour affichage "REMPLACER: " O311: 20 20 DS 828 JSR Inlin 3 Que) est le mot 4 remplacer? 0314: E8 29 BCL2 INX } X=FF a la sortie de Inlin 0315: BD OO 02 30 LDA Buffer.X +: Lect. du mot dans je buffer 0318: 99 90 03 831 STA 90390 ,% : Stocké la ou ailleurs... O31B: DO F7 32 BNE Bcl2 : Si A n’est pas a zero O31D: 86 FF 33 STX Long ; M est sauve dans Long (SIF) O31F: FO 03 34 BEQ Bcl3 ; Ici. on passe... 0321: 20 1A FC «6935 6BCL4 JSR Vp : Sans remontée Ge curseur 0324: AD 03 36 BCLS LDY £>Ch2 : Pour affichage de "PAR: " 0326: A? BZ 3? LDA £<Ch2 3 on refait comme plus haut 0328: 20 3A DB 38 JSR Strout : et le mot s’affiche 0328: 20 20 DS 39 JSR Inlin ; Input...X% = SFF en sortie. _— TREMPLIN MICRO 35 0380: 0382: 0386+ 43 oA 20 50 3A 20 oa Ag 45 40 45 oo 4! 00 02 o3 03 03 4D 4 52 7? 78 79 80 61 MODE D’EMPLOI REC.REM (suite et fin) BCLS INX : on lui ajoute 1 et X= 0 LDA Buffer.X + Voir plus haut: c’est STA #03A0,.% 3 explications. mais le mot BNE Bc1S 3 est stocké ai]leurs CPX Long + La longueur est-elle bonne ? BNE Bci4 + Non: a refaire (VP) Woe wenn ene ene ne ne enn ee eee ene * LDA $67 ; Début du programme Basic STA IndexB + Stocké dans notre index LDA 368 + Idem avec la partie haute STA Index Brrr nn ren ene nnn nen nn nnn nnn nn ene nnn eee eee ee * SPG1 LDA IndexH ; Avons-nous dépassé Lomem CMP $64 } partie haute ? BoC Bcl6 ; Non: allons voir plus loin! LBA IndexB i Avons-nous dépassé Lomem CMP $69 i partie basse ? BCC Bcl6é + Non: on peut continuer LDA IndexH + Qui: est-on égal a Lomem CMP $64 3} partie haute ? BNE Bcl6 + Non: on continue vraiment... JMP Vecdos + Qul: retour au Dos, FIN BCLE INC IndexB : Plus un pour |* index BNE Bcl? : Si l’on a O (SFF+1). ii INC Index + faut incrémenter IndexH BCL? LDY SFF ; Réecupération de la lonqueur BCLB LDA (¢IndexB3,¥Y ; Lecture CMP 3$038F.Y + Comparaison BNE Spal + Inégal ? retour case départ OEY 2~Y¥=2¥-1 BNE Bclé ; Pas zéro ? encore un tour! BCL? INY + Maintenant, on va ecrire LDA $039F,¥ 3; le mot qui remplace sur STA (906),Y 7 celui qu! doit disparaitre CPY 3FF 7 La lonqueur est atteinte ? BNE &cl? 3 Non: on continue BEO Spel ; Retour 4 ja case départ DFB ’R.'E.’M.’P,‘L./A,’C.’B.’R, ¢ HEX 2000 : Un espace + un zéra obli- DFB *P,*A,‘R,‘: HEX 2000 + gatoire (tin Ge chaine) Br nr rr rn rn re rere sees ses ane an + BSAVE REC.REM, AS300, LSB @® BLOAD REC.REM — i@>) LOAD PROGRAMME BASIC. Pour chaque remplacement ; CALL 768 (elface la page) ou CALL 771 (pas d'effacement). Indiquer le mot & chercher, puis celui & mettre 6 lo place. Espace ef pone: tuotion sont occeptés, mois pos un mot commencant por “INT” et pos davantage les commandes de DOS (CATALOG, par exemple}. N'oubliez pas de sauver le programme transformeé | . GUY-HACHETTE U 108 11@ 128 138 148 158 148 178 186 198 288 218 228 238 248 258 248 276 288 276 31088 318 328 338 358 348 378 388 398 408 418 438 Feu DucaTiF EE VILLES DE FRANCE <= 346 T ProDOS N jeu instructif, congu 4 |'intention des petits et des grands, par M. DEVAUX. La routine VILLES.LM est un peu longue, mais elle permet dafficher instantanément la carte de France. Et puis, disons-le, ce n'est pas plus agacant 4 recopier que n lignes DATA ! A vos claviers ! Par M. DEVAUX Gnd 4 LE PROGRAMME EN BASIC REM #8 ee eee EEREHE REC ROH HOE EO REM *# WILLES DE FRANCE #* REM *« PAR M. DEWAUX del REM 4404404 ON HOR e ede eee t TEXT + NORMAL : PRINT CHRS (21): HOME PRINT CHR® (4);"BLOAD VILLES,LM* LOMEM: 26508; DIM V¢108) Tif = “# VILLES DE FRANCE ° Ta =° GOSUB 278 GOSUB 418 GOSUB 560 GOSUB 1686 HOME : END REM DESSIN HGR CALL 24576 RETURN REM PRESENTATION PRINT CHRS (21): HOME GOSUB 258 Ts = Titi) = 1 VTAB 22: GOSUB 378 = T2$: VIAB 23: GOSUB 378 FOR | = 1 TO 2088: NEXT RETURN REM FORMATAGE DES TITRES T = (48 - LEN (T$)) 4 2 HTAB T: PRINT TS RETURN REM CHOIX DU NOMBRE DE JOUEURS FOR 1 = 1704 NSCI) = "*:5C¢1) = 6 440 458 4468 478 488 490 568 518 528 538 548 558 568 37a 538 598 88 618 620 638 448 458 468 470 686 698 788 718 728 738 748 TEXT : HOME Ts = Tit: GOSUB 378:Ts = VTAB 3: GOSUB 378 TAB 8: INPUT * Nombre de joue urs ? “;Né:N = VAL (NS) IFN ¢ 1 OR N > 4 THEN VTAB &: HT AB 1: CALL - 958; GOTO 47@ VTAB 12 FOR l= 17T0N T2% PRINT “ Nom du joueur n*"sl3¢ INPUT " 7 *4NSCI} PRINT NEXT FOR | = 1 TO 1868: NEXT RETURN REM JEU GOSUB 25¢ C=e=cCri FOR 1 = 1 TON HOME UTAB 21: PRINT "Nom ¢ "yN$C1); HTAB 28: PRINT “Score : *;SC¢1) P= 10:A1DS = ** H = INT ¢ RND (1) # 72) 4 1 IF VCH) = 1 THEN 448 VCH) = 1 RESTORE FOR J = 1 TOH READ V$,A,B NEXT HCOLOR= 7 FOR W= B HPLOT A - NEXT =2T 2,W 7 (suite ou verse) TREAAPLIN MICRO a7 eeenessseus eee ERURw ese EEEREEEae ee ee ese AR OE ReE EEC E ET eEe nee sss see eE RET EE SEATS Sees eee SRE SE EET ES! 758 748 778 798 858 818 828 838 B48 858 868 878 888 898 788 918 928 938 948 758 768 978 780 798 1800 1818 1828 1838 1848 1658 1848 i878 10868 1078 1108 1118 1128 1138 1148 1158 VILLES DE FRANCE S$ = ""tRs = °F YTAB 23: PRINT “Nom de la ville 2? "sAlbby PRINT Sty: GET S¢ IF ASC (S$) = 13 THEN 816 IF ASC (53) = 127 OR ASC (S$) = 8 THEN VTAB 23: HTAB 1: CALL - 58 + GOTD 758 RS = RS + S$: GOTO 778 VTAB 23: HTAB 1: CALL - 958 IF RS = V# THEN 899 IF P = 2 THEN 678 P = INT (P / 2):A1D® = AIDS + LEF T# (Us,1) V$ = RIGHT# (V$, LEN (V8? - 1) GOTO 758 VTAB 23; HTAB 3: PRINT "La répons e était + "sAIDS;VS GOTO 928 VTAB 23: HTAB 17; PRINT “EXACT” $041) = SCt1) + P VTAB 21; HTAB 28: PRINT “Seore : ",S8C¢1) FOR T = 1 TO 1566: NEXT HCOLOR= @ FORW=8-17T0B+ 1 HPLOT A - 1,W TOA + 1,W NEXT NEXT 1F € = 18 THEN RETURN 60TO Soe REM AFFICHAGE DES SCORES PRINT + TEXT + HOME T# = Tit: GOSUB 378 TS = 72%: GOSUB 378 VTAB 7: PRINT "SCORES :" PRINT *=s0—=-' ™ VTAB 12 FOR 1 = | TON PRINT N#{13;3 HTAB 26: PRINT *: “SSCCT) PRINT NEXT VTAB 22: PRINT : INPUT “Une autr e partie 2 “sR$: IF LEFTS (RS,1) = "N" THEN RETURN IF R& = "N" THEN RETURN IF LEFTS ¢R#,1) ¢ > “O" THEN 111 a RUN 178 DATA DUNKERGQUE ,137,3,CALAIS,138, 5,ARRAS,143,14,LILLE,146,8 1148 1176 1188 1198 1208 1218 1228 1238 1240 1258 1288 1278 1288 1296 1368 1318 1328 1338 1348 1358 1348 1978 (suite) DATA AMIENS ,1397,22,LE HAVRE, 113, 28 ROUEN, 122,38 ,BEAUVAIS, 135,38 DATA LAON,152,28,MEZIERES, 145,24 ,METZ , 183, 35, STRASBOURG, 202,42 DATA CAEN,185,34,SAINT-LD,?7,35, EVREUX ,122,97,PARES,137,41 DATA CHALON-SUR-MARNE , 161,39 ,NAN CY, 183,42, COLMAR, 199,52 DATA MULHOUSE 199,61 ,CHARTRES, 12 4,48, BREST ,54,45,QUIMPER,59,54 DATA BOULOGNE-SUR-MER,131,9,RENN £$,88,59,LE MANS, 111,56 DATA ORLEANS, 132,58,SAINT-NAZAIR £,81,47,NANTES 89,78 DATA LA ROCHELLE ,95,88,B0RDEAUX, 101,113,NIORT, 192,86 DATA POITIERS, 112,81 ,BLOIS,125,6 3, TOURS, 117,67 DATA TROYES, 158,51, CHAUMONT,172, $3 ,VESOUL 184,41 DATA BESANCON,184,49,DIJON,171,6 7 ,AUMERRE , 153,59 DATA ANGOULEME ,118,98,PERIGUELX, 117,187 ,LIMOGES 125,94 DATA PAU, 182,141 ,AGEN,114,124,CA HORS, 126,119 DATA MONTAUBAN, 124,128, TOULOUSE, 124,136 ,FOIX,128,148 DATA PERPIGNAN, 145, 153,MONTPELLI ER, 158,134,NIMES, 145,131 DATA AVIGNON, 172,129 ,MARSEILLE,1 88,139, TOULON, 184,142 DATA NICE,208,134,MONACO, 285,13! ,DIGNE, 185,117 DATA REIMS,148,31,GAP,186,117,GR ENOBLE, 181,186 DATA VALENCE ,171,111,LE PUY,157, 118 ,AURILLAC 139,112 DATA RODEZ,148,122,CLERMONT-FERR AND, 146,96, LYON, 169,94 DATA ANNECY,195,93,MACON, 168,87, MOULINS, 158,83 DATA NEVERS,148,74, Vous pouvez compléter la liste des villes et calculer vous-méme les paramétres qui vous permettront de les positionner le plus exactement possible sur la carte de France. 38 (GUY-HACHETTE VILLES.LM (AFFICHAGE DE LA CARTE DE FRANCE) 4808- AP 33 85 84 AY 40 85 B7 | SIFO- 51 47 52 48 53 4a 54.49 | gaD8- Ca BA C? OF CB BF Ce a8 A207 2H EC Fé AG BI Bl | giFB- 54 4a 53 4B 59 4C 53 4D | 63D8- CY a? CA 87 CB B86 CB ES 46 FO IF 85 08 CA Bl 84 | s2pe- 53 4E Sa GF 55 5B 55 51 | 63E8- CC 84 CD BS CE 84 CF RD 3 08 A BB 20 57 FAAS | 4oe8- Sé 52 57 53 58 54 5° SS | 43EH- CF G2 CF G1 CF 86 CF 7F @é 18 4? 82 85 86 78 87 | s2;9- 56 546 5B 54 5C 56 5D 56 | S3F@- DA 7E D1 7D O1 70 D1 78 A507 18 49 @ 85 87 SC | garg- SE 56 SE 57 5D 58 5D SF | 43FB- De 78 CF 7C CE 7E CD 78 AD s@ 48 15 88 98 GA GE | 4229- 5p 54 SE 5B 5E 50 SE 5D | s488- CC 7B CB 78 CA 7B CF PA 89 81 98 @1 67 BL G6 O2 | 429g- SE SE SD SF SO 8 SC 41 | s488- CA 7A C7 79 CA 78 Cé 77 85 G2 G4 82 82 62 82 63 | 4299- 5D 42 5E 42 SF 43 48 44 | S418- Cé 74 05 75.05 74 CS 74 Bl 83 G1 04 G8 85 G8 O4 | goag- 41 45 42 46 49 47 49 4B | SM1H- C4 79 C7 72 Ce 75 CP Fe #0 @7 BB BE Bi BF BA AA | 4s24g- 43 4? 44 BA 44 4B 64 SC | S420- CP SF C4 SF CS AF C4 dE 88 BB 81 BC 88 OD GP BE | 4zqg- 44 4D 43 AD 62 SC 62 6B | 6428- CO 4D C2 6C C2 4B C2 4A S1 OF 8) 16 BG 11 YF 11 | gz5e- 41 ga 61 8? St 68 40 a? | 4430- C3 6A C4 6A C5 6A Cd OP 7F 12 7F 13 7E 13 7D 14 | gane- SF g6 SE 65 SE 46 50 47 | 4438- Cé 68 C7 47 CB 66 CO 45 #0 15 78 15 7A 15 77 15 | a2ag- SD 48 SD 4? 5D 4A 5D SE | 444y- Ca 4 CP? 63 C4 63 CH 42 7815 77 14 74 17 75 17 | gaae- SP SC SC 6D SC 6E SC EF | ga4e- C4 df C5 68 C4 48 C3 SF 7417 73 17 72:18 71 1% | ga7e- Sc 78 SC 71 SC 72 5C 73 | sasa- C3 SE C4 5D C5 5C C5 5B 78 1A SF 1B SF IC 78 1D | ga7e- 50 73 SE 73 SE 74 5D 75 | ga5e- cS SA C4 $9 C3 $B C2 57 7110 72 1E 71 1F 78 SF | s2ag- SC 75 SC 76 SC 77:5C 78 | gage- C3 54 C3 55 C2 54 C9 53 4F IF 6 28 40 28 6C 21 | szge- Sc 79 SB 7A SB 7B SB 7C | 44g8- C2 59 Cl 59 CB 59 BF S4 4B 21 64 21 67 20 68 28 | s2e- 5H 7D SH 7E 5A 7F SA BG | o470- BE 54 BD 55 BC SS BC 54 47 26 64 20 65 28 é4 JF | g2e8- 5A G1 3° 82 $9 83-59 84 | 4o47B- BC 57 BB 58 BA 58 BP 5B 43 1F 62 1F 61 IF 48 28 | s2ag- 5? 85 5a 84 58 87 58 88 | gage- BY 5? BP Sd BA 55 BA 54 SF OIF SF VE SF 10 SE IC | s2ag- 57 99 57 Oo Sé 8H 55 BB | 4488- BF 59 BF SZ BA 31 GA SP SE 16 SE 14 SE 19 5D 19 | g2pe- 34 BC 35 BD Sé BD 5? BD | é478- BH 4F BB 4E BC 4D BD 4c SC 1? 58 1A 5A 1% 59 18 | 42pe- se gE 58 SF 58 98 S7 Ft | 4499- BD 48 BD 44 BE 49 BF 4B 3B 18 57 16 57 17 58 1A 42Cb- 37 72 58 72 59 92 SA 92 | sanB- C8 47 Ch 4 C2 45 Ca 44 5818 57 1C 57 10 58 3E | s2ce- 5B 93 50 93 5D 73 SE 94 | s4ad- C4 49 CS 42 C4 41 C8 4 a9 1F 5? 28 57 21 SA 21 | s2pe~ SF #4 40 P4 61 94 42 95 | S4BR- C2 4) C9 48 Ca GF CS OF SB 22 58 23 58 24 58 25 | g2pe- 42 94 43 97 64 97 45 97 | gaBB- Cé 48 C7 48 CB 4B CY oF 38 26 38 27 5B 28 58 27 | 42ke- 46 Fé 6? #7 GB OFA BP PB | GaCH- CP SE CY 3D CF BC CA 3B 5B 24 5C 2B 5C 2¢ 5B 20 | 426B- 4A 98 48 FB SC Fe 4D PB | 44C8- CA GA CA 39 CA 3B CA 3? 3A 20 5? 2D 58 2D Se 2¢ | s2re- se $B SF 99 78 97 71 9 | gaDB- CA 36 CP 35 CP 34 CF 33 57 28 54 28 S4 2C 55 20 s2FB- 72 9F 739 FF 74 99 7h 9B 64D8- CA 32 CA 31 CB 38 Ce 2F 34 20 93 26 52 20 82 28 | saeg- 74 97 75 97 74 97 77°97 | gaEB- CB ZE CC 2D CC PC Co 2B Si 2B 58 28 4F 2C ae 4388- 78 98 79 98 7A 99 78 99 | sqEB- CC 2A CD 29 CE 28 CE 27 40 26 4C 2p 4C 20 48 6318- 7C 99 7D 99 7D 94 7E 9B | SHFR- CF 24 CF 25 DB 24 De 23 48 2A 94 29 49 26 4F 4318- 7F 9 BR 4 Bl 94 82 PB | 44fa- CF 22 CE 22 CO 22 CC 21 4B 26 47 27 44 27 45 6320- 83 FC 83 FD B4 FE 89 OF 21 CA 21 C# 21 Ce 21 44 28 43 27 42 20 42 6328- 84 48 87 9F 8B OF BP FE 21 Cé 28 C5 2Y C4 21 41 29 40 29 3F 29 3F 63390- G4 FE SB FE BC FF BE FF 21 C2 21 C1 28 ce 2e 3E 2 3D 29 3C 29 38 6338- GF OF 94 PE 71 FE F2 PD 28 BE 21 BD 20 GD IF 3A 2A 37 29 38 29 a7 6340- 93 FD 74 PE PS YE PA VE | 4520- BC 1E BC 1D BB IC BA 1B 36 26 35 28 34 2C 34 é348- 97 96 94 90 95 98 94 A | 4528- BF IC BB 18 B? 18 Bs IC 34 2E 34 2F 35 2F 36 638e- F4 99 74 7B F497 5 PS | B5IW- BS IC B4 IC BF IB B2 1A 37 26 38 2E 38 2F 3F 6358- 94 95 94 94 74-9295 72 | 459G- B1 18 BB 1B BO 1B AF 1B 3A 38 37 31 38 31 37 31 S360- 94 91 97 90 FH BF 99 BF | 4548- AE IB AD IA AC 1? AB IP 36 31 35 3) 36 32 38 32 | agse- 9A BF 9B BE PC BD PD BC | 454g- AA IB AP 17 AB 16 AB IS 39 33 38 34 37 34 34 34 | wa7e- FE GB PF BA AB BA AL BF | S558- AT 14 AT 13 AF 12 AF IT 35 34 35 35 34 54 3? 37 | 4378-42 97 49 BA Aa OB AS Be | sS5a- As 18 AS 11 Aa 11 Ad 12 37 38 38 39 39 39 94 38 | 4gee- Ad GB A? BB AB GA AS BC | 4568- Ad 19 AZ 13.2 LAL 1a 38 38 3C 38 30 38 3E 9F | 4386- AS 0 AB GD AC GC AD 8B | aS4h- AO 14 OF £3 FE 12 9F 11 aF 39 40 39 48 3A 41 3B | 4a7e- AE BB AE GH AF 99 BR BY | 4578- 9F 1) VE OF PE BE FD BE 42 3A 43:38 44 3A 45:98 | gaeh- 81 BA Bi BB G8 AC Bi BD | 4578~ PC BE ¥e BD 9A aD FF BC 45 3C 45 3D 45 3E 44 SF | 43Ae- 82 8D 83 SE B4 BE OS GF | 4508- 99 8B 77 BA 4 BF 95 BA 47 36 48 GE 49 3D 44 3D | ggap- B4 GF 87 OF BS BF AP 98 | 45B8- 4 BA P4 Ba 94 B7 74 BS 48 3D 4C 3E 4B SF 44 3F | g3me- BA 98 BE FA BC 78 BD F2 | 4598- 73 Ad PZ Od 71 OS 7B as 48 48 40 98 40 48 4E 48 | g3ge- BD 71 BE 9) BF 78 CA 98 | S598- BF B84 BF BS BE #5 BD B4 4E 41 46 42 4D 43 4E 44 | g3ce- C1 98 C2 BF C3 BE C4 BE | S5AB- BC 44 BC 63 OC O2 BB I 4F 45 58 45 51 44 52 44 | gaca- C5 8 C4 SC C4 8B CS AB | 4589- BB 88 88 BA FF OFF 53 44°54 44 95 44 54 45 55 44 54 44 53 44 52 44 BSAVE VILLES.LM, A$6000, LSSAE T =@: FOR = 24576 TO 26029: T = 1 + PEEK(I): NEXT: PRINTT Résultat: 153025 SRSESSES sas TREMPLIN MICRO 39 GEMACHINE [EEERBBCES NESTOR CADRE-DEMO en réponse a monsieur ANSELME N OS lecteurs se passionnent pour les cadres en langage machine, mais les résultats abtenus ne leur donnent pas toujours satisfaction. Exemple : l’essai (guére plus rapide que le Basic) de notre ami Bernard ANSELME. Le voici... expliqué, dans sa version originale (on poque le caractére & utiliser 4 l'odresse 6 : 32 pour un espace en mode inverse, 170 pour l'astérisque, etc.) e306- 28 S8 FEC JSPR $FCSa HOME efface I'écran 4383- AS 84 LDA $O4 On récupére en 06 le caractére 4 afficher a385- A2 29 LO £B27 On vo afficher 41 caractéres (1 ligne + 1) g387- 28 ED FD JSR $FDED COUT sort un coractére 838A- cA DEX x=xX—1 830B- Da FA BNE $6307 Si X est supérieur 40, boucle 838D- Ae 146 LDY £$16 Pour FOR ¥ = 1 TO 22 ($16) Q36F- A2 26 LOX £326 Si X = $26 (38), lo routine... 8311- 28 46 FP JSR SFo4a ..-PRBL2 va envoyer 38 espaces a3i4- AS O84 LOA $66 On récupére en 06 le caraoctére-codre @3146- 28 ED FO JSR $FDED Affichage en bout de ligne, puis... 8319- 26 ED FO JSR $FDED ... au début de Io ligne suivante @31C- 88 DEY Y¥=Y¥-1 g31b- be Fe BNE 2030F SY supérieur 4G, boucle 83i1F- Ag 26 LOX £226 Pour FOR X = | TO 38 ($26) @321- 2@ ED FD Jsk FDED Affichage e324- 4 DEX x=xX—1 9325- De FA BNE $0321 Si X différent de G, encore un tour @327- 84 25 sty $25 Romener le curseur en haut de I'écran a329- BD F? a7 STA SO7F7 POKE le dernier caractére pour... e32c- 48 RTS oo» deviter le SCROLL Bien sir, on le sait, nous avons publié plusieurs routines capables de tracer (instanta- nément) tous les cadres désirés, mois j'ai voulu montrer, avec lao modification ci- dessous (le nombre d'instructions est le méme, et la longueur est identique 4 un octet prés), qu'il est possible, trés simplement, en utilisant les sous-programmes de |'Apple, daccélérer considérablement un programme. b29@- 20 58 FC JSR $FC5G Dans la routine de Bernard ANSELME, 9303- AS o4 LOA SBS le manque de rapidité est dd @ PRBL2 Ho = FD es be ($F94A) qui affiche successivement x a3ea- - DEX espaces (38 dans le cas étudié).., mais e308- Da FA BNE #6307 22 fois ! 838D- AZ 16 Lox £S1é Avec ma version (totalement identique 40 GUY-HACHETTE par ailleurs), SFC62 (C

Showing the first 100000 of 162971 characters.

mp.ls