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