Text content (OCR)
fA Re ee
esolution
Haute R
votre GS!
Be inc Gas
Sur
tremplin | SOMMAIRE
micro 17
‘Apple et ProDOS (noms et
BIMESTRIEL
Le numéro : 33 F
Abonnement d'un an : 190 F
(6 numéros)
Tous nos prix sont indiqués TTC.
EDITIONS JIBENA
Direction-Rédaction :
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,
dans plusieurs magazines, les
renseignements concernant sa
machine, ne bénéficient pas du
numéro de Commission Paritaire,
et pas davantage des torifs pos-
taux réduits.
TREMPLIN MICRO — Bimestriel —Cest une
publication des Editions JIBENA, 4, rue de
lo Cour-des-Noves, 75020 PARIS — §.A. ov
copital de 3600000F — Imprimé por
CTTE-PRESS/PARIS — Service de vente :
Presse-Promotion, tél: 49.90,65.08 —
Dépat légal la date de parution — Inscrip-
tion & la Commission Paritaire des Publica-
tions et Agences de Presse : en cours —
Directeur de la Publication : Guy-Clément
COGNE — Dittusion NM.P.P.
La Disquette TREMPLIN MICRO
Avec Ia collaboration de :
ARGOS, Claude AUBRY, Didier CHARRON, Maurice CHAVELLI,
Bruno CHEVALLIER, Marcel COTTINI, Rafi DERYEGHIYAN, Roland
JOST, Yvan KOENIG, NESTOR, Clément RENARD.
Yvan KOENIG avisité Apple Expo ............. 00.200 e eee 2
LEPOLYGLOTTE avec Maurice CHAVELLI ea 3
WAR Un jeu d'aventure pour Apple ...........------.0000055 9
(nous ne publions pas ce long programme, mais vous
recevrez la disquette de Rafi DERYEGHIYAN... pour 20 F).
FONTE pour AppleWorks (Didier CHARRON) ..............- n
CLASSEMENT suivant la longueur (Clément RENARD) . 19
PLACE.DOS - DOS 3.3 pas mort (Marcel COTTINI) .. . 21
PAVES ALEATOIRES en Basic plus langage machine ae A
LOUPE (Roland: JOST) wisscosmineace gan memeiem aves ra]
UN X DEUX, initiation au langage machine (Nestor) ........ 36
BLOLIB.A et BLOLIB.V, toujours de I'initiation (Nestor) ....... 37
GS Basic: Il arrive... avec les outils ..............5555 (89
MELANGEUR, pour méler aléatoirement N mots (Nestor)... 40
QUATRE OPERATIONS, du Basic au LM ........... 2.20.00. 43
RND @ ou 1 : comment obtenir aléatoirement desGetdes1]... 44
ALLER-RETOUR jusqu’aux routines arithmétiques du 65C02... 45
TRI.B, trier une liste de nombre sur un octet . . 46
MINI-DOC Encore un Startup sous ProDOS (Bruno CHEVALLIER) .... 51
MLI Petite initiation en langage machine (Argos) 61
C CONVERT! Un micro-programme en C (Nestor) ee 769
HGR MONOCHROME Réponse intéressante 4 un Lecteur ..... 65
SuperMacroWorks La version francaise existe !............ 69
GRIBOUILLE PARLANT Le génie logiciel francais .. . . 70
Yvan KOENIG se déchaine dans un courrier spécial ........... 73
TURBO PASCAL TUTOR Pour comprendre TURBO PASCAL... 78
BIBLIOTHEQUE INFORMATIQUE .................055 20,66,68,74
TREMPLIN MICRO
YVAN KOENIG « visite Apple expo...
Je sais : certains vont supposer que cette fois
les fruits de la passion m’ont frappé deux fois.
Cest peut-étre vrai, mais, 4 mon retour d’'APPLE
expo, je suis persuadé que le GS, malgré des
débuts difficiles en France, décolle enfin.
Les raisons de ses difficultés initiales sont
multiples : prix sans doute trop élevé,
défauts dans les programmes livrés avec la
machine, difficulté d’accés aux outils de
développement, sans oublier, si j'en crois
divers appels de lecteurs et des informations
de source sire, le comportement suicidaire
de certains concessionnaires.
Les prix viennent de baisser.
Les programmes ont fait l'objet de révisions. II
convient de préciser que certains des problé-
mes rencontrés par les utilisateurs ne sont pas
en totalité imputables aux auteurs, qui étaient
(et sont encore) tributaires des outils de source
APPLE (systéme d’exploitation encore évolutif,
drivers disponibles de maniére tardive). Atten-
tion ! je ne porte aucune accusation contre
CUPERTINO ! L'équipe qui travaille sur la
machine (nous avons rencontré trois de ses
membres) semble tellement éprise de perfec-
tionnisme qu'elle remanie sans cesse ce qu'elle
vient de sortir.
Rich Williams nous a d’ailleurs apporté la ver-
sion 3.1 du systéme d’exploitation, mais il y a
fort @ parier qu'il existera une version 3.1+
lorsque cette version 3.1 sera parvenue 4 vos
machines. II nous a, par ailleurs, présenté un
éditeur d'icénes, et surtout un outil de géné-
ration de sons, tout @ fait remarquables.
Nous avons enregistré avec plaisir l'annonce
pour 88, de la vraie version 16 bits du
systéme d'exploitation.
Des nouveautés hard sont aussi a |'ordre du
jour, mais le développeur que je suis (ou plutét
que j'étais encore) a promis la discrétion.
Je rappelle & ceux qui n‘ont pu obtenir de leur
fournisseur les mises 4 jour 1.1 de GS.PAINT et
2.0 de GS.WRITE qu'ils peuvent les demander
directement 4 Version Soft.
Apres avoir tiré les lecons des difficultés d'accés
aux outils de développement, APPLE a remanié la
présentation de ceux-ci et a confié leur diffusion a
une nouvelle structure, 4 savoir :
D.D.A. _|. Development
"Technopole", rue Faraday
78180 Montigny le Bretonneux
Tél. : (1) 30.45.26.62.
J'ai rencontré de jeunes développeurs dont
l'enthousiasme pour le GS tranchait avec le
scepticisme affiché par certains (BORLAND par
exemple). Ayant fait part de certains propos
alarmistes aux représentants du team GS, j'ai
été frappé par leur surprise et je crois pouvoir
dire qu'ils travaillent dur pour que toute crainte
se révéle vaine.
De son cété, J.-L. GASSEE a affirmé qu’'APPLE
gagne de l'argent avec le GS et que cela le con-
duisait & penser que |'APPLE II sera encore pré-
sent dans 10 ans, avec des modifications bien
sor. Il n'a rien voulu annoncer aux 200 person-
nes (au moins) qui I'écoutaient, mais nous som-
mes tous sortis convaincus de la mise en ceuvre
prochaine d'un systeme de communication
entre les deux gammes APPLE.
Enfin, et je sais que vous n’allez pas me croire,
le BASIC spécial GS existe. Je I’ai vu a I'ceuvre,
et il sera disponible chez D.D.A. lorsque vous
lirez ces lignes. Aux U.S.A., A.P.D.A. le vend
au prix de 50$ et annonce déja un compilateur
pour ce BASIC. Avant de vous quitter, je tiens &
mentionner ce qui restera mon meilleur souve-
nir d'APPLE expo, 4 savoir le sourire d’Alexan-
dre FERAY (18 ans), lauréat, avec son langage
Forth pour GS, du concours APPLE/Version Soft
(que les 4 autres lauréats ne m‘en veuillent pas,
ma réaction n’enlevant rien aux mérites de
leurs programmes). Yvan KOENIG
GUY-HACHETTE
ILITAI
Maurice CHAVELLI
LE POLYGLOTTE
Je ne suis pas un fervent adepte de la langue d’ori-
gine de mon Apple chéri et, un matin de nostalgie,
je me suis mis en téte de lui apprendre ma langue
maternelle. J'avais pas mal avancé mon projet lors-
que je me suis apercu que jallais remplacer une
contrainte linguistique par une autre alors que la
grande qualité de |'informatique est plutét la sou-
plesse ! J'ai alors imaginé un Basic idéal, modifié a
loisir, et qui me permette diutiliser aussi bien le
PRINT classique que IMPRIME, MARQUE, ECRIT...
suivant thinaur du moment !
Cest dans cette optique un rien surréaliste que
s'est construit Le Polyglotte. Ce dernier permet de
modifier & tout moment la syntaxe d'un mot
réservé du Basic, sans pour autant corriger les pro-
grammes. Mais j’ai découvert en chemin une possi-
bilité que je n’avais pas prévue au départ. Les
mots-clés dans un programme Basic sont représen-
tés par des codes (Tokens) dont le premier est $80
pour END, le second $81 pour FOR et ainsi de suite
jusqu’a $EA pour MID$ (vous pouvez consulter utile-
ment 4 ce sujet l'article de NESTOR 4 la page 6 de
Tremplin Micro n°10). Il reste donc 21 codes dispo-
nibles de $EB a $FF !
En temps normal ces tokens ne sont pas utilisables,
mais avec Le Polyglotte ils le deviennent, il est
ainsi facile d’ajouter des commandes au Basic de la
maniere la plus naturelle qui soit.
Le Basic est tout entier contenu en mémoire morte,
il n'est donc pas possible de le modifier. Par contre,
il utilise une routine située en mémoire vive pour
lire les programmes et le buffer d'entrée en com-
mande directe : c'est le fameux CHRGET situé en
$B1, ce dernier étant donc orienté, ou plutat déso-
rienté, sur la routine d’analyse du Polyglotte. II est
ainsi possible de capter et d'interpréter une ins-
truction avant |'Applesoft. ProDos m’a également
donné beaucoup de soucis ! Lui aussi interpréte
tout au moyen du mode trace du Basic standard, et
il se trouve pris au piége en essayant d'écrire le
"£", ce qui l'envoie finalement dans la gestion de
sortie de ProDos en $9E2C.
Les mots-clés du Basic sont tous situés dans une
table qui commence en $DGD9. En version de base,
le Polyglotte comprend la méme table, mais
située en mémoire vive donc modifiable.
Les mots-clés du Basic apparaissent sur votre écran
dans deux cas :
* lorsque vous entrez des instructions au clavier,
* lorsque vous utilisez la commande LIST.
Dans le premier cas, il peut s‘agir d'une commande
directe ou de l'enregistrement d'une ligne d'un pro-
gramme. Dans les deux cas il faut tokéniser, c'est-
a-dire remplacer les mots-clés par leur code. La
routine de tokénisation standard se situe en $D559.
Le Polyglotte reprend cette routine mais l'oriente
évidemment sur sa propre table. Dans le deuxiéme
cas, le Basic utilise la routine LIST située en $D6A5 ;
le Polyglotte comporte une routine identique,
mais orientée sur sa propre table.
Le Polyglotte comporte une gestion complete et ne
pose pas de probléme particulier quant 4 son utili-
sation. II convient toutefois d’étre prudent dans le
choix des mots-clés que vous affectez. Si vous rem-
placez FOR par DE, il ne faut pas ensuite remplacer
WAIT par DELAI car les deux premiéres lettres de
ce mot seront déja considérées comme un mot-clé
et vous déboucherez sur un SYNTAX ERROR, en
anglais lui ! Soyez prudent également avec vos
noms de variables et n'oubliez pas qu'ils doivent
respecter les mots-clés. Pour limiter l'encombre-
ment de la table, j’ai limité la longueur des mots-
clés 410 caractéres. (suite page 4)
TREMPLIN MICRO
3
D'autre part, Le Polyglotte est assemblé en $8A00
mais il doit au préalable étre chargé et lancé en
$4000. En effet, il doit d'abord “faire sa place” en
décalant les buffers de ProDos vers le bas et
ensuite se reloger. Vous pouvez donc calculer que
Le Polyglotte occupe en tout 4K de $8A00 4 $9A00.
Lorsque vous étes satisfait du Polyglotte que vous
avez constitué, vous devez le sauver avec I'option
correspondante du menu. Par la suite, pour le
retrouver, il vous suffira de faire un BRUN , et le
tour sera joué, méme si vous aviez un autre Poly-
glotte en place. Cette manceuvre ne vous fait pas
perdre le programme Basic en place, mais écrase 8
pages a partir de $4000.
Le menu du Polyglotte s'obtient par pomme ouverte
et le point d'interrogation actionnés en méme temps !
Classiquement, il existe deux méthodes pour ajou-
ter une commande au Basic. La premiére, la plus
courante, utilise |'Ampersand (&) et vous avez de
trés nombreux exemples dans Tremplin Micro. La
deuxiéme, plus rarement employée, consiste 4 modi-
fier CHRGET : c'est cette méthode qui a été retenue
par Le Polyglotte. Mais le grand avantage de ce der-
nier réside dans |'utilisation de nouveaux tokens, ce
qui simplifie considérablement le probleme.
Le Polyglotte vous demande juste un nom pour
votre commande et l’adresse de celle-ci. Il est bien
entendu que le nom est modifiable par la suite. Le
programme correspondant doit respecter le fonc-
tionnement de CHRGET. Le Polyglotte empile
l'adresse $D7D1 pour le retour et place le token
correspondant en $6. Je vous propose, dans la dis-
quette d’accompagnement de ce numéro 17, deux
exemples d'illustration, le premier est le classique
IF THEN ELSE, le second est inspiré du Pascal : c'est
le REPEAT UNTIL. Les deux sont relogeables, les
sources* comportent tous les renseignements
nécessaires. J'espére que ces deux exemples vous
inspireront. Vous pouvez trés facilement adapter la
routine SWAP parue dans Tremplin Micro n°4 ou le
FILL de Tremplin Micro n°7, mais laissez plutét
s'exprimer votre imagination...
* EXEMPLE. SOURCE (un seul fichier). .
Les
conseils
du sage
NESTOR
POLY.OBJET ayant été lancé par BRUN
POLY.OBJET,A$4000 (ne pas oublier
V'adresse) vous |'activerez, comme le
précise Maurice Chavelli en appuyant
simultanément sur POMME OUVERTE et
le POINT D'INTERROGATION.
Un menu apparaitra alors et vous propo-
sera ces options :
— EDITER LES COMMANDES ACTUELLES.
— AJOUTER UNE COMMANDE.
— SUPPRIMER UNE COMMANDE.
— SAUVER LE POLY ACTUEL.
Vous utiliserez fléche droite ou fléche gau-
che pour effectuer votre choix. Personnel-
lement, j‘aurais préféré les deux autres fle-
ches, plus logiques et je pense que notre
ami YVAN KOENIG serait de mon avis.
Pas de probléme particu-
lier. On se proméne dans
la liste, toujours avec les fleches. Deux
colonnes : le premier token est celui que
pratique votre Apple. Le second est le,
méme, sauf modification. A ce stade,
pour modifier une commande, il suffit de
presser la touche RETURN et de taper le
mot (le vétre) qui remplacera le mot-clef
actuel. Ainsi, 4 la place du classique END
vous pourriez rentrer FIN. Moi, je préfére
OUF ! Quand c'est fait : RETURN, ordre
parfaitement compris par tout Apple,
mais auquel les IBM et compatibles préfé-
rent ENTER.
AJOUTER Il y a ceux qui savent
(Maurice)... et les autres.
Cest vrai que l'emploi de |l'option AJOU-
TER tombe sous le sens... quand on sait.
Bien ! C'est quand méme pas la mer 4
boire. Imaginons que vous puissiez instal-
ler une routine de COPIE D'ECRAN &
l'adresse $300... et qu'elle y soit effecti-
vement. Pour |'automatiser par une com-
mande /MP, il vous suffira de taper IMP
(évidemment) quand POLYGLOTTE vous
le demandera puis 0300 quand il s‘inquié-
tera de l'adresse. Tout ¢a est enfantin.
Pour le reste, aucun probléme particu-
lier... sauf que Maurice Chavelli jove
avec les buffers de ProDOS, mais il faut
bien s‘amuser, pas vrai.
LESOURCE Vous le trouverez sur la
disquette car il est bien
trop long pour figurer dans la revue.
4
GUY-HACHETTE
POLY
OBJET
Si vous n‘avez
jamais saisi une
routine en
langage machine,
tapez d'abord un
CALL - 151, puis
sitét l'apparition
de l'astérisque
( * ), tapez
gentiment chaque
ligne, sans vous
presser.
Attention !
ne tenez pas
compte du total
indiqué en bout
de ligne. Il est
destiné aux
heureux
possesseurs de
notre disquette
SIGNATURE et
permet de vérifier
la saisie.
Quand vous aurez
terminé, sauvez la
totalité de la
routine par un
indispensable :
BSAVE POLY.OBJET,
AS8AQ0, LSCI3
TREMPLIN MICRO
8A00: AD
8A10: 20
8A20: 85
8A30: AD
8A40: BC
BA50: Ag
BA60: 92
8A70: BC
8A80: DO
BA90: 86
BAAD: 86
SABO: DO
8ACO: 8A
8AD0: 59
BAEO: 4C
SAFO: FD
8B00: 92
8B10: AO
8B20: 24
8B30: 3A
8B40: F9
8B50: 91
8B60: 58
8B70: 09
8B80: C9
8B90: DO
8BA0: DO
8BB0: 4C
8BCO: AD
8BDO: 91
8BE0: 20
8BFO: 32
8C00: 20
8C10: 04
8C20: 25
8C30: 8C
8C40: 8B
8C50: Ag
8C60: 5B
8C70: B3
8C80: 02
8090: DO
8CAO;: 1C
8CBO: 08
8CCO: 8C
8CDO: 8D
8CEO: E6
8CFO: CS
8000: 91
8D10: 90
8D20: 1C
8D30: Ag
8040: 20
8D50: AB
8B 90
DO 03
Ag 40
FE Ad
3BC1
EAC4
FéSA
9728
A3C0
D07BC
B46F
9A10
5888
DFS4
PADS
2D0E
7442
111E
CBC7
0A2B
8i1E2
EFA3
198D
8097
88AC
918C
CAAg
FaB6
E3EC
PAIS
8657
7C3D
33DF
FA37
5858
BSOF
0718
8B4B
0275
7FE3
A0B7
6B29
FB48
A8D4
$554
21F3
E141
C136
9C3C
SBA?
66C8
S0c2
76C6
F492
SADE
cccB
E185
0475
LE POLYGLOTTE coos: sue
8060: 00
8070: E3
8080: 8D
8090: FC
8DA0: 07
8DB0: 90
8DCO: 02
8DD0: DO
8DEO: 92
BDFO: 41
8E00: 8D
8E10: 59
8E20: EE
8E30: 8B
8E40: 33
8E50: DB
8E60: 00
8E70: E6
8E80: Bi
BE90: 68
8EA0: 98
SEBO: 20
8ECO: ES
SEDO: 91
8EEO: ES
8EFO: DO
8F00: C9
8F10: C9
8F20: FS
8F30: 1C
8F40: E6
8F50: 1C
8F60: 24
8F70: BD
8F80: 20
8F90: FB
8FA0: CF
8FBO: 20
8FCO: 8A
BFDO: 06
8FEO: FS
8FFO: SA
9000: 3A
9010: DO
9020: 05
9030: 02
9040: 02
9050: AD
9060: 85
9070: 09
Bi
92
AD
ay
1c
38
co
24
20
4c
00
Bi
FO
ED
2A
ay
FB
08
02
1A
91
DB
08
E3
Do
cs
8B
E6
92
06
A0
Ag
8E
10
Fé
Ag
04
1C
bo
1A
bo
ES
02
1D
cé
4E
20
bo
F2
4c
20
a1
20
BD
E6
cc
DA
Ag
3E
ES
4c
DB
8c
14
58
Ag
70
00
1A
E2
ag
0A
9D
92
1578
EF60
339A
27B6
9753
4818
7CA8
D940
BB72
S1F7
CEDO
EA61
C35c
A464
ADSS
B864
9D3E
773D
SBAO
9CFB
BAD
DESB
4336
7A54
2066
1329
2DA7
9084
90F4
0025
0838
£62C
45A9
B542
OBSD
07E1
4784
965C
0130
2139
8266
13F7
EF72
11€2
2041
BAI?
5622
2174
B479
6B43
QUESTION
Lecteur de votre reve depuis le premier
numéro, j‘opprécie le nombre et lo qualité
des orticles, et surtout leur caractére
didactique.
Trés modeste programmeur en Bosic
Applesolt, vous m aver tiré sans le savoir
de bien des tracos et je ne m étendra pos,
cor vous connaissez bien cela, sur la joie
de voir enfin un petit programme fourner,
méme si le résultat est dé oux ficelles
découvertes dans TREMPLIN MICRO plutét
qué mes talents personnels.
i je vous écris avjourdthu, cest que [i
intention de changer mon ‘vieil” Apple
{IC pour un Apple IIGS et que ce projet me
plonge dans des abimes de perplexité. Je
mexplique ; ma configuration actuelle
est lo suivante.
APPLE IIC 128 KO.
1 LECTEUR EXTERNE MARQUE APPLE (5
pouces 1/4),
1 MONITEUR ZENITH MONOCHROME
R
JONSTICN APPLE
CABLE PERITEL "CHAT MAUVE” (Pour
les jeux en couleurs).
Je trovoille principalement sur APPLE-
WORKS V1.2 ainsi que sur VERSION TEL et
VERSION CALC. Mes questions sont les
‘suivontes
# Sijachéte un IIGS, quels sont les péri-
phériques ue je pourrai conserver
5
+ Mes logiciels tourerontils sur un
NGS?
Si je viens vous ennuyer avec ces ques-
tions, c'est que malgré de nombreuses
démarches auprés de différents reven-
deurs (y compris ceux qui mont vend
mon lIC il y @3 ons) je n'ai jamais obtenu
de réponses précises. L'un me dit que mon
lecteur 5 pouces 1/4, bien que de marque
Apple, ne sero pas compatible; un
second le contredit ; un troisiéme me pré-
dit des problémes sans nom entre le lIGS
et IIMAGEWRITER | ; un autre moassure
‘que mon Modem est fotalement incompa-
tible ; quand & APPLE FRANCE, ils n'ont
jamais doigné répondre 6 mes lettres...
Voilé! vous étes donc mon demier
recours, jespére que vous pourrer
mécloirer et, dans lattente de vous lire,
je vous prie de recevoir mes cordiales
solutations. Jo. P. (PARIS 13*)
GUY-HACHETTE
2
REPONSE 9080: 20 OC FD C9 95 DO 04 B1 28 DO OF C9 88 DD 07 BA BLES
9090: FO EE Cé 24 DO E9 C9 BD FO 1S CP AL 90 E2CP ED 456!
90A0: BO DE EO 0A FO DA 9D 00 02 20 ED FD E8 DO D1 9D 79711
a mois que je sae 6 | 2080: 00 02 4C 9C FC 20 58 FC AD 00 B1 1A DO 03 20 3F ASF?
WE er eercnnt Came | 9OCO: 91 AS 14 85 1C AS 1B 85 1D AO 00 84 24 B1 18 FO 0454
de certains de leurs revendeurs | 9000: OF 48 09 80 20 ED FD ES 18 DO 02 E6 19 68 10 ED 781
agréés, mais a ne semble pos | 90E0: B1 1A FO 33 A OD 85 24 A9 AD 20 ED FD AY BE 20 3634
Soméliorer. 90F0: ED FD ES 24 E6 24 ES 24 BI 1A 48 09 80 20 ED FD SaAe
Je vais essoyer déclirer vote | 9100: ES 1A DO 02 E6 1B 68 10 EF ES 25 AS 259 17 FO 1 7DF
lone: 9110: 06 20 22 FC 4C C9 90 AS 25 CA BE ES 92 60 AD 00 E790
* Votre lecteur 5° IK est proboble- | 9120: CO 10 FB 8D 10 CO 60 AO 27 B1 28 09 80 91 28 88 EDF2
meth un UNDIK beige Vest rer. | 9130: 10 F7 60 AQ 27 B1 28 29 3F 91 28.88 10 F7 60 AM 48C0
peut cependont sil sogit din | 9140: DO 85 18 85 19 A B3 85 1A AI 94 85 1B 60 Aé BB D571
exemploie ‘oncien” quil ot | 9150: CA AO 04 84 13 EB BD 00 02 24 13 70 04.C9 20 FO 3930
besoin dine petite intervention | 9160: F4 85 OE C9 22 FO 74 70 4D C9 3F D0 04 A9 BA DO C9A2
pkg flelltesnsl 9170: 45 C9 30 90 04 C9 3C 90 3D 84 AD AP 83.85 9D AF 34600
renseigner Sivousen nerloce. | 9180: 93 85 9E AD 00 84 OF 88 86 BB CA CB DO 02 ES 9E 4497
sion, i foudrait le brancher sur un | 9190: EB BD 00 02 C9 20 FO F8 38 Fi 9D FO EE C9 80 DO 0285
G5 et essayer le FINDER dela dis- | 91A0: 41 05 OF C9 CS DO OD BD 01 02 C9 4E FO 34.09 4F- F703
qn gatime sone ive | 91Bo: FO 30 A9 C5 A4 AD EB C8 99 FB 01 B9 FB 01 FO 39 3002
une icéne, tout vo bien. Sinon, | 9100: 38 E9 3A FO 04 C9 49 DO 02 85 13 38 EP 78 DD 86 «BEA
écriver ou SAV en précisont e | 91D0: 85 OE BD 00 02 FO DF CS OE FO DB C8 99 FB OL EB Aand
numéro de série de votre lecteur. 250F
prcspbecns’<Aagtad ped 2085
oe cme we 1% P| 9210: FO 09 C9 C9 FO 05 C9 2C FO OL 40 20 OC DA 20 1A ind
© Votre sours seo inutilsoble mais | 9220+ DS 20 B7 00 FO 10 C9 C9 FO 04 C9 2C DO EC 20 B1 BERS
[eGS est iré avec SA sours 9230: 00 20 OC DA DO E4 68 68 AS 50 05 S1 DO 06 AI FF 3153
© Le doystick sera viilsable. 9240: 85 50 85 51 AO 01 Bi 9B FO 44 20 58 D8 20 FB DA EAL!
+ Le céble Péritel Chot Mowe est | 9250: C8 B1 9B AA C8 Bi 9B C5 51 DO 04 £4 $0 FO 02 BO 4792
sons obet ici. $i vous acheter une | 9260: 2D 84 85 20 24 ED AY 20 A4 85 29 7F 20 SC DBAS SUFD
nite centrale seule, il existe un | 9270: 24 C9 21 90 07 20 FB DA AP 05 85 24 C8 BI 9B DO EDS
céile qu vous pemetra duller | 9280: 1D AB B1 9B AA CB B1 9B 86 9B B5 9C DO BS AI OD Ba4D
"PERTE résubol vorint de cor. | 92903 20 SC DB 4C D2 D7 CB DO 02 E46 FE BI 9D 60 10 CC SaF4
rect & linsupportable selon les | 92A0: 38 E9 7F AA 84 85 AD 83 84 9D AD 93 84 9E AO FF E78B
séléviseurs) 92B0: CA FO 07 20 96 92 10 FB 30 Fé A 20 20 SC DB 20 747A
* LIMAGEWRITER | est compatible | 92C0: 96 92 30 05 20 SC DB DO Fé 20 SC DB AI 20 DO 98 =F 202
pd hed omibr ded peti 92D0: AD AD AZ F2 AD 30 CO CA EA EA DO FB 88 EA EA DO 1706
proline (* | 9260: F1 60 00 00 00 00 00 C2 D3 C1 D6 C500 D2 CSCS 3445
4 , 92F0: C9 D8 AD BA AD 00 DO CF CC D9 AE AC C1 A4 B4 BO 1202
pies ppm lpragral 9300: BO BO AC CC A4 B1 BO BO BO 8D AD AD AD AD AD AD B5a8
sur ce point 9310: AB D2 CS D4 D5 D2 CE AY AD AD AD AD AD AB CS D3 4791
De toutes focons, jenvoie copie de | 9320: C3 AP AD AD AD AD AD AD AD BE AD AD AD AD AD AD a5?
votre lettre et de ma réponse GAPPLE | 9330: AD 00 AD AD AD AD AD AD AB D2 C5 D4 DS D2 CE AP 3E%!
peur quis pussent eventvelement, | 9340: AQ AD AD AB CS D3 C3 AI AD AD AD AD BC AD AD AD EBS
competion co conrigr. Yran Keng, | 2350: AD AD BE AD AD AD AD AD AD 00 AD AD AD AD AD AD EEE
’ | 9360: AD AD AD AB D2 C5 D4 DS D2 CE AP AD AD AD AD BC 4E4D
thw 9370: AD AO AD AD AD BE AD AD AD AD AD AD AD AD AD AD 4838
9380: AD 00 AD AD AD AD AD AD AD CC C5 D3 AD CF DS D4 4570
9390: C9 CC D3 AD C4 DS AD DO CF CC D9 C7 CC CF D4 D4 F4EF
93A0: C5 00 AD AD AD AD CS C4 C9 D4.C5 D2 AN CCC5 D3 AEDS
9380: AO C3 CF CD CD C1 CE C4.C5 D3 AN C1.C3:D4 DS C5 CB49
93C0: CC CC C5 D3 00 AD AD AD AD C1 CA CF DS D4.C5 D2 FC4A
93D0: AO DS CE CS AD C3 CF CD CD C1 CE C4.C5 00 AD AD 9A20
TREMPLIN MICRO #
LE POLYGLOTTE (oLy.oBser:
93E0: AO A
93F0: C3 a ee re c . ta o Pe
7400; Dé C5 D2 AO CC CS AD DO CF CC
9410; C5 CC 00 AD AD AD AD CC ES AD
9420: AQ ES F3 F4
9430: AO 00 AD AO AD AD D1 FS ES EC
9440; 00 AQ AD AD AD D1 FS ES EC EC
9450: F3 F3 ES BF AO AD AD
9460: 00 00 00 00 00 00 00 00 00 00
9470: 00 00 00 00 00 00 00 00 00 00
9480; 00 00 00 45 4E C4 46 4F D2 4E
9490; C1 49 4E 50 55 D4 44 45 CC 44
9400: 47 D2 54 45 58 D4 50 52
9480: SO 4C 4F D4 48 4C 49 CE 56 4C
94CO: 48 47 D2 48 43 4F 4C 4F 52 BD
9400; 52 41 D7 58 44 52 41 D7 48 54
9460: 52 4F 54 BD 53 43 41 4C 45 BD
94F0: 54 52 41 43 C5 4E 4F 54 52 41
9500: 41 CC 49 4E 56 45 52 53 C5 46
9510: 4C 4F 52 BD 50 4F DO 56 54 41
9520: BA 4C 4F 4D 45 4D BA 4F 4E 45
9530: 4D CS 52 45 43 41 4c cc 53 54
9540: 45 44 BD 4C 45 D4 47 4F 54 CF
9550: 45 53 54 4F 52 C5
9560: 52 CE 52 45 CD 53 54 4F DO 4F
9570: 4F 41 C4 53 41 56 C5 44 45 C6
9580: 49 4E D4 43 4F 4E D4 4C 49 53
9590: 47 45 D4 4E 45 07 54 41
9SA0: 43
95B0: AD
9SCO: 4E D4 41 42 D3 55 53 D2 46 52
9500: SO 44 CC 50 4F D3 53 51 D2 52
9SEO: 58 DO 43 4F D3 53 49 CE 54 41
9SFO: 45 CB 4C 45 CE 53 54 52 A4 56
9600: 48 52 Ad 4C 45 46 54 Ad 52 49
9610: 44 A4 00
2 a0 De2F
AQ ba D3 i oS FO2D
a0 C1 C3 D405 6C4F
D205 Cé6 C9 D8 3830
F2 ES £3 F4 BF SFBF
EE EF ED BF AO C80
AO E1 E4 F2 E5 1024
00 00 00 00 00.—s«BI0E
00 00 00 00 00 ©0000
00 00 00 00 00 ©0000
58 04 44 41 54 5556
CD 52 45 41 ca OF IC
A3 43 41 4C CC 37F9
CE 48 4752 B2 8186
50 4C 4F 04 44 = 8730
C2 48 4F 4D css F188
48 4C 4F 41 C4 B912
C5 4E 4F 52 4D C987
41 53 C8 43 4F «E429
48 49 4D 45 4D «A036
D252 455355 4533
52055350 45 F234
55 CE 49 C6 52 0434
C25245 5455 6F38
57 41 49 D4 4c 4768
4F 48 C5 50 52 7483
43 4C 45 41 02 4FC2
CF 46 CE 53.50 9023
53 54.45 D0 AB 8387
BC 53 47 CE 49 © 0a40
53 4352 4£ AB 0220
C4 4C 4F.C7 451753
41 54 CE 50 45 7052
CC 41 53.63 43 -pcoe
48 54.A4 4D 49-795
A2E8
BORLAND
PRESENT Gi
APPLE EXPO
A l'occasion du salon Apple
Expo, BORLAND INTERNATIO-
NAL a présenté toute so
gomme de logiciels dédiés
MacIntosh.
Le marché Macintosh étant en
pleine croissance et représen-
tant pour le constructeur son
deuxiéme marché mondial
aprés les Etats-Unis, il est nor-
mal que BORLAND INTERNA-
TIONAL, fidéle 4 une politique
commerciale consistant pro-
poser des produits aussi popu-
loires que possible, suive
l'évolution de ce secteur.
Devant le succés rencontré par
ses logiciels pour PC, lo
société, soucieuse d'offrir les
mémes performances aux uti-
lisateurs de Macintosh, pro-
pose donc toute une gamme
(langage et bureautique) spé-
cifique 4 ce type de produits.
Pour BORLAND INTERNATIO-
NAL, c'est également la
France qui constitue son
deuxiéme marché aprés les
Etats-Unis.
LOGICIELS EXPOSES :
Turbo Pascal pour le Mac.
Turbo Tutor pour le Mac.
Méthodes numériques pour le Mac.
Database toolbox pour le Mac.
Reflex pour le Mac.
Sidekick pour le Mac.
Euréka, la solution pour le Mac.
L'ASSEMBLEUR ?
mais c'est facile !
Commencez par :
LE G502 PAS A PAS
Offrez-vous nos bouquins de routines
(avec disquette).
© CLINS D'CEIL AU 6502
¢ ROUTINES POUR 65C02 ET 6502
¢ NOUVELLES ROUTINES POUR LE 65C02
(uvrage que nous devons & deux lecteurs de Tremplin Micro).
Utilisez le BULLETIN DE COMMANDE a la fin du journal.
GUY-HACHETTE
WAR est un jeu d’aventure entiérement écrit
en Langage Machine. II comporte un véritable
analyseur syntaxique. Toutes les explications
sont contenues dans le programme : en voya-
geant 4 travers le temps et l'espace, vous
devrez mettre fin 4 une guerre qui a dévasté la
surface de la terre.
Un triple probleme se pose donc 4 vous :
— trouver la machine a remonter le temps,
— en obtenir le fonctionnement,
— découvrir le moyen d’arréter la guerre.
De plus, vous devez déterminer si la solution
se trouve dans le passé ou le futur...
Comme dans tout jeu d’aventure, vous donnez
vos ordres a l'aide d’un verbe 4 |'impératif suivi
d'un nom. Le verbe peut étre abrégé 4 trois let-
tres, et le nom 4 quatre.
Tapez E, O, N, S, pour vous déplacer, INV pour
l'inventaire, QUI pour arréter. A vous de
découvrir le reste du vocabulaire.
Le programme est composé :
¢ Du fichier binaire "TEXTES" contenant les
codes ASCII des messages affichés 4 I'écran.
Du fichier binaire "VECTEURS” contenant des
adresses.
¢ Enfin, du programme lui-méme : WAR.
Le source du programme (WAR.SOURCE et
WAR1.SOURCE sur la disquette) a été écrit
grace 4 l'assembleur ProCODE. J'ai été obligé
de le séparer en deux 4 cause de son im-
portance.
Pour jouer , faites uniquement BRUN WAR. Le
programme charge automatiquement les
fichiers TEXTES et VECTEURS : ils doivent donc
étre sauvés obligatoirement sous ces noms sur
la disquette :
— BSAVE WAR,A$4G00,L$1084
— BSAVE VECTEURS,A$800,L$118
— BSAVE TEXTES, A$7000,L$1FBE
ATTENTION: Le programme a été concu
sous le systéme d'exploitation
ProDOS. Pour le faire fonctionner sous DOS
3.3, voici les étapes 4 suivre :
— Remplacer les trois premiers codes du pro-
gramme WAR par : 4C E2 40.
— BLOAD VECTEURS.
— BLOAD TEXTES.
— BRUN WAR.
De plus, 4 chaque fois que le programme vous
demandera si vous voulez rejouer, répondez
non, rechargez le fichier TEXTES, puis faites
BRUN WAR.
Je vous livre la solution pour vous prouver
qu'elle existe (et par la méme occasion que
mon programme fonctionne !).
PRENDS VASE, CASSE VASE, REGARDE DEBRIS,
PRENDS PASSE, E, N, REGARDE MEUBLES,
PRENDS COUTEAU, S, POUSSE TAPIS, (suite page 10).
TREMPLIN MICRO
SeasnneenEnenAReeeesesoEETOAoSsessenseeZoNeEDeSssoREERLETACTELEeZeseaReesueesseseuaEsEassoesEsEesEBesOe
OUVRE TRAPPE, PASSE, VA TRAPPE, PRENDS
ALLUMETTES, PRENDS PISTOLET, E, REGARDE
CADRAN, POUSSE BOUTON, REGARDE
CADRAN, TIRE LEVIER, E, S, TUE CHEVALIERS,
PISTOLET, E, E, E, VA CHEMINEE, TOURNE CHE-
NET, VA PORTE, PRENDS DIAMANTS, N, O, O,
O, S, FOUILLE FOIN, PRENDS PELLE, POSE PIS-
TOLET, N, O, N, ©, POUSSE BOUTON,
REGARDE CADRAN, POUSSE BOUTON,
REGARDE CADRAN, TIRE LEVIER, E, E, DONNE
DIAMANTS, ROBOT, PRENDS DESINTEGRA-
TEUR, O, O, POUSSE BOUTON, REGARDE
CADRAN, POUSSE BOUTON, REGARDE
CADRAN, TIRE LEVIER, O, VA ECHELLE, E, E, E,
REGARDE SOLDAT, TUE SOLDAT, DESINTEGRA-
TEUR, POSE DESINTEGRATEUR,FOUILLE SOL-
DAT, PRENDS CLEF, S, OUVRE PORTE, CLEF,
POSE CLEF, VA PORTE, PRENDS DYNAMITE, N,
N, O, O, O, VA TRAPPE, E, POUSSE BOUTON,
POUSSE BOUTON, POUSSE BOUTON, POUSSE
BOUTON, TIRE LEVIER, E, ALLUME ALLUMET-
TES, REGARDE DYNAMITE, ALLUME MECHE, VA
BRECHE, REGARDE CONDUIT, DEVISSE GRILLE,
COUTEAU, VA CONDUIT, E, REGARDE PAN-
CARTE (!) REGARDE ORDINATEUR, BRANCHE
ORDINATEUR, ALLUME ECRAN, REGARDE
ECRAN, O, O, O, O, POUSSE BOUTON, POUSSE
BOUTON, POUSSE BOUTON, TIRE LEVIER, E, E,
S, REGARDE OFFICIER, TUE OFFICIER, COU-
TEAU, REGARDE OFFICIER, PRENDS UNI-
FORME, ENTERRE OFFICIER, PELLE, S, E, KRIEG,
E, TUE GENERAL, COUTEAU.
Le programme compte en tout 65 mots dans
son vocabulaire. Bien entendu, j'ai essayé de
programmer le plus de situations possibles :
par exemple, je ne vous conseille pas de
fouiller le soldat alors qu'il est encore vivant,
ou de le tuer avec une autre arme que le
désintégrateur ! Et ce n'est qu'un piége
parmi tant d'autres... .
Attention ! ce
programme est
beaucoup trop,
long pour étre
publié dans la
revue, mais
TREMPLIN MICRO
vous l’offre
moyennant une
faible
participation : 20F.
Utilisez
obligatoirement
notre bulletin de
commande 4 la fin
du journal.
La disquette
(ProDOS) comporte
non seulement le
programme, mais
le source. Vous
devrez par contre y
copier ProDOS et
BASIC.SYSTEM.
10
GUY-HACHETTE
FONTE |
Didier CHARRON
pour
Apple Ile, Ile, IGS
et APPLEWORKS
Cet utilitaire a pour objectif de vous permettre d’agrémenter vos textes, sous
APPLEWORKS, avec des polices de caractéres personnalisés. Il peut également
étre employé avec tout logiciel travaillant sous PRODOS. II est utilisable sous
DOS 3.3 en modifiant certaines lignes du programme FONTE.
FONTE est divisé en 2 parties : le CHARGEUR et
le GENERATEUR. Dans le CHARGEUR comme
dans le GENERATEUR, le choix des rubriques se
fait toujours avec fléches haute ou basse.
© permet de revenir au sommaire sans téléchar-
ger, ou aprés avoir chargé une fonte dans
l'imprimante (taper 2 fois sur RETOUR).
* permet de télécharger la fonte employée lors
d'une précédente utilisation de |'utilitaire FONTE
(allumer I'imprimante, taper sur RETOUR, attendre
le chargement, puis taper RETOUR).
Ce logiciel comporte plusieurs volets :
1° STARTUP (écrit en Basic) est le menu de présentation. II vous
propose APPLEWORKS — FONTE — MAILING — IMPRIMER
FONTES,
2° VOIR permet d'éditer toutes les fontes disponibles sur papier.
3° FONTE permet de charger une fonte dans la mémoire vive de
limprimante et aussi de créer ses propres polices de
caractéres.
Nota : le MAILING n’est qu'une suggestion de programme.
Vous pourrez avoir, sur la méme disquette, tous les programmes
FONTE, plus ceux d'APPLEWORKS. Vous pourrez aussi ajouter un
MAILING éventuel |
Les lignes 105 et 215 de STARTUP doivent étre modifiées pour une
utilisation sur lo disquette /APPLEWORKS
ou la ligne 280 pourrait étre réécrite de Ia facon suivante :
280 PRINT D$"-/APPLEWORKS/APLWORKS.SYSTEM”
TREMPLIN MICRO
© permet de télécharger une fonte 4 partir d'un
choix effectué d’aprés le catalogue des fon-
tes disponibles (allumer l'imprimante, taper
sur RETOUR, choisir une fonte a l'aide des flé-
ches haute ou basse, valider en tapant sur
RETOUR, attendre le chargement, et taper
sur RETOUR).
* permet d’effacer une fonte du disque (taper sur
RETOUR, choisir la fonte 4 effacer 4 l'aide des
fléches haute ou basse, valider en tapant sur
RETOUR, répondre O (oui) pour confirmer).
* permet d’accéder au GENERATEUR. (ite poge 12)
Il est & noter que pour le démarrage de FONTE sur lo disquette
/APPLEWORKS, il est impératif que BASIC.SYSTEM soit devant
APLWORKS. SYSTEM sur le catalogue.
Marche suivre :
Faire une copie des programmes FONTE.
© Transférer tous les fichiers de la face 1 d’ APPLEWORKS sur cette
nouvelle disquette, & l'aide de MOUSEDESK par exemple.
© Effectuer le méme travail avec le MAILING (éventuel).
* Renommer Ia disquette /FONTE en /APPLEWORKS avec I'ins-
truction RENAME ou avec MOUSEDESK.
© Recopier sur la face 2 de votre nouveau disque, la face 2
d'APPLEWORKS.
Les fichiers de police de caractéres doivent toujours étre sur la
disquette ov se trouve FONTE. Certaines polices de TREMPLIN
MICRO sont utilisables, mais les caractéres devront étre déca-
és... sinon on aura B au lieu de A, et ainsi de suite. 2
W
Il est organisé de la méme facon que le chargeur.
a. utiliser une FONTE vierge
* permet de créer une fonte 4 partir d'une
fonte vierge (taper RETOUR).
b. charger une ancienne fonte
* permet de créer une fonte a partir de la der-
niére fonte établie dans une utilisation précé-
dente du logiciel (taper RETOUR).
c. charger une nouvelle fonte
* permet d’appeler en mémoire une fonte du
catalogue pour travailler avec (taper
RETOUR, choisir une fonte a l'aide des fléches
haute ou basse, taper RETOUR).
d. sauvegarder la fonte en mémoire
* permet de sauver sur disque la fonte en
mémoire (taper RETOUR, taper le nom désiré
~ pour effacer des caractéres : utiliser fleche
gauche ou delete -, taper RETOUR quand le
nom convient).
Dans les rubriques a, b, c, du générateur vous
appelez |'éditeur de caractéres :
* Alla question : APPEL CAR? vous pouvez répondre
par n'importe quel caractére dont le code ASCII est
entre 32 et 126 inclus. L'’éditeur vous proposera
dans une grille le caractére dessiné point par
point. Si vous tapez RETOUR 4 Ia place d'une let-
tre, vous aurez une grille vierge. Si vous tapez
ESC(escape), vous sortirez de I'édition.
* Le curseur est maintenant sur Ia grille, vous pou-
vez (re)définir votre caractére. Déplacez-vous
avec les fléches. Pour ajoufer ou supprimer un
point de la matrice : tapez sur ESPACE. Pour sortir
de I'édition, enfoncez la touche ESC (escape).
* Alaquestion : TYPE H ou h, tapez H pour utiliser la
matrice haute et h pour la matrice basse (lettre
avec jambage...)
* Ala question : RANGE CAR? vous tapez le carac-
tere sous lequel celui que vous avez défini doit
étre rangé. Si vous tapez ESC(escape), il n'y aura
pas de rangement ; vous sortirez alors de I’édition
pour une sauvegarde éventuelle.
(?) permet d'avoir le catalogue des fontes
disponibles.
(ESPACE) sert & définir la matrice d'un caractére.
Ce logiciel fonctionne trés bien avec les imprimantes
DMP, IMAGEWRITER | et Il. Sur les Apple lle, la carte
80 colonnes est obligatoire, le Kit 65C02 sera aussi le
bienvenu, mais n'est pas nécessaire.
Le chargement des fontes en mémoire s’effectue tou-
jours 4 l'adresse $4000 et 95 caractéres sont disponi-
bles (du code ASCII 32 au code ASCII 126 inclus). Ils se
présentent sous la forme d'une matrice 8 X 8.
Pour faire travailler |'imprimante avec une fonte per-
sonnelle, il faut lui envoyer la séquence ESCAPE '
(27 39) et pour revenir a la fonte normale, c'est la
séquence ESCAPE $ (27 36).
Sous APPLEWORKS, il faut définir une nouvelle imprimante :
* menu AUTRES ACTIVITES
e menu DONNEES IMPRIMANTE : choisir AJOU-
TER IMPRIMANTE
* menu AJOUTER IMPRIMANTE : choisir 12 et
donner un nom
* menu CODE IMPRESSION : définir les codes de
l'imprimante
« menu SOULIGNEMENT
*® menu DEBUT SOULIGNEMENT
ESCAPE ' ou ESCAPE ! ESCAPE’
* menu FIN SOULIGNEMENT : répondre ESCAPE
$ ou ESCAPE $ ESCAPE ”.
Ceci est un exemple, vous pouvez employer GRAS 4 la
place de SOULIGNEMENT.
Dans le traitement de texte, lorsque vous voulez utili-
ser les caractéres spéciaux : tapez CONTROLE-S ;
pour revenir aux caractéres normaux: tapez
CONTROLE-S. II faut savoir qu’aprés chaque retour
chariot, le soulignement est annulé. Au moment de
l'impression, demandez la nouvelle imprimante.
ll foudra taper CONTROLE-G a la place de
CONTROLE-S si vous avez paramétré votre impri-
mante sur les caractéres gras. L'utilisation de la fonte
vierge permet d’éditer un texte en occultant tous les
mots écrits en caractéres personnalisés.
répondre
CREE.FONTE.FIM
10 DS = CHR$ (4) Tapez et lancez ce
20 PRINT D$"CREATE FONTE.FIN,TTXT" | court programme
30 PRINT D$"OPEN FONTE.FIN,TTXT” pour créer
50. PRINT "VIERGE” appear lors
(RETOUR) _ valide tous vos choix. 60 PRINT "VIERGE" » la premiere
(ESC) vous raméne toujours a l'état précédent. IO FRINT DY SLOSE on
2 GUY-HACHETTE
100
105
110
115
120
125
DS = CHRS (4):BS = "RUN"
PRINT D$"PRE3": PRINT D$"PRE
FIX/TM17/FONTE"
REM MENU
DATA weseeeeeesee «SOMMAIRE..
130
135
140
145
150
155
160
165
170
175
180
185
190
195
200
205
210
215
“"“Imprimer les fo
ntes ~~ *
DATA &&
1 = - 1: RESTORE : PRINT C
HRS (12): HOME
I = 1 + 1: READ AS: IF AS <
> "&&" THEN T$(I1) = AS: GOTO
150
NBE=1-1
HOME :HT = 23
HTAB HT: VTAB 8: INVERSE : P
RINT T$(0);: NORMAL
HTAB HT: VTAB 10: FOR G = 1
TO 34: PRINT CHR$ (255);: N
EXT G: PRINT
FOR I = 1 TO NBE
VTAB 10 + I: HTAB HT: PRINT
TSI)
NEXT I
HTAB HT: VTAB 10 + I: FOR G
= 1 TO 34: PRINT CHR$ (255)
33 NEXT G: PRINT
1=1
VTAB 10 + I: HTAB HT + 1: IN
VERSE : PRINT MIDS (T$(1),2
432) 3: NORMAL
HTAB HT: VTAB 14 + NBE: PRIN
T "Sélection :FLECHE HAUT ET
BAS"
HTAB HT: VTAB 15 + NBE: PRIN
T "Validation:RETOUR CHARIOT
"5: GET RS
IF R$ = CHR$ (27) THEN PRI
884D
FCAF
b18C
389F
7AB3
25F8
28CF
28CF
2ASB
8183
60E8
45A2
9510
E994
0261
3286
9DCB
16AS
9293
FA26
E322
NT D$"RUN/TM1 7/STARTUP" AB4D
220 IF ASC (R$) = 13 THEN PRIN
T : GOTO 275 438F
225 IF ASC (R$) = 10 THEN 255 = 32E8
230 IF ASC (R$) < > 11 THEN 20
5 4387
235 VTAB 10 + I: HTAB HT: PRINT
T$(1) 3286
240 1=1-1 7ASC
245 IF I < 1 THEN I = NBE CBAA
250 GOTO 200 333D
255 VTAB 10 + I: HTAB HT: PRINT
T$(1) 3286
260 1=14+1 8058
265 IF I > NBE THEN I = 1 8AAB
270 GOTO 200 333D
275 ON I GOTO 280,285,290,295 OBA
280 PRINT D$"-APLWORKS.SYSTEM" 5119
285 PRINT D$ + BS + “FONTE” psp
290 GOTO 200 333D
295 PRINT D$ + BS + "VOIR" FASC
100 Be = 8 “70tSeeeseee . OciA
105 DIM C$(8,8) 580A
110 FOR F = 1 T0 8: FORD =1T
8:C$(D,F) = ".": NEXT D: NEX
TF EBA
115 D$ = CHRS (4) B3A4
120 E$ = CHR$ (27) CFDA
125 PRINT D$*PREFIX": INPUT PF& 47AC
130 REM
135 TEXT : HOME : PRINT D$"PRE3"
: PRINT 1CE6
140 DIM G$(50): PRINT D$"OPEN ";
PF$;",TDIR": PRINT D$"READ "
;PFS FA3D
145G=1 4048
150 INPUT A$: INPUT A$: INPUT A$ 582F
155 INPUT G$(G):G$(G) = MID$ (G
$(G) ,2,15) ABC2
160 IF G$(G) = "" THEN 175 CF25
165 IF MID$ (G$(G),1,3) = "FT."
THEN G$(G) = MID$ (G$(G),4,
12:6=G+1 EDS
PaRasessUaasNORESSsORARONNZEAETUTO NEON FONNCC OEE NEAAeRAGHAODNAAAAOMOREAUERERAIELATGHOCEHHMRODDRARATOES
TREMPLIN MICRO
13
170
175
180
185
190
(suite et fin)
GOTO 155
G = G - 1: PRINT D$*CLOSE"
PRINT D$"BLOAD FONTE.CODE"
REM IMPRIMANTE
VTAB 18: HTAB 10: PRINT “Al1
umer 1’Imprimante (DMP/IW) “
32 INPUT AS
VTAB 18: HTAB 10: PRINT “Edi
tion des fontes disponibles
195
200 PRINT D$"PR£1": PRINT E$"q";
CHR (9)"136N"; CHRS (15); C
HRS (9)"2"
PRINT E$"!"
PRINT “EDITION DES FONTES":
PRINT
PRINT "SYSTEME ““"""3: FOR L
= 32 TO 126: PRINT CHR$ (L)
jy: NEXT L: PRINT
FOR U = 1 TO G:K$ =
KS = "FT." + K&
PRINT D$"BLOAD"K" ,A$4000"
CALL 768
PRINT G$(U) ;E$"“";: FOR L =
32 TO 126: PRINT CHRS (L);:
NEXT L: PRINT E$"$"
205
210
215
220
225
230
235
240
GSU)
100
105
PRINT CHR (4)"PRE3": PRINT
VTAB 12: PRINT “.
o€ Auteur desseeeee
«Didier. .CHARRON.
LOMEM: 20000:B$ = * ne
“""""33 FOR D = 0 TO 9: READ
E: POKE 820 + D,E: NEXT : DA
TA 104,168,104,166,223,154,7
2,152,72,96: DIM C$(8,8): FO
RF =170 8: FORD=1 708
:C$(D,F) = ".": NEXT Dt NEXT
F:D$ = CHR$ (4):E$ = CHRS
(27)
PRINT D$"PREFIX": INPUT PFS
PRINT : DIM G$(50): PRINT D$
"OPEN ";PF$;",TDIR": PRINT D
$"READ" ;PF$:G = 1: INPUT A$:
INPUT A$: INPUT AS
INPUT G$(G):G$(G) = MIDS (6
$(G),2,15): IF G$<G) = "" TH
EN 140
130 IF MID$ (G$(G),1,3) = "FT."
115
120
125
2046
S06E
OFAD
A7AE
9807
oA4a?
0288
BOE?
BC48
1669
7682
7800
8331
9C9B
Bé688
47AC
SBFC
o719
245 NEXT U asp?
250 PRINT E$; CHR$ (34) 8BFD
255 PRINT D$"RUN STARTUP" FFAE
100 TEXT : NORMAL :D$ = CHRS (4
) CD3E
105 HOME : VTAB 12: INVERSE : PR
INT "FT.VIERGE EN COURS": NO
RMAL B0AS
110 A = 16384 9217
115 FOR I = 0 TO 3: READ R: POKE
1 + A,Ri NEXT Apso
120 A =A + 3:B = 31:F = 72 24B6
125 B= B+ 1: POKE A + 1,B: POK
EA + 2,F apse
130 FOR I =A + 370A + 10: POK
E 1,0: NEXT 2855
135 A =A + 10: IF A < 17337 THE
N 125 cops
140 POKE 1,0 1ESE
145 PRINT D$"BSAVE FT.VIERGE,AS4
000,L955": PRINT D$"RUN STAR
TUP* F9D9
150 DATA 27,43,27,73 C2AA
THEN G$(G) = MID$ (G$<G),4,
12):6=G6+1 oEDS
135 GOTO 125 1B43
140 G = G - 1: PRINT D$"CLOSE":H
= 0: IF PEEK ¢ - 1088) - 22
4< =0 THENH=1 C1E3
145 PRINT D$"BLOAD FONTE.CODE":
PRINT D$"OPENFONTE.FIN,TTXT"
: PRINT D$*READ FONTE.FIN":
INPUT HS: INPUT I$: PRINT D$
"CLOSE":H$ = HS + MIDS (BS,
1,12 - LEN (HS)):1$ = I$ +
MIDS (B$,1,12 - LEN (1$)):1
= 6 720
150 PRINT D$"PRE3": PRINT 4552
155 GOSUB 300: ONERR GOTO 290 4368
160 IF 1) 14 THEN I = 6 323D
165 IF 1 < 6 THEN I = 14 9B3F
170 IF I = 10 THEN VTAB I: HTAB
353 PRINT * "777777" "; CF4I
175 VTAB I: HTAB 3: PRINT "=)"3:
GOSUB 500: IF E = 10 THEN V
TAB 1: HTAB 3: PRINT " ~"j:1
OTe
GUY-HACHETTE
4
}o--——-
180
185
190
195
200
205
210
215
220
225
230
235
240
245
250
255
260
265
270
275
280
285
290
= 1 + 2: GOTO 160
IF E = 11 THEN VTAB I: HTAB
3: PRINT " “"3:I = 1 - 2: GO
TO 160
IF E = 13 THEN 195
GOTO 175
ON (1 / 2) - 2 GOTO 200,230,
235,340,385
VTAB 22: HTAB 39: GOSUB 500:
IF E < > 13 THEN 220
IF J$ < > "* THEN I$ = JS
IF FS < > “* THEN HS = FS
PRINT D$"OPENFONTE.FIN,TTXT*
: PRINT D$"WRITE FONTE.FIN":
PRINT H$: PRINT I$: PRINT DS
"CLOSE": PRINT D$"RUNSTARTUP
IF E = 27 THEN 160
GOTO 200
F$ = H$: GOSUB 275: GOTO 200
vei
IF J <¢ 1 THEN J = 6G
IF J > G THEN J = 1
VTAB 10: HTAB 35: INVERSE :
PRINT “ ";G$¢J);" "3: NORMAL
: PRINT " “77> ™ TTT eeene hs a
TAB 34: GOSUB 500: IF E = 11
THEN J = J - 1: GOTO 240
IF E = 10 THEN J = J + 1: GO
TO 240
IF E = 13 THEN F% = G$(J): G
OSUB 275: GOTO 200
IF E = 27 THEN PRINT " “""~
woe eee ";: GOTO 160
GOTO 240
IF F% = "" THEN 240
K$ = "FT." + F$: PRINT D$"BL
OAD"K$" ,A$4000": VTAB 18: HT
AB 10: PRINT “Allumer 1/’Impr
imante (DMP/IW) ";: GOSUB 50
0: PRINT D$"PRE1": PRINT ES"
N"; CHR (9)"80N"; CHRS (15)
3 CHRS (9)"2": CALL 768
PRINT D$"PRE€3": PRINT : GOSU
B 300: VTAB 19: HTAB 10: PRI
NT “Fonte "js INVERSE : PRIN
T ® SES 3" NORMAL : PRINT
" installée "3: RETURN
POKE 216,0: VTAB 22: HTAB 39
: PRINT *."3;: VTAB 18: POKE
1403,69: INVERSE : PRINT " E
RREUR ";: NORMAL : CALL 820:
POKE 216,128: POP*: GOSUB 54
O: POKE 1403,69: PRINT " ~~~
B42F
619C
6989
4948
9899
D749
896E
E465
EC10
3330
32A5
7548
881E
E21c
7541
ASBF
B129
2484
4B41
AABS
3B84
Fo15
295
300
305
310
315
320
325
330
335
“="""33 GOTO 160
POKE 216,0: VTAB 18: POKE 14
03,69: INVERSE : PRINT " ERR
EUR ";: NORMAL : CALL 820: P
OKE 216,128: GOSUB 540: POKE
1403,69: PRINT © ""°°°"*® 33
GOTO 605
IF H = 1 THEN 310
FOR D = 2 TO 23: VTAB D: HTA
Bi: PRINT "!";: POKE 1403,7
9: PRINT “ NEXT D: VTAB
23: HTAB 2: FOR D = 2 TO 79:
PRINT "_"“;: NEXT : GOTO 315
PRINT E%: INVERSE : FOR D =
2 TO 23: VTAB D: HTAB 1: PRI
NT "2"33 HTAB 80: PRINT "_";
: NEXT D: VTAB 24: HTAB 2: F
OR D = 2 TO 79: PRINT "L";:
NEXT D: PRINT CHR (24);: N
ORMAL
VTAB 1: HTAB 2: FOR D = 1 TO
NEXT D: VTAB
3: HTAB 5S: PRINT "<?> Catalo
gue des fontes ~~~" nombre d
e fontes disponibles: "3: IN
VERSE : PRINT * "3G;* "3: NO
RMAL : PRINT “ "3: VTAB 4: H
TAB 2
FOR D = 1 TO 78: PRINT “_";:
NEXT D: VTAB 20: HTAB 2: FOR
D = 1 TO 78: PRINT “_";: NEX
T D: VTAB 6: HTAB 6: PRINT “
«+eeeRetour au SOMMAIRE";: I
F H$ = "" THEN VTAB 8: HTAB
6: PRINT “Charger ancienne ~
FONTE";: GOTO 330
VTAB 8: HTAB 6: PRINT "Charg
er ancienne ~“FONTE" HTAB 3
5S: INVERSE : PRINT "“ “;H$;"
"3: NORMAL
VTAB 10: HTAB 6: RINT "Char
ger nouvelle
35: PRINT "
VTAB 12: HTAB 6: PRINT "Supp
rimer ~“"une “FONTE";: VTAB
14: HTAB 6: PRINT "Créer “"n
ouvelle “FONTE";: VTAB 15: H
TAB 2
FOR D = 1 TO 78: PRINT "_";:
NEXT D: VTAB 22: HTAB 16: PR
INT " “Sommaire <RETOUR>....
«eeeeSESC> changer de FONTE"
yj: RETURN
9OFF
2B4E
c290
2CA1
9A2C
AID?
6c0s
Poseseeqscreassr 25 S05 DrenEssesDoEsarTZasenssAensasannnsnseasspINeNeCnATAREAeROseRINeReeseveceaaELOnsesEeR
TREMPLIN MICRO
15
& FONTE (suite)
340 VTAB 14: HTAB 35: PRINT " ~~
es
345 IF
350 IF
355 VTA
: PRINT *
AB 34: GOSUB 500: IF E = 27
THEN PRINT “
“3: GOTO 160
IF E = 11 THEN J = J - 1: GO
TO 345
360
365 IF E = 10 THEN J = J + 1: GO
TO 345
370 IF E = 13 THEN HTAB 30: PRI
NT "O/N";: GOSUB 500: IF E =
79 THEN GOSUB S50: VTAB 12:
HTAB 30: PRINT “
375 HTAB 30: PRINT “ ~~";
160
380 GOTO 345
385 PRINT D$"BLOADFT .VIERGE ,AS40
oo"
GOSUB 565: GOTO 580
IF H = 1 THEN 405
FOR D = 6 TO 14: VTAB D: POK
E 1403,55: PRINT “!"3: POKE
1403,64: PRINT “!"3: NEXT D:
UTAB 14: POKE 1403,56: FOR D
= 1 TO 8: PRINT "_"3: NEXT :
TAB 5: POKE 1403,56: FOR D
= 1 TO 8: PRINT "_";: NEXT
GOTO 410
PRINT E$: INVERSE : FOR D =
6 TO 13: VTAB D: HTAB 56: PR
INT "2";: POKE 1403,64: PRIN
T *_";: NEXT D: VTAB 14: HTA
B 57: FOR D = 1 TO 8: PRINT
"L";: NEXT Dz PRINT CHRS (2
4);: NORMAL : VTAB 5: HTAB S
7: FOR D = 1 TO 8: PRINT *_"
3: NEXT D
410 K = 1: IF E = 13 THEN K = 0
415 FOR D = 56 TO 63: FOR F = 6
TO 13: IF K = 1 THEN VTAB F
: POKE 1403,D: PRINT C$<F -
5,D - 55);: GOTO 425
420 VTAB F: POKE 1403,D: PRINT “
390
395
400
405
4617
881E
E21C
ci06
3CC7
03cS
DBFC
1A68
4347
7407
1053
o759
3461
BDBB
S4AE
425
430
435
440
445
450
455
460
465
470
475
480
485
490
495
500
505
510
Sis
520
."3:C$(F - 5,D - 55) = *."
NEXT F: NEXT D:M =
VTAB 6: POKE 1403,5
= 56: GOSUB 570
IF E = 32 THEN GOSUB 820
IF E = 8 THENC =C ~ 1: IF
C < 56 THEN C = 63
IF E = 21 THENC =C + 1: IF
C > 63 THEN C = 56
IF E = 11 THENL =L - 1: IF
L < 6 THEN L = 13
IF E = 10 THENL =L + 1: IF
L > 13 THEN L = 6
IF E = 27 THEN 470
VTAB L: POKE 1403,C: PRINT C
$(L - 5,C - 55); CHR$ (8);:
GOSUB 570: GOTO 435
UTAB 14: POKE 1403,34: PRINT
“TYPE H ou h “3: GOSUB 540:
1403,34: PRINT
y: IF E= 720
RE = 104 THEN VL = E: GOTO
480
GOTO 470
VTAB 14: POKE 1403,34: PRINT
"RANGER CAR? “;: GOSUB 540:
VTAB 14: POKE 1403,34: PRINT
a) REPSPRECES Ty IEE we 27-7
HEN I = 12: POKE .1403,35: PR
int 2 cere “;: GOTO 40
5
IF E < 32 OR E > 126 THEN 47
0
IF E ) 31 AND E ¢ 127 THEN
GOSUB 830: GOSUB 800: GOTO 4
10
GOTO 430: GOTO 160
E = PEEK ( - 16384): IF E <
128 THEN PRINT "_";: FOR F
= 1 TO 50: NEXT F: PRINT CH
R$ (8);" "3: FOR F = 1 TO 50
: NEXT F: PRINT CHR$ (83:
GOTO 500
POKE - 16368,0:E = E - 128:
IF E < > 63 THEN RETURN
VTAB 6: POKE 1403,55: INVERS
)
4
6:L = 6:C
E : PRINT “ CATALOGUE DES FO
NTES";: NORMAL :N = 0
L = 8: FORL = 8 TO 13:N=N
+ 1: IF N > G THEN VTAB
POKE 1403,55: PRINT “
oon GOTO 530
IF L = 13 AND N ¢ = G THEN
VTAB L: POKE 1403,55: INVERS
96CF
5851
78F4
B335
7784
14DC
56c8
38C4
148A
369D
CC9C
F046
Fl48
oco2
B9AD
12B6
4888
4573
96ES
GUY-HACHETTE
16
alae alah dle Lee Ee
525
530
535
540
545
550
555
560
565
570
575
580
585
E © PRINT " == SUITE "se
NORMAL : GOSUB 540:N =N - 1
: GOTO 530
VTAB L: POKE 1403,55: PRINT
G$(N); SPC¢ 15 - LEN (G$<(N)
3
NEXT L: IF N ¢ = G THEN 515
VTAB 13: POKE 1403, 5S: INVER
SE : PRINT *
“""""33 NORMAL : GOSUB 500:
FOR L = 6 TO 13: VTAB L: POK
E 1403,55: PRINT "
BEA nemo sed "$3 NEXT :
GOTO 160
E = PEEK ¢ - 16384): IF E <
128 THEN PRINT "_";: FOR F
= 1 TO 50: NEXT F: PRINT CH
R$ (8);" "3: FOR F = 1 TO 50
: NEXT F: PRINT CHRS (8);:
GOTO 540
POKE ~- 16368,0:E = E - 128:
RETURN
IF 1% = G$(J) THEN I$ = *"
IF H® = G$(J) THEN H$ = *"
PRINT D$"DELETE FT."G$(J): F
OR O = J TO G - 1:68(0) = GS
(O + 1): NEXT O:G=G-1:V
TAB 3: HTAB 5S: PRINT "<?> Ca
talogue des fontes ““""~
re de fontes disponibles :~"
3: INVERSE : PRINT " *
3: NORMAL : PRINT " *
RN
VTAB 3: HTAB 5: PRINT “ ~"°C
réation “de “fontes ~""""nom
bre de fontes disponibles :~
";: INVERSE : PRINT " "3G;"
";: NORMAL : PRINT “ "3: RET
URN
E = PEEK ¢ - 16384): IF E ¢
128 THEN INVERSE : PRINT C$
(L - 5,C - 55);: NORMAL : FO
R P = 1 TO 50: NEXT P: PRINT
CHRS (8);C$(L - 5,C - 55);:
FOR P = 1 TO SO: NEXT P: PRI
NT CHR$ (8);: GOTO 570
POKE - 16368,0:E = E - 128:
RETURN
ONERR GOTO 295:F$ = **
IF I$ = "" THEN VTAB 8: HTA
B 6: PRINT “Charger ancienne
“FONTE";: HTAB 30: PRINT “
Reta oRae esha eee “3: GOTO 6
SS9F
A10C
2948
S9C6
é6BC9
A635
1133
PAIS
AA02
4ED5
é6BC9
590
595
600
605
610
615
620
625
630
635
640
645
650
655
660
665
670
675
680
685
VTAB 8: HTAB 6: PRINT “Charg
er ancienne “FONTE";: HTAB 3
S: INVERSE : PRINT " ";1$;"
bal NOL : PRINT *
VTAB 6: ‘irae 6: PRINT “Utili
ser “FONTE “vierge";
VTAB 12: HTAB 6: PRINT "Sauy
egarder ~““la “FONTE";: VTAB
22: HTAB 16: PRINT "<ESC> Po
ur retour au Menu Précédent
=6
IF I > 12 THEN I = 6
IF 1 <¢ 6 THEN I = 12
VTAB 12: HTAB 30: PRINT " ~~
VTAB I: HTAB 30: "PRINT "dans
: GOSUB 540: IF E = 11 THEN
VTAB I: HTAB 30: PRINT “ ~*;
1 = I - 2: GOTO 605
IF E = 10 THEN VTAB I: HTAB
30: PRINT " ““3:1 = 1+ 2: G
OTO 605
IF E = 13 THEN 645
IF E = 27 THEN FOR P = 5 TO
14: VTAB P: HTAB 30: PRINT "
“s;: NEXT PsI = 14: G
oTO 155
GOTO 620
VTAB I: HTAB 30: PRINT " “""
3: ON (I 7 2) - 2 GOTO 650,6
55,665,705
J$ = "": VTAB 10: HTAB 35: P
Le aaa “3: GOS
UB 800: GOTO 395
IF I$ = "" THEN 605
J$ = "": PRINT D$"BLOAD FT."
1$" ,A$4000": GOSUB 800: GOTO
395
vai
IF J < 1 THEN J
IF J > G THEN J 1
VTAB 10: HTAB 35: INVERSE :
PRINT " ";G$(J)3" "3: NORMAL
: PRINT SPC¢ 14 - LEN (G$¢
J)))5;: HTAB 34: GOSUB 540: I
=6
FE = 11 THEN J = J - 1: GOT
0 670
IF E = 10 THEN J = J + 1: GO
TO 670
1680
2c80
30E0
303B
8F3D
O84E
SA97
BCCE
7089
4281
1F43
8B52
6C8D
CB7A
7548
881E
E21c
219C
9ECS
SEMEEESISS ORISA SONAL ANOANUSOOLASAST AAR SSSA STOLILA GSH LG TUSTSTARE TST PALA TOT TSISTTTASE STILLS eAEe
TREMPLIN MICRO
7
690
695
700
705
710
715
720
725
730
735
740
745
750
755
760
765
770
775
780
785
FONTE (suite)
IF E = 27 THEN PRINT " “~~~
ae "s: GOTO 605
IF E = 13 THEN J$ = G$¢J): P
RINT D$"BLOAD FT."J$" ,A$4000
“: VTAB 10: HTAB 30: PRINT *
GOSUB 800: GOTO 395
GOTO 670
N= 0:L$ = “": IF J$ = "" TH
EN 715
L$ = J$: GOSUB 840:N = LEN
(L$): VTAB 12: HTAB 30: PRIN
T “=>"53 POKE 1403,34: PRINT
L$;: GOTO 735
VTAB 12: HTAB 30: PRINT "=>"
3: HTAB 35
GOSUB 540: IF E = 27 THEN 40
5
IF E <¢ 65 OR E > 90 THEN 720
PRINT CHR (E);:N = N # deb
$= 1% + CHR (E)
GOSUB 540: IF E = 27 THEN V
TAB 12: HTAB 30: PRINT “ “~~
: GOTO 605
IF E = 13 THEN M$ = L$ + MI
DS (B$,1,12 - LEN (L$): GO
SUB 780: IF @ = 1 THEN 605
IF Q@ = 2 THEN PRINT D$;"BSA
VE FT."5L%;",A$4000,L955"::@
= 0: GOTO 605
IF E = 13 THEN PRINT D$;"BS
AVE FT.";L$;",A$4000,L955":G
= G + 1:68(G) = L$ + MIDS ¢
B$,1,12 - LEN (L$)):J$ = LS
: GOSUB 565: GOTO 605
IF E = 8 OR E = 127 THEN PR
INT CHR® (8);" "5 CHRS (8);:
N=N- 1: IF N ¢ 1 THEN LS
GOTO 715
IF E = 8 OR E = 127 THEN L$
= MIDS (L$,1, LEN (L$) - 1):
GOTO 735
IF ¢E ¢ 48 OR E > 57) AND (E
< 65 OR E > 90) AND (E << >
46) THEN 735
IF N > = 12 THEN N = 12: GO
TO 735
PRINT CHR (E);:N =N # UeL
$= L$ + CHRS (E): GOTO 735
= 170 G: IF GS
NEXT R: IF @ = 0 THEN RETUR
N
BDA8
6F6A
FC48
ODD6
8301
495E
scoD
6306
3740
1110
817E
6E9D
6F40
248B
34D1
3688
Bécé
F9C4
5483
2581
790
795
800
805
810
815
820
825
830
835
840
845
850
855
VTAB 17: HTAB 6: PRINT " La
fonte ";: INVERSE : PRINT "
";M$" "3: NORMAL : PRINT " e
xiste déja “/Retour pour acc
epter “;: GOSUB 540: IF E =
13 THEN @ = 2
VTAB 17: HTAB 6: PRINT SPC¢
60);: RETURN
VTAB 14: POKE 1403,34: PRINT
“APPEL “CAR? ";: GOSUB 540:
IF E = 27 THEN POKE 1403,34
2 PRINE, © “SSS Een ate &
= 12: GOTO 605
IF E = 13 THEN RETURN
IF E < 32 OR E > 126 THEN 80
0
PRINT CHR$ (E);: FOR C = 1
TO 8:A = PEEK (16389 + (E -
32) * 10 + C): FORL = 1 TO
8:S = 128 / 2° CL - 12:89
- L,C) = CHRS ¢ - INT (A /
S) * 4+ 46):A =A - INT (A
/ §) * S: NEXT L: NEXT Cs RE
TURN
IF C#{L - 5,C - 55) = "#" TH
EN C#(L - 5,C - 55) = ".": R
ETURN
IF C#(L - 5,C - 55) = "." TH
EN C#(L - 5,C - 55) = "#": R
ETURN
POKE 16388 + (E - 32) * 10,E
: POKE 16389 + (E - 32) * 10
»VL: FOR C = 1 TO 8:B = O: F
OR L = 1 TO 8: IF C#(L,C) =
"*#" THEN B= B+ 2° (L - 1)
NEXT L: POKE 16389 + (E - 32
> * 10 + C,B: NEXT C: RETURN
Aaz=1
IF A > LEN (L%) THEN 855
IF MID$ (L$,A,1) ¢ >" "T
HEN A = A + 1: GOTO 845
L$ = MIDS (L$,1,A - 1): RET
URN
7843
427C
E7F8
7998
DEFF
EA28
7224
3224
74FO
18E6
5342
oBc7
7388
129A
FONTE.CODE %2"~
*300.332
0300- AY FF 85 06 AY 3F
0308- AD C8 BE 85 08 AD
0310- 85 09 ES 06 AS 06
0318- ES 07 Cé 08 AS 08
0320- DO 06 AS OF FO OC
0328- AO 00 Bi 06 20 ED
0330- 12 03 60
07
BE
02
FF
09
4c
GUY-HACHETTE
INITIATION
CLASSEMENT
(alphabétique, mais suivant la longueur)
Ce micro-programme ne prétend pas étre un
modéle du genre. Il vous montre seulement
comment trier une liste dans |'ordre alphabéti-
que, mais en priorité suivant la longueur des
mots. Vous noterez que le tri alphabétique est
effectué en plusieurs fois, précisément par
groupe de mots de n lettres.
100 TEXT : HOME :D% = CHR (4) 7938
105 S = 20: VTAB 23: PRINT “TAPE
R DES MOTS (RIEN POUR ARRETE
R)";: VTAB 1: PRINT : VTAB 1 BOSC
110 DIM M$<S + 1) 8694
115 FOR N = 1 TO S: PRINT N" "33
INPUT “-> "3M$(N)3 IF M$<N)
= "" THEN 125 B004
120 NEXT N BDO
125 K = O:IN=N - t:L1 = 30 F9DS
130 FOR I = 1 TON:L = LEN (M$¢
1)): IF L > L2 THENL2 =L E54D
135 IF L < Li THEN LI =L BDAS
140 NEXT 0582
145 FOR I = L1 TO L2 5056
150 K1 = K 8697
155 FOR J = K + 1 TON: IF LEN
(M8(J)) < > 1 THEN 175 4D5F
156 IF J = K + 1 THEN 171 8068
160 M$ = M$(J) 3B4D
165 FOR X = J TOK + 2 STEP -1
2M$(X) = MS(X - 1): NEXT X Sco0é
170 M$(K + 1) = MB AE47
W7iK=K+1 215F
175 NEXT J A3CC
180 IF Ki = K THEN 210 3C9B
185 IF K = K1 + 1 THEN 210 1A94
190 F = 0: FOR 2 = Ki + 1 TOK -
1 FoAS
195 IF M®(Z) < = M$(Z + 1) THEN
205 490A
200 M& = M$(2):M$(2) = MSZ + 1)
2M$(2 + 1) = M$:F = 1 OEA?
205 NEXT Z: IF F THEN 190 C067
210 NEXT I 9DCB
215 FOR I = 1 TON: VTAB I: HTAB
L2 + 8: PRINT M$(I1): NEXT 4308
220 VTAB 22: PRINT : PRINT "(E)N
“(A)PPLESOFT ~(M)ENU DI
SK "y: GET R$ 0As8
225 = "M" OR R& = "m" THEN
PRINT D$"RUN /TM17/STARTUP" 4002
230 IF R$ = "E" OR R$ = “e" THEN
RUN SAB?
235 IF R& = "A" OR R$ = "a" THEN
HOME : END 5SE26
240 GOTO 220 273F
QUESTION LUC n’est pas @ sa place.
—SSSaa Qu’est-ce qui a pu se passer ?
1. ADELE 1. Guy
2. BENOIT 2. ADELE
3. GUY 3. ANNIE
4, RAOUL 4. LUC
§. LUC 5. RAOUL
6. ANNIE 6. BENOIT
TREMPLIN MICRO
it)
Votre bibliotheque
INFORMATIQUE | »:s«s:0«
—< ; —s
|
¢ LA PROGRAMMATION
EN BASIC AVEC ProDOS
(Apple)
Qui peut se vanter de bien connaitre Pro-
DOS ? Vous... alors, bravo ! Parcourez
tout de méme les 265 pages de ce manuel
“otficiel” et je parie que vous y appren-
drez encore quelques détails ignorés. Je
vous signale au passage qu'il est accom-
pagné de sa disquette (ProDOS 1.1.1),
laquelle comporte notamment le pro-
gramme de renumérotage (et autres
commodités), intitulé "APA".
INTER EDITIONS, 87 rue du Maine, 75014 PARIS
Tél. : 43.27.74.50
¢ INTRODUCTION AU BASIC
(par Pierre LE BEUX)
Si le MS BASIC — beaucoup plus structuré
ing notre bon vieil AppleSoft — n‘a plus
secrets pour vous, c'est sans doute
parce que vous chatouillez parfois le cla-
vier d'un IBM PC ou de quelque clone (pas
drdle du tout !).
Pierre LE BEUX vous propose, dans cette
nouvelle édition, non pas un survol
rapide du MS BASIC, mais bien une étude
compléte et méthodique de ce langage.
Je ne vous conseille pas d’escamoter le cha-
pitre "introduction et pas davantage le sui-
vant, consacré aux “généralités du langage
Basic”. Ils vous procureront certainement
une meilleure connaissance du Basic en
général et du MS BASIC en particulier.
J'ai beaucoup apprécié la présentation
claire et concise de ce gros manuel (500
pages), mais plus encore les nombreux
exemples dont il est émaillé (I'auteur sait
sortir des sentiers battus !) : tris, carrés
magiques, probleme des huit reines, etc.
Pierre LE BEUX, ingénieur de |'Ecole Cen-
trale, docteur en informatique de |'Uni-
versité de Californie est aussi professeur
4 l'Université de technologie de Compie-
gne. On se prend 4 envier ses éléves !
SYBEX, 6-8 imposse du Curé, 75018 PARIS, Tél. : 42.00.95.95
e TECHNIQUES DE
PROGRAMMATION EN C
LA GESTION DES
(par R. A. RADCLIFFE et T. J. RAAB)
Cet ouvrage (traduit de l'américain par Yann
Festal) se présente sous la forme d'un
manuel de haut niveau destiné @ la fois aux
programmeurs expérimentés et aux déve-
loppeurs. I! aborde deux aspects fondamen-
taux des logiciels d'application : l'interacti-
vité et le besoin permanent de stocker des
données. De nombreux exemples illustrent
les fonctions d'entrée, de validation, d'atfi-
chage et de stockage.
Lo premiére partie, consacrée au concept de
structure de données, regroupe les techni-
ques d'encodage, de décodage et de valida-
tion. La deuxiéme partie traite des diffé-
rents types de données et comprend un cha-
pitre entier sur le développement de types
de données personnalisés. Lo troisieme par-
tie présente des exemples d'applicat.on cor-
respondants aux parties | et 2.
Les auteurs :
— Robert A. Radcliffe est consultant en
systémes d'information. II concoit et
met en place des logiciels informati-
ques ainsi que des applications pour
micro-ordinateurs.
— Thomas J. Raab se spécialise dans la
recherche micro-informatique et les
technologies de pointe.
676 pages brochées.
SYBEX, 6-8 impasse du Curé 75018 PARIS.
TECHNIQUES DE PROGRAMMATION EN
LA GESTION DE DONNEES
¢ AMSTRAD PCI512,
GUIDE DU GRAPHISME
(par G. FAGOT-BARRALY)
Ce guide permet de tirer le meilleur parti
des possibilités graphiques de |'Amstrad
PC1512. Il s‘adresse a la fois aux débu-
tants et aux programmeurs confirmés. II
décrit, par un grand nombre de program-
mes, de dessins et de photographies
d’écrans, toutes les instructions qui con-
cernent le graphisme. Plusieurs chapitres
traitent, entre autres :
Du multifenétrage, caractéristique de l'ordi-
nateur — des notions relatives ‘au tracé des
figures géométriques — de /affichage
alphanumérique — des commandes de des-
sin — du graphisme de type LOGO.
Le livre (305 pages au format 160X220)
se termine par l'analyse des méthodes
qui permettent de déplacer ou d’agrandir
un motif ou encore de lui faire subir
symétries et rotations.
Uauteur: Georges Fagot-Barraly, profes-
seur de mathématiques et d'informatique, est
spécialiste de l'utilisation des — micro-
ordinateurs dans |'enseignement. II est l'outeur
de nombreuses publications sur la programma-
tion en BASIC et en Assembleur.
SYBEX, 6-8 impasse du Curé, 75018 PARIS, Tél. : 42.03.95.95
suseeeeuanacnecacouasescesenserenseseusannsesconsassaenessensoseaasserseenassceceussen.ueuenseeseenoeee
20
GUY-HACHETTE
SugasceesrennsaannesnessaseesescerecoeasssaeesenneseseeussseReeoenEENaseaeseeesasvaseeoesNoReRoseseBCES
ILITAIRE
Marcel COTTINI
PLACE-DOS
Configuration requise : tout Apple // avec une
RAM de 64 Ko ou plus, le DOS 3.3 Slave, et un
lecteur de disquettes 5 pouces 1/4.
PLACE DOS est un programme écrit en Basic Applesoft, permettant de sauvegarder
(Write) sur les pistes $00-$02 d'une disquette déja initialisée, un systeme d’exploi-
tation placé en mémoire centrale et patché par le programme PATCH DOS. Son
fonctionnement convient tout aussi bien pour un DOS Slave autre que le DOS 3.3.
Lorsque le programme est exécuté, il appelle un sous-programme en langage
machine : RWTS.OBJ. Par la suite, HIMEM est déclaré 4 16384. Le programme,
d'une structure des plus simples, exploite certaines astuces liées au DOS 3.3. Un
menu clair et précis renseigne |'utilisateur sur la poursuite éventuelle de l’exécu-
tion en cours, permettant un suivi des principales phases du programme. La tou-
che ESC (Escapade) autorise un retour au menu précédent, ou l’abandon pur et
simple du programme avec l'option du numéro du slot. .
APROPOS DU PROGRAMME
Les variables SL et DR mémorisent respectivement
les numéros du slot et du drive ou se trouve la dis-
quette 4 traiter. Le numéro de la disquette actuelle
est lu, puis mémorisé pour une application future.
Le nom du programme de boot, sauvegardé sur la
piste $01 secteur $09 de la disquette, sera déclaré,
puis formaté dans une chaine de caractéres limitée
4 30 codes ASCII. Cette contrainte est dictée par le
DOS 3.3 qui n‘accepte qu'un maximum de 30 carac-
téres pour un nom de fichier.
Uacceptation du nom du boot suppose certaines contraintes :
© Un maximum de 30 caractéres est autorisé.
© Le premier caractére du nom sera un caractére alphabetique.
© Aprés le premier caractére alphabétique, tout carac-
tére sera toléré.
© Lebit7 sera mis 41 (ligne 630).
* Les touches de déplacement sont tolérées.
* Les minuscules sont interdites.
PHASES ESSENTIELLES DU PROGRAMME
Lignes 170-200 Affichage du menu 4 I'écran.
Lignes 210-256 Mémorisation du numéro du slot.
Lignes 260-310 _Mémorisation du numéro du drive.
Ligne 350 Annule une ancienne chaine du méme nom.
Lignes 360-480 Composition de la chaine de caracté-
res avec lenom du boot.
Formate la chaine de caractéres avec
les variables tableau.
Lignes 510-590 On détermine le type de fichier booté :
A = AppleSoft ; B = Binaire ; E = EXEC.
Lignes 610-630 On poke le nom du programme de
boot dans le tampon mémoire réservé
, au DOS.
Lignes 640-750 On sauvegarde le DOS implanté en
mémoire centrale sur les trois pre-
miéres pistes de la disquette et dans
un ordre déterminé.
lignes 770-800 Gestion d'une erreur éventuelle.
Lignes 810-820 On quitte le programme. (suite poge 22)
Ligne 500
SescresesesnsanesEeesecaseveas eee seEREEEUss ese ee EesRasesseeNesseOeeeeEsEeBeZaBeUEsROssAveoReEoRSenADe
TREMPLIN MICRO
21
aaa laltaladlaleatalaialalalal
100
Ne
120
130
140
150
170
180
190
200
210
220
230
240
250
260
270
280
290
300
310
320
330
340
350
370
380
390
REM
REM
REM
REM
REM
REM
PRINT CHRS (4);’BRUN RWTS.OBJ"
HIMEM: 16384
DIM NO$(32)
ONERR GOTO 800
REM SLOT ET DRIVE
TEXT : HOME : NORMAL
SL = PEEK (43626): REM SLOT
DR = PEEK (43624): REM DRIVE
VOL = PEEK (46017): REM NUMERO DE
LA DISQUETTE
REM MENU
TEXT : HOME : INVERSE : PRINT " PLACE LE
DOS MODIFIE”: NORMAL : PRINT : PRINT
“SUR LES PISTES $00-$02 DE LA DISQUETTE”
PRINT
FOR X =
PRINT
VTAB 8: HTAB 1: PRINT “ - LA DISQUETTE SE
TROUVE:"
REM SLOT NUMBER
VTAB 9: HTAB 1: PRINT ”
GET SL$
IF SL$ = CHR$ (27) THEN GOTO 810
IF SL$ < "3" OR SL$ > "7" THEN 220
PRINT SL$
REM DRIVE NUMBER
VTAB 10: HTAB 1: PRINT”
i: GET DRS
IF DR$ = CHR$ (27) THEN VTAB 9: CALL -
868: GOTO 200
IF DR$ < "1" OR DR$ > "2" THEN 270
PRINT DR$
SL = VAL (SL$):DR = VAL (DR$): REM
REVECTORISE SLOT & DRIVE
REM BOOT NAME
VTAB 8: HTAB 1:
1 TO 40: PRINT "%";: NEXT X:
- SLOT : ";:
~ DRIVE: "
CALL - 958: PRINT
“BOOT: ";
REM ANNULE LA CHAINE
FOR NUL = @ TO 30:NO$(NUL) = "":NO$
= NO$(NUL): NEXT NUL: REM ANNULE
L'ANCIENNE CHAINE
REM HELLO NAME
FOR HEL = 0 T0 30
VTAB 8: HTAB7 + HEL: GET NO$(HEL)
IF HEL<> @ AND NO$(HEL) = CHR$ (13)
400
410
420
430
440
450
460
470
480
490
500
510
520
530
540
550
560
570
580
590
600
610
620
THEN NO$(HEL) = '": GOTO 500: REM
TESTE LA TOUCHE RETURN
IF NO$(G) = CHR$ (27) THEN VTAB 8: HTAB
1: CALL - 958: GOTO 270: REM TESTE LA
TOUCHE ESCAPE
IF NO$(HEL) = CHR$ (27) THEN VTAB 8:
HTAB 7: CALL - 868: GOTO 340: REM
TOUCHE ESC (RETOUR AU MENU)
IF HEL = 30 THEN HEL = 29: VTAB 8: HTAB
7 + HEL: CALL - 868: GOSUB 796: GOTO
380: REM TESTE LES 30 CARACTERES
ADMIS
IF NO$(HEL) = CHR$ (8) AND HEL> @
THEN NOS$(HEL) = “":HEL = HEL - 1:
VTAB 8: HTAB 7 + HEL: CALL - 868:
GOTO 380: REM TESTE LA TOUCHE FLE
CHE GAUCHE
IF HEL< @ THEN HEL = 0: GOSUB 790:
NO$(@) = "": VTAB 8: HTAB 7: CALL -868:
GOTO 340: REM PREMIER CARACTERE ?
IF NO$(@) < CHR$ (65) OR NO$(G) > CHR$
(90) THEN GOSUB 790: GOTO 380: REM
PREMIER CARACTERE ALPHABETIQUE ?
IF NO$(HEL) < CHR$ (32) OR NO$(HEL) >
CHR$ (95) THEN GOSUB 790: GOTO 380:
REM CARACTERES SUIVANTS ?
VTAB 8: HTAB 7 + HEL: PRINT NOS(HEL);:
REM AFFICHE LE CARACTERE TAPE
NEXT HEL
REM FORMATE LA CHAINE
FOR CAR = @ TO 29:NO$ = NO$ +
NO$(CAR): NEXT CAR
REM FILE TYPE
VTAB 8: HTAB 1:
"(A)PPLESOFT
OU
GET PKS
IF PK$ = CHR$ (27) THEN GOTO 330
IF PK$<> "A" AND PK$<> "B” AND
PK$ < > "E" THEN GOTO 530
VAR = 40514: REM TYPE DE FICHIER
IF PK$ = “A” THEN PK$ = “APPLESOFT":
POKE VAR,6: GOTO 616
IF PK$ = "B" THEN PK$ = "BINAIRE”:
POKE VAR,52: GOTO 610
IF PK$ = "E” THEN PK$ = “EXEC”: POKE
VAR,20: GOTO 616
REM POKE HELLO NAME
VTAB 8: HTAB 1: CALL - 958: FLASH : PRINT
" WRITE DOS - - - -": NORMAL: PRINT :
PRINT “BOOT NAME: ";NO$: PRINT
“FICHIER : ";PK$: PRINT "VOLUME
“VOL
FOR NO = 1 TO 31: POKE 43636 +
NO,160: NEXT NO: REM ANNULE HELLO
CALL - 958: PRINT
INAIRE
(
(E)XEC —» ";
22
GUY-HACHETTE
640
650
670
690
700
70
720
730
FOR | = 1 TO LEN (NO$): POKE 43636 + |,
ASC ( MID$ (NO$,I)) + 128: NEXT I: REM
POKE LE NOM NO$
REM WRITE DOS
& DISK(SL,DR,G00)
BUFF = 46592
POKE 43615,0: REM ANNULE LA COM
MANDE
POKE 47083, VOL: REM POKE LE NUMERO
DU VOLUME ACTUEL
FOR | = 0 TO 9: & WSEC(@@,1, BUFF): BUFF
= BUFF + 256: NEXT|
BUFF = 39680
FOR | 16 TO 15: & WSEC(@0,1,BUFF):
BUFF = BUFF + 256: NEXT |
BUFF = 41216
FOR| = 1TO1: & WTRK(I, BUFF): NEXT I
740
750
760
770
780
790
800
810
820
BUFF = 45312
FOR | = @ TO 2: & WSEC(@2,1,BUFF):BUFF
= BUFF + 256: NEXT
GOTO 120
REM GESTION ERREUR
HOME : VTAB 12: & BELL: & BELL: PRINT
"I/O ERROR - LECT/ECRITURE IMPOSSI
BLE.": PRINT "TAPEZ UNE TOUCHE POUR
CONTINUER....”: GET R$: RETURN
FOR BIP = 1 TO 10: & BELI: NEXT BIP:
RETURN
GOSUB 776: GOTO 170
REM QUITTER LE PROGRAMME
HOME : PRINT : PRINT "GOOD BYE.-": &
BELL: END
Tapez ces codes
suivant le 9000: AY 17 8D Fé
processus 9010: AD EA B7 8D
habituel et 9020: FO 1A C9 FF
9030: DE £8 BD 4C
sauvez'voire 9040: 19 Ad 19 BD
programme par 9050: 00 52 53 45
un BSAVE 9060: 57 54 52 4B
RWTS.OBJ, 9070: F3 90 73 91
9080: 00 85 3C 20
A$9000,LSOIFA 9090: AS BB 85 42
90A0: C8 DO F7 84
Si vous possédez 9080: 89 4C Bi 00
notre disquette oe 76 a :
+ 43
a 90E0: 00 00 00 00
90F0: 03 00 00 00
l'exactitude de la 9100: 03 4C 99 E1
saisie. 9110: BE DE 20 67
9120: D7 90 AI 00
9130: 03 4C B8 DE
9140: 8E DB 90 4C
9150: D9 90 20 BE
9160: DE 20 67 DD
9170: 90 4C BB DE
9180: 04 4C 12 D4
9190: DA 90 18 AD
WT ie 91A0: CE DE 90 CE
91B0: A9 02 8D E1
91C0: 90 4C 8D 91
BJ 91D0: AB 88 DO FD
91E0: 50 AI 22 AD
mee 91FO: 01 FO EE 2C
03
07
FO
90
RUWTS.OBJ ,A$9000 ,L$01FA
ag
90
COMPLEMENT DE PLACE.DOS
8D F7 03 AD E9 B7 8D D6 90) = AB46
A2 00 86 19 AD 00 BD 4C 90) = -B2IC
B8 DO 07 C8 E8 DO EF 4C C9 P5AE
E8 E6 19 DO DF 20 98 DF 0S =C BSS
BD 70 90 48 60 44 49 53 4B 486E
53 45 43 00 52 54 52 4B 00 = 44a2
4C 4C 00 42 45 4C 31 00 FF 1BéA
91 AF 91 C3 91 DE ¥1 00 AP 9CEe2
22 DO 2A Eé BB DO 02 E6 BY ABC
43 AO 00 B1 BB C9 22 FO 03) Cia!
65 B8 85 B8 A? 00 65 B9 85 _BNAS
AS 81 30 04 AS 82 30 03 4C 0298
3C C8 Bi 83 48 C8 BI 83 85) = 4a
01 00 00 00 E46 90 00 00 00 75AA
01 EF D8 AO DS AY 90 4C D9 BFE
20 67 DD 20 FB ES £0 08 90) = EN99
84 0A 0A 0A 0A 8D DS 90 20) ~DPFD
—6 £0 03 BO ES 8E F2 90 BE FI?
8D D8 90 20 B7 00 C9 20 FO) ABDI
20 67 DD 20 FB E6 8E F3 90) 6F1?
BB DE 20 67 DD 20 FB E6 8E D884
DD 20 FB Eé 8E DA 90 20 BE EEO
AS 50 8D DD 90 AS 51 8D DE ENEB
E1 90 20 46 91 20 EA 90 90) = 9938
02 8D E1 90 DO EC A9 OF 8D 4840
OF 8D DE 90 20 EA 90 BO E1 4C3B
F3 60 A9 01 8D Et 90 DO OS) FiS4
DE 20 55 91 AD DA 90 8D DP = ABES
5B AO 1B 88 DO FD 2C 30 CO 73CB
EE 2C 30 CO CA DO EA 60 AZ Fla?
FD 2C 30 CO A8 88 DO FD EF 85414
DO EA 460 8FDF
TREMPLIN MICRO
23
PAVES 10 TEXT : NORMAL : PRINT CHRS
HV
ALEATOIRES (21): HOME 9BC0
15 FOR I = 768 TO 786: READ R:
$E6F5 transmet la valeur de H, puis celle de V. POKE 1,R: NEXT AD2E
$FBCI calcule l'adresse de base de la ligne V. & @ 20 Y= INT ¢ RND (1) * 23) AEDS
$FC2F additionne H 4 cette adresse. i= a We aN ‘ = (1) * 39) and
it A ee v5
te pavé (mode inverse) est stocke. 23 35 iF PEEK (49249) < 128 THEN
Pomme ouverte (Basic) arréte tout. 5 § 20 1D7E
0300- 20 F5 Eé JSR $E6FS & > 40 VTAB 23: CALL - 868: PRINT
0303- 8A TXA ae "(M)ENU DE DISQUETTE “3: GET
0304- 20 C1 FB JSR FBC1 E a R$: VTAB 22 A484
0307- 20 FS £6 JSR E6FS = £ 45 IF R$ = "M" OR R$ = "m" THEN
030A- 8A TXA at PRINT CHR (4)"RUN STARTUP" 549°
0308- 20 2F FC JSR $FC2F S50 HOME 2F97
030E- Ag 20 LDA £$20 55 DATA 32,245,230,138,32,193,2
0310- 91 28 STA ($28), 51,32,245,230,138,32,47,252,
0312- 60 RTS 169,32,145,40,96 1072
QUESTION REPONSE Merci de votre confiance, mais il me faut vous contredire. ProDOS se
borne, lors du Boot, & identifier trois classes de périphériques : les
= Sy (© <0"FeS 80 colonnes, les périphériques stockant les infos et les horloges
(Jemploie dans ce cas le pluriel car les nouvelles versions
reconnaissent la Thunderclock et 1 horloge //GS).
Monsieur KOENIG, Puisque vous disposez de PRODOS 1.1.1, je vous suggére de faire BLOAD PRODOS, TSYS,A$2000, CALL - 151 puis
Abonné 4 Tremplin Micro, je
me permets de vous écrire pour
une question que j'ai déja
posée au Support Technique
Apple (je suis membre du club
Apple). La voici :
Lors du Boot de ProDOS*, une
routine teste tous les slots (de 1
47) et reconnait donc certaines
cartes (Thunderclock, driver,
souris (II*), Super série...). Pour
ce faire, ProDOS doit sans
doute avoir une table de
références. A quelle adresse se
trouve-t-elle ?
Le Support Technique Apple
ma simplement conseillé de
consulter ma documentation,
car il se dit "support technique
et non de développement” !
Je dois vous avouer que cette
réponse me reste coincée dans
la gorge !
Espérant que vous puissiez
répondre 4 ma question,
agréer monsieur, mes sincéres
salutations.
€.G. (LEBLANC MESNI).
* ProDOS 1.0.2/1.1.1 utilisés.
252A LLLLL.. jusqu’d 2674. Cest la zone d'identification des périphériques. Ce n'est pas trop difficile 4 interpréter. Je
traduis ci-aprés une page de la DOC ProDOS APPLE. Durant sa mise en place, ProDOS recherche les dispositifs de
stockage/lecture de blocs. Pour le connecteur n, ProDOS considére qu'il est en présence d'un "lecteur de disque” si
la ROM associée & ce connecteur contient les identificateurs suivants
octet Cn07 est présent dans la table
$Cn01 = $20 $Cn03 = $00 $Cn05 = $03
de ProDOS, mais il n'est pas testé.
ProDOS contréle ensuite le contenu de l'adresse $CnFF :
Si CnFF = $00, ProDOS considére qu'il o trouvé un lecteur de type DISK II équipé des ROMs 16 secteurs et stocke,
dans la table de “devices” intégrée s'il s'agit de ProDOS16, dans la table de “devices” en page globale s'il s‘agit
de ProDOS8, l'adresse du “Driver de DISK II". Ces routines de gestion de DISK Il sont integrées & ProDOS et
supportent tout lecteur qui émule un lecteur DISK Il APPLE (16 secteurs). Pour mémoire, cela suppose, entre
autres, 289 blocs et un seul volume.
Si CnFF = SFF, ProDOS considére qu'il est en présence d'un DISK II équipé des ROMs 13 secteurs. Comme il ne
sait pas manipuler ce format, il quitte ce connecteur et poursuit ses recherches.
Si CnFF contient une voleur différente de $00 ou SF, ProDOS considére qu'il a trouvé un “contréleur de disque
intelligent’, Si en outre l'octet d'état en SCnFE indique que le périphérique supporte les oppels READ et STATUS,
ProDOS range dans lo table de devices (P8 ou P16) l'adresse du driver correspondant, & savoir : $Cn pour l'octet
hout et le contenu de SCnFF pour l'octet bos. En d'autres termes, $CnFF contient l'octet bas du driver
correspondant au connecteur n°,
Les adresses spéciales de la ROM sont :
SCnFC/FD Nombre total de blocs sur ce périphérique. Information utile pour créer lo table d'occupation du
volume et |'en-téte du CATalogue principal aprés le formatage. Si la valeur stockée a cette adresse est nulle, le
nombre de blocs doit étre obtenu & I'aide d'un appel 4 lo routine STATUS pour CE périphérique.
SCnFE Cest l'octet “status” de ce périphérique. Les bit 0 et | doivent étre 4 1 pour que ProDOS installe le vecteur
relatif & ce périphérique dons sa table de “devices”
Bit n° Signification du bit mis & 1 3. périphérique supportant le Formatage.
7 support amovible 2 onpeut écrire sur ce périphérique.
6 périphérique interruptible 1 onpeut lire sur ce périphérique.
5-4 nombre de volumes dece “device” (Ja3) | on peut appeler STATUS sur ce périphérique,
© SCnFF Octet bos du point d’entrée du driver relotif & ce connecteur, que ProDOS placera dans sa table de "devices"
Je compléterai en signalant que lo carte contrdleur de lecteurs 3°5 est un périphérique supportant 4 volumes tout
comme le "SMARTPORT” du llc ou du lIGS. Yvan KOENIG.
24
GUY-HACHETTE
eens
TILITAIRE
Les lecteurs de Tremplin Micro
sont certainement des familiers
de la télématique en général, et
du MINITEL en particulier. Ce
Roland JOST
dernier posséde une touche nommée LOUPE qui permet un agrandissement de
I'écran. Avec LOUPE, votre APPLE vaudra bien un MINITEL et méme plus, puisque le
déroulement d'écran et la copie sur imprimante vous sont offerts en sus.
Si vous disposez de l’assembleur EDASM (Tool-
kit) d'APPLE en version DOS ou ProDOS, entrez
le source tel quel et compilez-le sous le nom
de LOUPE.A. Si vous disposez d'un autre
assembleur pour APPLE, tapez le source en fai-
sant les modifications nécessaires. Sinon, pas-
sez en mode Moniteur par CALL - 15] et entrez
le programme en hexadécimal :
BAGG: 20 FA 8A AD OG CO etc...
Sauvez sur une disquette par BSAVE LOUPE.A,
A$8AGG,L$262.
Pour accélérer le tracé HGR, LOUPE.A utilise des
tables d’adresses. Pour éviter la saisie de ces
tables, employez le programme CREATABHGR.
Création de LOUPE.@ :
BLOAD LOUPE.A
RUN CREATABHGR
BSAVE LOUPE.G,A$8AG@,L$528
Tapez maintenant le programme BASIC DEMO.
LOUPE et sauvez-le.
Si vous possédez la disquette IMAGEWRITER
TOOLKIT (DOS 3.3), transférez le programme
en langage machine GF de cette disquette sur
celle qui contient LOUPE.@ et DEMO.LOUPE.
Pour cela, faites : BLOAD GF puis, sur votre
disquette, BSAVE GF,A$9000,L$200.
Ayez aussi sur la disquette une image graphi-
que haute résolution de votre choix, puis fai-
tes RUN DEMO.LOUPE.
Dés que l'image HGR est affichée, vous pouvez
utiliser les commandes suivantes :
* L pour passer en mode LOUPE.
* $ pour voir l'autre moitié de l'image.
* — pour un déroulement d'image vers le
haut.
* «— pour un déroulement d’image vers le
bas.
* (RETURN) (touche ENTER) pour revenir a
l'image normale.
* (ESC) pour retour en mode TEXT.
Si GF est présent sur la disquette, il vous est pro-
posé une copie écran sur IMAGEWRITER. Répon-
dez (O)ui pour obtenir une image 21+ 27.
A quoi peut servir LOUPE ?
Bien évidemment la majorité des lecteurs de
Tremplin Micro peut se passer de LOUPE pour
déchiffrer I’écran APPLE. Il existe heureuse-
ment d'autres utilisations :
1, Donner un look neuf 4 des images graphi-
ques (portraits par exemple) en effectuant
une dilatation dans le sens de la hauteur.
2. Ecrire des affiches 21* 27 si vous disposez
d'un utilitaire d'écriture de texte en page
graphique. Dans ce domaine, EDIGRAPH
(paru dans Pom’s) me rend de grands
services (suite page 26)
TREMPLIN MICRO
25
4, Employer des sous-programmes de LOUPE
pour vos propres applications :
a. sp. LOUPE: programme de dilatation
verticale d'une image HGR stockée en
page 1. Les 91 premiéres lignes dilatées
sont stockées en page HGR 2 ($4000-
$5FFF), la deuxiéme moitié de l'image
dilatée se trouve en page graphique 3
($6660-$7FFF).
Appel par CALL 35433.
sp. SWAP : ce programme échange le
contenu de deux pages graphiques, en
occurrence ici la page 2 ($4000-$5FFF)
et la page 3 ($6000-$7FFF).
Appel par CALL 35551.
¢. sp. SCROLLUP : réalise un déroulement de
la page 2 vers le haut, la page 3 alimente
le bas de la page 2. Ce qui disparait de la
page 2 est réécrit en fin de page 3. On
peut réaliser ainsi un déroulement sans
fin. Appel par CALL 35328 ($8AQQ) suivi
de CALL 35614 ($8BIE) pour dérouler
I'écran d'une ligne vers le haut.
Exemple de programme de déroule-
s
ment continu :
BLOAD IMAGE1,A$4000 : charge 1°°
image en page 2
BLOAD IMAGE2,A$6000 : charge 2°
image en page 3
400 CALL 35328 : REM initialise le
mode déroulement
410 CALL 35614 : GOTO 410
d. sp. SCROLLDOWN : action identique &
SCROLLUP mais vers le bas. Appel par
CALL 35328 suivi de CALL 35726.
4, Enfin le dernier intérét de LOUPE, et non le
moindre, est didactique. En effet, la ges-
tion des pages graphiques de |'APPLE //
n‘est pas évidente 4 priori. L'étude du pro-
gramme source permettra aux lecteurs de
se familiariser avec la manipulation des
octets en page graphique.
Quelques explications :
Une page graphique d’APPLE // comporte 192
lignes de 40 octets. Les 7 premiers bits d'un
octet représentent chacun un point de |'écran
(allumé si bit=1 ou éteint si bit=@). On
retrouve ainsi les 280 points disponibles hori-
zontalement en haute résolution.
Les octets de la page graphique ne sont mal-
heureusement pas stockés en mémoire de
facgon séquentielle. Les adresses de début des
192 lignes ne peuvent étre obtenues qu’aprés
un calcul qui prend du temps s'il doit étre
répété de nombreuses fois, et ceci méme en
assembleur. C'est donc pour des raisons de
rapidité que l'on utilise des tables contenant
ces adresses de début de ligne. En réalité, il
faut une table pour les octets bas des adresses
(TABIL) et une autre pour les octets hauts
(TAB1H, TAB2H et TABSH pour les pages 1, 2 et
3 respectivement).
Le principe de la loupe est de grossir l'image
dans le sens de la hauteur, donc de dupliquer
chaque ligne de la page 1 en I'écrivant deux
fois en page 2 (pour les 91 premiéres lignes) et
en page 3 (pour les 91 derniéres lignes).
Le swapping (échange) des pages 2 et 3 con-
siste 4 échanger chaque octet d'une page avec
l'octet correspondant de l'autre page.
Le déroulement d'écran (scrolling) est beau-
coup plus compliqué. Prenons le cas du dérou-
lement vers le haut et décomposons les diffé-
rentes opérations :
* Sauvegarde des 40 octets de la premiére
ligne (@) de la page 2 dans un tampon.
* Copie de la ligne 1 dans Ia ligne @, ... de la
ligne n dans la ligne n-1, ... de la derniére
ligne (191) dans Ia ligne 190.
© Copie de la 1° ligne de la page 3 dans la
derniére ligne de la page 2.
* Copie de la ligne 1 de la page 3 dans la
ligne @ de cette page, ... de la ligne n dans
la ligne n-1, ... de la derniére ligne dans la
ligne 190.
* Enfin copie du tampon dans Ia ligne 191 de
la page 3.
Toutes ces opérations pour dérouler |'écran
d'une ligne vers le haut ; pour x lignes, il fau-
dra répéter toute la séquence x fois...
Le processus est inversé pour SCROLLDOWN
qui effectue un déroulement vers le bas.
LOUPE est compatible DOS et ProDOS. Con-
trairement 4 certains écrits, le programme GF
de la disquette IMAGEWRITER Toolkit (DOS
3.3) est apparemment utilisable sous ProDOS
(servez-vous de CONVERT pour Ia conversion).
26
GUY-HACHETTE
Les fichiers proposés sur la disquette :
190
200
210
226
230
240
245
250
260
POKE 216,0:IMP = 0
LOUPE = 35433:SWAP = 35551
INPUT "NOM DE L'IMAGE ";NS: IF NS
= "" THEN END
HGR : POKE - 16302,0
PRINT D$"BLOAD "N$",A$2000"
CALL 35328: REM INITIALISE CERTAINS
POINTEURS
CALL 35367: REM APPEL COMMANDES
TEXT
IF IMP = 0 THEN 390
350
370
390
LOUPE : Programme source (Assembleur EDASM LOUPE.O : Programme assembleur = LOUPE.A +
ProDOS). tables.
‘ DEMO.LOUPE : Driver pour LOUPE.G.
LOUPE.A : Programme objet correspondant.
LOGO.LOUPE, : Images HGR.
CREATASHGR ; Programme BASIC permettant de géné- WLoUrE
rer les tables d'adresses nécessaires. Lisez page 35 comment utiliser la démo.
DEMO.LOUPE
100 REM DEMO.LOUPE 270 PRINT "VOULEZ-VOUS IMPRIMER
110 REMR.JOST (C) 1986 L'IMAGE (O/N) ?";: GET R$: PRINT R$:
(C) i IF R$ <> "O" THEN 396
120 TEXT : HOME : PRINT "DEMONSTRA
TION DE LA LOUPE APPLE” 290 PRINT D$"PRE1”
130. PRINT : PRINT 300 PRINT CHR$ (27) + CHR$ (78);: REM
140 IMP = 1 CARACTERES PICA
150 D$ = CHRS (4) 310 PRINT CHR$ (27) + CHR$ (118);: REM
160 PRINT D$”BLOAD LOUPE.O” POSITIONNE LE HAUT DE PAGE
170 ONERR GOTO 190 320 PRINT CHR$ (27) + CHR$ (62);: REM
180 PRINT D$"BLOAD GF”: GOTO 200: REM MODE UNIDIRECTIONNEL
GF EST LE PROGRAMME DE HARDCOPY
DE LA DISQUETTE IMAGEWRITER TOOL on GUL IOs
KIT (DOS 3.3). 340 POKE 6,1: POKE 7,7: CALL 36864: REM
HARDCOPY : IMPRIMANTE EN SLOT 1,
MODE DOUBLE GRANDEUR.
PRINT CHR$ (27) + CHR$ (114);: PRINT
CHR (31) + "1";: PRINT CHR$ (27) +
CHR$ (102);: REM DEROULEMENT
INVERSE + SAUT DE UNE LIGNE +
RETOUR AU DEROULEMENT NORMAL
CALL SWAP
POKE 6,1: POKE 7,7: CALL 36864
PRINT : PRINT D$"PREO”
TEXT : END
(suite de l'article page 28)
TREMPLIN MICRO
27
CREATABHGR
10 REM PROGRAMME DE CREATION DES
TABLES DES ADRESSES HAUTE
RESOLUTION
11 REM UTILISEES PAR LE PROGRAMME
LOUPE.
15 FOR! = @ TO 84: READ X: POKE 768 +
1X: NEXT
20 Z = 35880
30 POKE 236,32
40 FORI=010191
50 CALL 768,
60 POKE Z + |, PEEK (6): REM OCTETS BAS
62 POKE Z + 192 + |, PEEK (7): REM
OCTETS HAUTS PAGE 1
64 POKE Z + 384 + I, PEEK (7) + 32:
REM OCTETS HAUTS PAGE 2
66 POKE Z + 576 + I, PEEK (7) + 64:
REM OCTETS HAUTS PAGE 3
70. ~NEXT
2000 DATA 32, 245,230,32,11,3,133,6,132,7,
96,138,74,74,74,168,185,34,3,72,138,
41,7,10,10,24
DATA = 121,58,3,101,230,168,104,96,0,
128,0,128,0,128,0,128,40,168,40,168,
40,168,40,168
DATA 80,208,80,208,80,208,80,208,0,
G,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2,
2,3,3,0,0,0,0 .
2010
2026
LOUPE
1 # 14 X1
2 = * LOUPE 15 X2
3 * 16 Yi
4 * (C0) 1986 R.Jost 17 ¥2
5 * 18 AIL
6 * 19 A1H
7 * 20 A2L
8 21 EQU 306 21 A2H
9 22 EQU $07 22 ABL
10 PAGE EQU $09 23 A3H
11 DEPART EQU 318 24 A4L
12 ARRIVEE EQU 1A 25 AGH
13 ARRIVEE2 EQU $1iC 26 *
27 TABIL EQU $8C28
28 TABIH EQU $8CE8
29 TAB2H EQu
; octets bas des adr. des lignes
j; octets hauts , page 1
$8DA8 3 octets hauts , page 2
j
30 TAB3H EQU #8E68 ; octets hauts , page 3
31 *
32 KBD Eau C000 3 teste le clavier
33 KBDSTRB EQU C010 3 STROBE
34 TXTCLR EQU C050 3 sélectionne mode graphique
35 MIXCLR EQU C052 3 plein écran
ASSEMBLE AVEC PROCODE a partir d'EDASM
EQU $EB
EQU EC
EQU ED
EQU EE
EQU $3C
EQU 3D
EQU $3E
EQU $3F
EQU $40 Avec EDASM
EQU $41 de Apple,
EQU 342 remplacez
EQU 343 l'instruction DA
de la ligne 323
par DW.
GUY-HACHETTE
ee
8A00;:
8A02:
8A05:
8A07:
BA09:
BANC:
BAOE:
8A11:
8A13:
BAIS:
BAB:
SAIA:
8A26:
8A2A:
8A2C:
8A2F:
BA31:
8A33:
BA36:
8A38:
BA3A:
8A3D:
8A41:
8A44:
BA46:
8A48:
8A4B:
8A4D:
BASF:
8AS2:
8A54:
8AS6:
8AS9:
BASA:
A2
BD
85
85
BD
85
BD
85
A2
8D
85
85 4
60
10
2c
cy
dO
4c
ce
bo
20
Ce 8
20
=o
bo
ce
DO
20
cy
bo
20
18
90
00
28 8C
3c
40
As 8D
3D
68 BE
41
BF
28 eC
[
SAIC: BD as 8D
WME: OS of
8A21: BD 68 8E
8A24: 85 43
8A27: AD 00 CO
FB
10 CO
03
D2 07
03
8B
WHS
LOWSCR
MISCR
HIRES
NEWSTT
*
*
*
HAUT
BAS
GROS
ECH
PAGE1
CONT
EQu
EQu
EQu
EQu
ORG
LDX
LDA
STA
STA
$0054
$coss
$c0S7
$D7D2
$8A00
£0
TABIL,X
AIL
A3L
TAB2H ,X
AlH
TABSH,X
3H
£191
TABIL yX
A2L
AaL
TAB2H ,X
amt
A2H
TABSH ,X
AgH
KBD
TEST
KBDSTRB
£$9B
HAUT
NEWSTT
£895
BAS
SCROLLUP
£388
WY
SCROLLDOWN
£$CC
ECH
LOUPE
£3D3
PAGE1
SWAP
£$8D
CONT
HGR
TEST
5
i
3
page 1
page 2
haute résolution
retour au programme appelant
joctet bas des adresses HGR
de la 1é@re ligne page 2
et de la lére ligne page 3
octet haut de |’adresse
de la derniére ligne page 2
et de
la derniére ligne page 3
lit le clavier
<ESC> interrompt le scrolling
retour au pro. BASIC appelant
Fléche droite
Fléche gauche
Loupe
S)wap
RETURN
retour obligé
au début.
(suite page 30)
TREMPLIN MICRO
29
BASC:
SASF:
BA62:
8A65:
8AS8:
BAST:
BASC:
BASF:
8A72:
8A75:
8A77:
BA79:
BA7B:
8A7D:
BA7F:
8AB1:
8A83:
8A85:
8A87:
8A89:
BASB:
8A8D:
BAI0:
8A92:
BAIS:
8A97:
BAIP:
BA9C:
BASE:
8AAI:
BAA2:
BAAS:
BAAS:
8AA7:
BAAI:
BAAC:
BABI:
8AB2:
BABS:
BABS:
BABB:
BABA:
SABC:
SABE:
8ABF:
BACI:
2c
2c
2c
2c
60
2c
2c
2c
2c
A2
86
86
86
a2
86
86
A2
86
A2
86
AS
BD
85
BD
85
AS
BD
85
BD
18
65
—8
86
BD
85
: BD
18
65
85
Aa
B1
a1
a1
ce
c4
bo
50
S2
54
57
So
52
>
00
ED
06
co
07
EE
20
09
28
EC
ED
28
18
19
06
28
1A
E8
co
co
co
8c
8c
8C
8c
8c
8c
LOU PE (PROGRAMME SOURCE : suite)
90
97 *
98
oo
100 LOUPE
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
LOUPE1
LOUPE2
BIT
BIT
BIT
BIT
RTS
* grossit |
BIT
BIT
BIT
BIT
LDX
STX
STX
STX
LDX
STX
STX
LDX
STX
LDX
STX
LDX
LDA
STA
LDA
STA
LDX
LDA
STA
LDA
cLc
ADC
STA
INX
STX
LDA
STA
LDA
cLe
ADC
STA
LDY
LDA
STA
STA
INY
cPY
BNE
* affiche la page 1 sans 1
TXTCLR
MIXCLR
LOWSCR
HIRES
image page 1
TXTCLR ;
MIXCLR ;
MISCR :
HIRES ;
£00 ;
DEPART+1
21
TABIL,X
ARRIVEE
TABIH,X
PAGE
ARRIVEE+1
21
TABIL,X =;
ARRIVEE2
TAB1H,X
PAGE
ARRIVEE2+1
x!
(DEPART) ,Y
(ARRIVEE) ,Y
(ARRIVEE2) ,
X2
LOUPE2
ee
effacer
sélectionne le mode
pleine page
numéro 1
et haute résolution
stockage entre $4000
sélectionne le mode
plein écran
page 2
haute résolution
initialisation
192 lignes
} page 1 d’abord
40 colonnes
premiére ligne
graphique
et $7FFF)
graphique
recherche son adresse
premiére ligne de
l’ image dilatée
3} eM page 2
la ligne est dédoublée
1ére colonne
on balaye la ligne
octet suivant
ligne compléte ?
non , on boucle
GUY-HACHETTE
9AC3: Ed 06 142 INC 21 j Oui , on passe
8ACS: E6 ED 143 INC Y1 } & la ligne suivante
8AC7: AS ED 144 LDA Y1
8AC9: CP 60 145 CMP £%60 j moitié page 1 faite ?
8ACB: DO 08 146 BNE LOUPE3 } mon
BACD: AS 09 147 LDA PAGE 2 ‘oul » 1
B8ACF: 18 148 cLe j faut maintenant
BADO: 6° 20 149 ADC £%20 3 transférer dans la
8AD2: 85 09 150 STA PAGE } page 3 ($6000-7FFF).
8AD4: A? 00 151 LDA £00 j et on repart a
BAD6: 95 06 152 STA 21 5 la premiére ligne
BAD: AS ED 153 LOUPE3 LDA Yi
SADA: C5 EE 154 CMP 2 j toutes les lignes faites?
BADC: DO AD 155 BNE LOUPE1 } mon
BADE: 460 156 RTS 3 terming
157 *
158 * échange les pages 2 et 3
159 *
A2 00 160 SWAP LOX £300 j initialise
86 EB 161 STX X1 ; 1@re colonne
: 86 ED 162 STX Yt j 1@re ligne
A2 28 163 LDX £%28 3 40=
86 EC 164 STX X2 j derniére colonnet!
A2 CO 165 LDX £$C0 3 192 lignes=
86 EE 166 STX Y2 j derniére ligne+i
A2 40 167 LDX £%40 } page 2
86 09 168 STX PAGE
: Ad ED 169 SWAPI LOX Y1 } on commence, ligne 0
BD 28 8C 170 LDA TABIL,X j cherche 1|’adresse
85 18 171 STA DEPART
85 1A 172 STA ARRIVEE
BD A8 8D 173 LDA TAB2H,X
85 19 174 STA DEPART+1 ; octet de départ
BD 68 BE 175 LDA TAB3H,X
85 1B 176 STA ARRIVEE+1 ; adresse d’arrivée
Ad EB 177 LbY x1 ° j premiére colonne
Bi 18 178 SWAP2 LDA <DEPART),Y ; on balaye la ligne
48 179 PHA } Sauve dans la pile
B1 1A 180 LDA (ARRIVEE),Y ; charge de la page arrivée
91 18 181 STA <DEPART),Y ; stocke dans la page départ
68 182 PLA } récupére de la pile
91 «1A 183 STA ‘(ARRIVEE),Y ; stocke dans la page arrivée
cs 184 INY j on continue
c4 Ec 185 CPY X2 j Jusqu’a la derniére
DO Fi 186 BNE SWAP2 j colonne,
Eé6 ED 187 INC Y1 j ligne suivante ?
AS ED 188 LDA Y1
cS EE 189 CMP Y2 ;
DO D4 190 BNE SWAP1 j Oui , On n’a pas terminé
60 191 RTS 3 c’est fini.
192 #
193 *
194 * déroulement (scrolling) vers le haut
195 * (suite page 32)
TREMPLIN MICRO s
r ——
LOU PE (PROGRAMME SOURCE : suite)
196 # on stocke la lére ligne de la page 2 dans le tampon
8BiE: AO 00 197 SCROLLUP LDY £0 } On commence par la colonne 0
8820: B1 3c 198 LIGNE1 LDA <AIL),Y 3 charge un octet de la ligne
8B22: 99 FE 8B 199 STA TAMPON,Y ; et sauve dans le tampon
8B25: C8 200 INY ; balaye la ligne
8B26: CO 28 201 CPY £40 } Jusqu’au bout
8B28: D0 Fé 202 BNE LIGNE!
203 j
8B2A: A2 00 204 LDX £0 3 ligne 0
8B2C: BD 28 8C 205 ECRANI LDA TABIL,X j on copie la ligne n
8B2F: 85 1A 206 STA ARRIVEE
8B31: BD AB BD 207 LDA TAB2H,X
8B34: 85 18 208 STA ARRIVEE+1
8B36: ES 209 INX
8B37: BD 28 8C 210 LDA TABIL,X 3 dans Ta ligne n-1
8B9A: 85 18 211 STA DEPART
8B3C: BD AB BD 212 LDA TAB2H,X
8B3F: 35 19 213 STA DEPART+1
8B41: AD 00 214 LDY £0
8843: B1 18 215 LIGNES! LDA (DEPART) ,Y
8B45: 91 1A 216 STA (ARRIVEE) ,Y
8B47: C8 217 INY
8B48: CO 28 218 CPY £40
8B4A: DO F7 219 BNE LIGNES1
8B4C: E0 BF 220 CPX £191 jy et ceci pour les 192
8B4E: DO DC 221 BNE ECRANI 3 lignes de la page 2
222 ;
8B50: 40 00 223 LDY £0 3 la lére ligne de la
8852: B! 40 224 DLIGNE! LDA (A3L),Y ; page 3 est copiée
8B54: 91 3E 225 STA ‘A2L),¥ 3; dans la derniére ligne
8B56: CB 226 INY 3; de la page 2.
8B57: CO 28 227 cPY £40
8B59: DO F7 228 BNE DLIGNE1
229 H
8B5B: A2 00 230 LOX £0 3} on travaille maintenant
8B5D: BD 28 8C 231 ECRAN2 LDA TABIL,X ; sur la page 3
8B60: 85 14 232 STA ARRIVEE
8B62: BD 468 38E 233 LDA TAB3H,X
8Bé6S: 85 18 234 STA ARRIVEE+1
8B67: ES 235 INX
8B68: BD 28 8C 236 LDA TABIL,X
8B6B: 85 18 237 STA DEPART
8B6D: BD 468 BE 238 LDA TAB3H,X
8B70: 85 19 239 STA DEPART+1
8872: AD 00 240 LDY £0
8B74: Bi 18 241 LIGNES2 LDA <‘DEPART),Y
8B76: 71 14 242 STA (ARRIVEE) ,¥
8B78: Co 243 INY
8B79: CO 28 244 cPY £40
8B7B: DO F7 245 BNE LIGNES2
8B7D: EO BF 246 cPX £191
8B7F: DO DC 247 BNE ECRAN2
248
32 GUY-HACHETTE
8B81: Al 00 249 LDY £0 j la ligne stockée dans
8883: 89 FE S88 250 DLIGNE2 LDA TAMPON,Y 3 le tampon est copiée
8B86: 9) 42 251 STA ‘A4L),¥ 3 dans la derniére ligne
8B88: C5 252 INY ; de la page 3.
8B89: CO 28 253 CcPY £40
8B8B: D0 Fé 254 BNE DLIGNE2
8B8D: «0 255 RTS
256 *
25? * Déroulement vers le bas
258 «*
oo 259 SCROLLDOWN LDY £0 i la derniére ligne de
3E 260 LIGNE191 LDA ‘A2L),Y j la page 2 est copié¢e
FE 8B 261 STA TAMPON,Y ; dans le tampon.
262 INY
28 263 cPY £40
Fé 264 BNE LIGNE191
265 H
BF 266 LOX £191
28 8C 267 ECRANID LDA TABIL,X j la ligne n de la page 2
14 268 STA ARRIVEE j est copiée dans la ligne
AB aD 269 LDA TAB2H,x pontt.
1B 270 STA ARRIVEE+1
271 DEX
28 8C 272 LDA TABIL,X
18 273 STA DEPART
SBAC: BD AS 8D 274 LDA TAB2H,X
8BAF: 85 19 275 STA DEPART+1
8BB1: 40 00 276 LDY £0
8BB3: B1 18 277 LIGNES1D LDA DEPART) ,Y
SBBS: 91 1A 278 STA (ARRIVEE) ,Y
8BB7: Ca 279 INY
8BB8: CO 28 280 cPY £40
8BBA: D0 F7 281 BNE LIGNES1D
8BBC: £0 00 282 cPxX £0
8BBE: D0 DC 283 BNE ECRANID
284 ;
00 285 LDY £0 j la derniére ligne de
42 286 DLIGNE1D LDA ‘A4L),Y j la page 3 est copiée
3c 287 STA (AIL),Y j dans la 1é@re ligne
288 INY j de la page 2.
28 289 cPY £40
F7 290 BNE DLIGNE1D
291 ;
BF 292 LOX £191 3 la ligne n de la page 3
28 8C 293 ECRAN2D LDA TABIL,X 3 est copiée dans
1a 294 STA ARRIVEE ; la ligne n+1.
68 BE 295 LDA TAB3H,X
1B 296 STA ARRIVEE+1
297 DEX
28 8C 298 LDA TABIL,X
18 299 STA DEPART
68 8E 300 LDA TAB3H,X
19 301 STA DEPART+!
00 302 LOY £0
18 303 LIGNES2D LDA (DEPART) ,Y (suite page 34) ]
TREMPLIN MICRO 33
8BES: 9!
8BE8: CS
8BE9: CO
8BEB: DO
8BED: £0
8BEF: D0
1A
28
F7
00
oc
AD
Bg
a
cs
co
bo
00
FE
40
8BF1:
8BF3:
8BF6:
8BF8:
8BF9:
8BFB:
8B
28
Fé
8BFD:
8BFE: 00
00
00 03
“AIH. ......8003D
A3H. ++... $0041
-ARRIVEE...3001A
-DEPART....$0018
-DLIGNE20. .$8BF3
-ECRAN2....%8B5D
-LIGNE1....$8B20
-LIGNES2...%8B74
-LOUPE2....$8ABS
-MIXCLR....3C052
-SCROLLDOW.$8B8E
LOU PE (PROGRAMME SOURCE : suite)
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
STA
INY
CPY
BNE
CPX
BNE
£40
£0
LDY
DLIGNE2D LDA
STA
INY
CPY
BNE
£0
£40
RTS
tampon
TAMPON DA
*
*
# c’est ici
Table des symboles ordre alphabétique
AIL. .06..8003C
“A3L.......$0040
~ARRIVEE2. .$001C
-DLIGNE!...$8B52
~ECH.......$8A4B
-ECRAN2D...%8BCD
-HIRES..... $C057
-LIGNE191..$8B90
-LIGNES2D. .$8BE4
-LOUPE3....$8AD8
-NEWSTT....3D7D2
~-SCROLLUP. .S8B1E
-TABIH. -38CE8
-TAMPON -$8BFE
“X2.0. +300EC
22.0 6004 4 80007
TAMPON ,Y
(A3L) ,Y
que commencent
(ARRIVEE) ,Y
LIGNES2D
ECRAN2D
DLIGNE2D
$00,303
“A2H. 4.6... 8003F
-ASH. -30043
~BAS. +38A2D
-DLIGNE1D. .$8BC2
-ECRAN1....%8B2C
-GROS......38A44
-KBD.......$C000
-LIGNES1
le tampon est recopié
dans la lére ligne
de la page 3.
les tables HGR.
AZL. eee. $003E
-CONT....
-DLIGNE2.
-ECRANID.
HAUT...
+ +$8A36
-KBDSTRB...$C010
-LIGNESID. .$8BB3
-LOUPE1....$8A8B
-MISCR..
-PAGE1
-SWAP1
-TAB2H..
-TXTCLR.
“YQ. cee ee SOOEE
34
GUY-HACHETTE
—
Pour celles et
ceux qui
n'ont pas
d'assembleur,
mais possédent
la disquette
SIGNATURE
d'Yvan KOENIG.
Attention !
n‘oubliez pas de
compléter
LOUPE.A avec
la table générée
par Ia routine
Basic
CREATABHGR
(page 28) !
/TM17/LOUPE/LOUPE .A ,AS8A00 ,L$0202
BA00: A2
BA10: BE
8A20: 3F
3A30: 9B
8A40: 03
8AS0: DF
8A60: 52
8A70; 55
8A80: 07
03
BD
28
8C
3c
28
60
cg
bo
20
57
ao
09
19:
E8
Aq
ED
85
28
85
8c
AD
95
a3
sc
co
86
A2
40
es
BD
3E
co
03
69
1
Lorsque vous
utiliserez la
routine, 4 partir du
STARTUP de notre
disquette,
choisissez l'option
IM.LOUPE (c'est
l'image ci-contre)
et essayez les
commandes
indiquées par ce
tableau !
CunaeaesrssesonreconD
TREMPLIN MICRO
TION
NESTOR
Routine uniquement destinée a vous
montrer comment il est possible de mul-
tiplier A par B... pour retrouver le résul-
tat dans C, étant entendu que A B C peu-
vent étre du type A(@) A(1) A(2) aussi
bien que A(4) A(5) A(6)...
300: 20
303: AS
305: 48
306: AS
308: 48
309: 20
30C: 85
30E: 84
310: 68
311: 85
313: 68
314: 85
316: 20
319: 20
31C: A4
SIE: AS
320: 18
321: 69
323: 90
325: CB
326: 20
329: 20
$2C: Ad
32E: A5
330: 18
331: 69
333: AA
334: 90
336: C8
337: 26
33A: 4C
—3 DF
67 DD
63 EB
F9 EA
82 £9
2D €B
2— ED
JSR
LDA
PHA
LDA
PHA
ISR
STA
STY
PLA
STA
PLA
STA
ISR
ISR
LDY
LDA
CLC
ADC
BCC
INY
ISR
ISR
LDY
LDA
CLC
ADC
TAX
BCC
INY
JSR
SMP
$DEBE
$B8
$B9
$DFE3
$06
$07
$89
$B8
$DD67
SEB63
$07
$06
£$05
$0326
SEAF9
$E982
$07
$06
£S0A
$0337
$€B2D
$ED2E
Teste la présence de la virgule.
Position de TXTPTR (adresse du dernier caractére obtenu par
CHRGET) sauvegardée sur la pile.
PTRGET recherche la variable (ici A(@)).
Son adresse est en A et Y. On la sauve en $6.7.
Restauration de CHRGET.
FRNUM évalue la formule pointée par TXTPTR et la met dans FAC.
FAC dans ARG.
Partie haute de l’adresse de A(@) dans Y.
Partie basse + 5 dans A pour adresse de A(1).
S'il y a retenue, Ia partie haute (Y) est incrémentée.
MOVFM place le nombre pointé par Y,A dans FAC.
FMULTT multiplie FAC par ARG.
Adresse haute dans Y.
Adresse basse majorée de $A (deux fois 5) dans X via A, pour
adresse de A(2).
Si retenue, on incrémente la partie haute.
MOVMF transfére FAC vers le groupe de 5 octets pointé par X et Y.
Affiche la valeur de FAC (résultat de la multiplication). .
Savon sees en sesensessesonssnamEanaceeessaasseaDERsSsZOSETAAAOEsEAssOAEeeAEEE LEANNA ENS ee ee eAAE Esa oTET EET
GUY-HACHETTE
INITIATION
BLOLIB.A
Avec ProDOS, il suffit d’afficher le catalogue de la disquette pour connaitre le monde de BLOCKS FREE...
mais il peut se révéler intéressant, dans le cadre d'un programme, avant d’enregistrer des données,
d'obtenir ce méme renseignement sans pour autant passer par le catalogue... d’ou cette routine.
300 :
303 :
304 :
306 :
308 :
30A:
30C:
30E :
20 00 BF
80
03
Ag
85
85
AG
B9
A2
OA
90
£6
DG
E6
CA
10
88
bo
Ag
20
20
A6é
AS
26
60
03
60
00
06
32
00
06
07
ce
FF
07
06
06
62
07
F4
EC
16
5B
42
06
07
24
40
oo
TREMPLIN MICRO
FB
FC
ED
JSR
LDA
STA
STA
LDY
LDA
LDX
ASL
BCC
INC
BNE
INC
DEX
BPL
DEY
BNE
LDA
JSR
JSR
LDX
LDA
JSR
RTS
$BFOO
£$00
$06
$07
£$C8
S3FFF,Y
£$07
$031C
$06
$031C
$07
$0313
$030E
£$16
$FB5B
$FC42
$06
$07
$ED24
7
|
NESTOR
Appel classique du MLI.
Commande READ BLOCK.
Adresse de la liste des paramétres.
Nous allons utiliser deux adresses de la page @ pour y
écrire le nombre de blocs disponibles.
Y prét.
Lecture d'un octet.
On passe les 8 bits en revue.
Quand un bit est 40, le bloc est occupé.
Quand il est 41, il est libre.
ASL pousse chaque bit dans la retenue et il suffit
d'incrémenter quand celle-ci est 41.
Jusqu'a Y = 1 inclus.
Curseur au début de la ligne choisie.
CLREOP efface jusqu’au bas de I’écran.
LINPTR affiche les deux octets de X et A (mode
décimal).
Retour.
Table des paramétres, pour ProDOS... qui en attend 3 :
1. DRIVE et SLOT $60 pour 6, $50 pour 5, etc. (voir pour
DRIVE Ia routine BLOLIB.V page suivante).
2. Adresse du Buffer : ici $4000
3. Numéro du Bloc @ lire : ici 6 (BIP.MAP).
BSAVE BLOLIB.A,A$300,L$38
37
INI
TION NESTOR
Appel par CALL 768, S, D, X... o S est le numéro du
SLOT, D celui du DRIVE et X la variable qui, au
6 retour, contiendra le nombre de BLOCKS FREE...
eee
300: 20 F5 £6 JSR $E6FS | ~GETBYTC transmet (dans X) le numéro du SLOT.
303: BA TXA _| On le passe dans A.
304: GA ASL
ae ; Ay a Od 6 devient $60, 5... $50, etc.
307: GA ASL sail
308: «48 PHA SLOT sur Ia pile.
oe i Bi FS £6 Sk SESES _| Méme opération pour le numéro de DRIVE.
30D: 4A LSR 1 ov G tombe dans Ia retenue.
30E: BO G4 BCS $0314 Si c'est un, rien @ faire.
310: 68 PLA 7
311: 69 80 ORA £$80 Si c'est @, il faut forcer le bit @ de la valeur SLOT 4 1.
313: 48 PHA a
314: 68 PLA ~] $60 devient $EG (0110 0000... 1110 6000).
315: 8D 4C @3 STA $034C _1 Installation dans la liste des paramétres.
318: 20 GO BF JSR $BFGG Appel du MLI.
31B: 80 $80 : READ Block.
31D: 4B G3 Adresse des paramétres.
3IE: AY GO LDA £$00 7
320: 85 G6 STA $06 Préparation.
322: 85 @7 STA $07 =
324: AO C8 LDY £$C8 Y prét.
326: B69 FF 3F LDA $3FFF,Y |
329: A2 @7 LDX £$07
328: GA ASL
32C: 9 06 BCC $0334
32E: £6 G6 INC $06
339: DO G2 BNE $0334 Voir BLOLIB.A
332: £6 @7 INC $07
334: CA DEX
335: 10 F4 BPL $032B
337: 88 DEY
338: DO EC BNE $0326 _|
ae : re Me Dy a GIVAYF rend flottant I’entier relatif dans A,Y (nbre de
33E: 20 F2 £2 JSR $E2F2 | BLOCS). Résultat dans FAC.
341: 26 BE DE JSR $DEBE Teste la derniére virgule.
344: 20 £3 DF JSR $DFE3 Recherche la variable (son adresse est dans A,Y).
347: AA TAX A passe dans X.
348: 4C 2D EB JMP $EB2D MOVMF transfére FAC dans la variable pointée par X et Y.
34B.: G3 7
34C: 60 Liste des paramétres.
34D: O09 40 (Voir BLOLIB.A page 37).
34F: G6 OO 4 BSAVE BLOLIB.V,A$300,L$51
SOSAOOS SEAT TOESLEE EEE OS ESSE TOES OSSSESSESISSSASSSOOVSHTHSAS ATS TASSSSSS SESS ESOS ONSET RIALS SS SOLOS SSeS
ss GUY-HACHETTE
L AGE POUR LE GS
IL ARRIVE... AVEC LES OUTILS
AURAIS aimé vous parler lon-
guement du Basic qui, je
l'espére fera bientét le bon-
heur des possesseurs d'APPLE //GS.
Hélas | malgré une bonne vingtaine
de coups de téléphone dans toutes
les directions, malgré la bonne
volonté manifestée par certains de
mes interlocuteurs (merci tout de
méme, Xavier Schott), je n‘ai pas
réussi 4 dénicher la documentation
(en anglais) qui accompagne norma-
lement la disquette. Dommage !
U'événement justifiait, 4 mes yeux du
moins, un petit retard dans la mise
en vente de TREMPLIN MICRO. A une
époque ot la Communication passe
par une bonne Information des
Médias, il ne semble pos que la
Direction d'Apple France tiene réel-
lement 4 utiliser cet excellent véhi-
cule de l'information qu’est la Presse
technique et spécialisée.
Hélas | d'autres responsables fran-
gais partagent ce point de vue. On se
contente de réunir les représentants
de la grande presse, a l'occasion de
cocktails, petits déjeuners et autres
manifestations bien parisiennes :
petits fours, boissons fraiches et (ou)
alcoolisées... speach de |'attachée
de presse (si possible jeune et jolie)
et discours du responsable des festi-
vités. Tout cela aura peut-étre I'hon-
neur de la télévision, justifiera quel-
ques lignes dans deux ou trois quoti-
diens nationaux... Bref, un truc cer-
tes bien ficelé, dont je ne nie pas
us sumesanss:
TREMPLIN MICRO
Guy-HACHETTE
l'utilité, mais dont je conteste la
valeur sur le plan "information du
client potentiel”... notre lecteur.
J'aurai sans doute la doc du GS
Basic dans quelques jours, en la
payant bien entendu, mais trop
tard pour vous en parler dans ce
numéro.
Premier constat
GS Basic fonctionne sous ProDOS
16, le futur standard de I'Apple //GS.
Pour I'instant, sa durée de charge-
ment reste exagérée, mais la pro-
chaine nouvelle version de ProDOS
16 devrait améliorer cela.
Uéditeur parait un peu lent, mais ce |
n'est semble-t-il qu'une illusion. En
réalité, il est difficile de perdre un
caractére, méme en accélérant la
frappe. Comme cela se passe avec
APW, il y a mémorisation des trois
derniéres lignes, qu'il est facile de
rappeler en appuyant sur la fléche
correspondant @ cette option. On
peut alors insérer et supprimer a
volonté dans la ligne, ce qui est évi-
demment pratique. Nous n’envie-
rons plus IBM sur ce point !
Visiblement, si ce nouveau Basic
ressemble 4 notre bon vieil Apple-
soft, il n’en a heureusement pas
conservé les insuffisances les plus
Showing the first 100000 of 208983 characters.