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.