La revue francophone independante pour les utilisateurs des
Apple ][+, He, //e+, //c, IIgs™ et Macintosh™
$0*
ouverture dcs Apple a la
communication dans las
pages de Pom's sc
poursuit par un
programme qui allic au «savoir
communiquer» dc CalvaCom
l'indispensable liaison a
l'ordinatcur.
CalvaCom
Pour les lectcurs non encore au fait des
possibilitcs dc CalvaCom, unc
presentation sommairc s'impose. II se
diffcrencie des scrvcurs habitucllement
consullds a l'aide du Minitcl par
plusieurs points :
• on y accede par le 36 13 (ou
36 00 36 01, une unite toutcs les 6
mn moins reduction d'horaires), lc cout
de connexion ctant regld directemcnt a
CalvaCom (prdlcvemcnt ou carte
bancairc) ;
• la consultation se fait sans caractcrc
graphique : seuls les caractcres ASCII
arrivent au modem ou au Minitcl. Ce
dernier affiche les messages en mode
"rouleau" tel une imprimante ;
• passer de menus en menus est bicn
plus simple et efficace que sur les
serveurs kiosque, l'acces a l'infonnation
est particuliercment rapide ;
• il a die concu dans l'optique dc la
connexion a l'ordinateur : les
informations disponibles sont reellement
exploitables par le micro.
CalvaCom met a la disposition des
abonncs :
• unc mcssagcrie dlectronique qui
permct a chacun de classcr ses
messages, de repondrc simplcmcni, de
rccevoir dcs messages directemcnt de
l'ordinateur de l'abonne pour dvitcr de
pcrdre du temps a les composer en
direct ;
• lc service TELEX, en dmission et
reception ;
• des forums electroniqucs ;
• un systcme de teleconference (convi-
vialitc) ;
• un systcme dc pctitcs annonces ;
• dcs magazines dlcctroniques ;
• des bibliothcques de programmes
tclechargeablcs ;
• les depeches de l'Agence France
Presse ;
• les cours de la bourse avee possibilite
dc passer des ordres ;
• des 'cites' ccntrecs sur Atari, IBM,
Apple //, Macintosh...
Le programme
CLVPOMS
Proposd en version Apple // et en
version Macintosh, CLV_POMS donnc
les possibilitcs suivantcs :
• enrcgistrcmcnt de consultations
CalvaCom. Les fichicrs constitues
sont recuperables par voire traitcment de
texte, voire lableur... et ils ne sont
limites en dimension que par la capacile
dc voire support disquc ;
• mode telcscripteur : impression au
fur et a mcsurc dc la reception, mode
particultcremcnt efficace lors de
l"'ecoute" dcs depeches AFP (qui
tombent au fur et a mcsurc dc l'actualitc)
ou dcs cours de la bourse ;
• exportation dc fichicrs vers
CalvaCom : vous voulcz passer une
petite annoncc, nous laisser un message
(le code de Pom's est EMP11),
parliciper a un forum, constituer un
fichicr sur lc scrvcur pour utilisation
ulterieure ? Prdparez-le en traitcment de
textcs et envoyez-le par cctte option : il
sera transmis sans protocolc mais au
bon debit, cn respectant la mini-pause dc
fin de ligne ;
• procedures : e'est une utilisation
particuliere du mode precedent. II est
possible de prdparer un texte
comprcnant les options choisics pour
une consultation habituelle et de
l'cnvoycr a CalvaCom pour attcindrc
plus rapidcmenl et sans errcur les
informations. Pour consultcr
automatiquement les publicitcs du forum
Macintosh, la procedure pourrait ctrc la
suivante :
N'abonne
Motdepasse
ci
mac
lo pub
Dcs pauses peuvent etre incluscs dans lc
fichicr pour tenir compte du temps
d'affichage des nouveautcs aprcs lc mot
dc passe par cxcmplc.
• impression d'un fichicr de textcs sur
disquc : il s'agira souvent du rcsultat
de voire demiere connexion ou d'unc
demicre verification dc voire texte avant
exportation.
Bien entendu, les programmes
CLV_POMS recodent les minuscules
acccntuees tant en dmission qu'en
rdecption, tant sur le Mac que sur
l'Apple //, tant avec un Minitel 40
colonncs que sur le 80 colonncs.
Configuration
CLV_POMS fonclionne sur :
Apple ][+ avee ROM minuscules,
carte langagc ct carte Super Serie Apple ;
Apple //e avec carte Super Scrie
Apple ;
Apple lie ;
Apple IlGS sur son port modem
intcgre ou avec unc carle SSC ;
Macintosh 128, 512, Plus ou SE.
II ncccssitc :
- un modem ou un Minitel (les modclcs
80 colonncs sont bien plus
agrdablcs),
- un cable dc liaison disponiblc a la
revue.
La disquette
CLV_POMS, ccrit cn assembleur, est
livre sur une disqucltc 3'5 pour
Macintosh cl au choix 5'25 ou 3'5 pour
l'Apple//.
La version Apple // fonclionne sous
ProDOS avec tous les volumes
(disquettes 140Ko, 800Ko, disque
/RAM, Spccdisk, disques durs...).
La version Mac fonclionne avec tous les
supports, tant en MFS qu'en HFS.
CLV_POMS : 200,00 F TTC, cable de
liaison 225,00 F, bon de commande
page 74.
2
Pom's n°31
Numero 31
juillet-aout 1987
Editorial
Herve Thiriez
Page 5
II
GS
Peeks et Pokes
longs sur GS
Christian Piard p a g e <j
Le Basic et I'heure
Page 8
Graphes et fonctions
n
GS
11+
//e
//c
Claude-
Lucien
CAUET
Page 9
GOGO
ffC
//e
GS
Patrice
Neveu
Disquette Pom's 31 Apple II Page 2<J
£■5^1 ; w/ie nouvelle carte :
Speedisk %%f e p ag <27
Essai ; une carte vocale :
Valentine Page 28
Ecriture proportionate en
DHGR Frederic
Rosay
//c
11+
//e
Page 31
Un nouveau produit Pom's :
Editeur Videotex Page 37
Essai Macintosh :
Writer +
Philippe Mathieu
Page 40
Decompacteur de
programmes Basic
Julien Thomas
Page 43
Disquette Pom's 31 Mac Page 45
Un accessoire 'minimum' :
MinAcc H
Alain Bohec §
d 1 Page 46
Kino
Alain Bohec
d Page 47
1
Les nouvelle s version
d'InterPom's Page 52
Le VOyageUr SergeCattan
Page 55
UK
1[+
//e
n
GS
Turbo-Pascal : Graphisme,
sul l e • • • Michel de Cremoux &
|| o 1, .1 1 Nicolas Martin
GS
][+
//e
//C \\PnoP ^0
Bibliographie
Alexandre Duback
Page 62
LeMouse : sour is &
menus
nzcj
Le Phain Hiep
Page 63
fi-informations
Jean-Michel Gourevitch
Page 67
Les annonccurs ; Apple : pages 38 et 39 ; LOGMA S.A. : page 76 ; mak fan : page 4 ; Q.S.I. : page 44.
Editions MEV - 12, rue d'Anjou - 78000 Versailles. Tel. : (1) 39 51 24 43. Directcur de la publication : Herve Thiriez
Pom's n° 31
LA NOUVELLE REVUE
DES FANAS DU
MACINTOSH
C'est LA NOUVELLE REVUE de I'utilisateur pointu de "Macintosh".
C'est i'espace ou les utilisateurs de 4D, Excel, Writer +, Jazz et TK Solver se retrouvent.
C'est le magazine de celui qui veut se d^gourdir les doigts et les neurones sur le clavier,
avec les "tutorials" en Pascal, Assembleur, "C", Lisp et Modula.
C'est la revue oil vous pouvez ecrire si vous avez une belle realisation d'application a voire actif,
c'est Voire revue dispo ruble dans les kiosques.
makfan BP 33, 94471 - BOISSY Cedex Tel. : 45 99 02 10
SOMMAIRE DU N° 4 (64 pages)
actuellement dans les kiosques
MAC WORLD
DESKTOP PUBLISHING
INFOS PRESSE
MACROS DEXCEL
INTRODUCTION A 4e DIMENSION
BASEGEST (4eD)
WRITER PLUS
TUTORIAL : ASSEMBLEUR 68000
LEJJSP
ALGORITHMES
L'HOMME DU MOIS (UN GRAPHISTE)
RECREATIONS ALGORITHMIQUES
CALCULS EN MULTI-PRECISION
ssiiiissssr"- '■-
bulletin d'abOnnGITIGnt (Bulletin a recopier ou a photocopier)
a retourner a : mak fan BP 33, 94471 - BOISSY C6dex
□ Oui, je m'abonne pour 1 an [8 numeros] a partir du N°
au prix de 260 F au lieu de 280 F
□ Abonnement de soutien : 350 F (8 numeros)
Frais de port inclus - Etranger : 45 F le numero.
I
VENTEAU NUMERO: J N 3 1 □ l\P2 au prix unitaire de 30 F (40 F pour I'Etranger).
□ N°3 au prix unitaire de 35 F ( 45 F pour I'Etranger).
ci-joint un cheque de FF a I'ordre de mak fan
Nom : Prenom : Adresse :
Code postal : Ville : Profession :
Ont collabore a ce numero
Alexandre Avranc - Jean-Luc Bazanegue
Alain Bohec - Serge Cattan
Claude-Lucicn Cauet
Michel de Cremoux
Alexandre Duback
Jean-Michel Gourevitch
Olivier Her/. - Lc Pham Hiep
Nicolas Martin - Philippe Malhicu
Gerard Michel - Patrice Neveu
Christian Piard - Frederic Rosay
Hcrve Thiriez - Julien Thomas
Directeur de la publication
redacteur en chef
Hervc Thiriez
Redacteurs
Alexandre Avranc - Olivier Hcrz
Siege social
Editions MEV
1 2, rue d'Anjou
78000 Versailles
» (1) 39.51.24.43
Publicite
Editions MEV
Diffusion
N.M.P.P.
Impression
Bcrgcr-Lcvrault
18, rue des Glacis
54000 Nancy
» 83.35.61.44
Photos de couverture
CP & JLB
Photogravure
Graphotec
21 , chemin de la Tour
92350 Le Plcssis-Robinson
w (l) 46.30.44.49
Pom's est une revue independante non
rattachee a Apple Computer, Inc. ni
a Apple Computer Prance S.A.R.L.
Apple, le logo Apple, Mac et le
logo Macintosh sont des
marques deposees
d'Apple Computer, Inc.
IBM est une marque deposee de
Internationa] Business Machine.
PC et AT sont des marques deposee
de la Societe IBM.
Editorial
Une fois n'est pas coutume, void en couverture - et sur
fond de loisirs estivaux - une illustration du
fonctionnement de deux programmes que vous pourrez
trouver dans ce numero : Schema teur, volumineux,
dans le domaine de la creation graphique et Peeks /Pokes
longs qui en fait voir de toutes les couleurs - ou presque
- sur 1' Apple IIgs et derriere le logo "Pom's".
Pom's poursuit sa lancee dans V exploration des voies
communicantes en vous proposant trois disquettes
editees en dehors des pages de la revue :
InterPom's - le programme qui, depuis le numero 28,
relie vos Apple // et/ou Macintosh par telephone via
Minitel - a rccu de nombreuses ameliorations dans la
version 2, version capable de communiquer de la meme
maniere avec les micros IBM® et compatibles.
CLV_Pom's vous est propose pour repondre aux besoins
de nombre de lecteurs abonnes a CalvaCom. Que se soit
pour Apple // ou Macintosh, CLV_Pom's se presente
sous la forme d'une application autonome et est
compatible 'toutes configurations' .
Enfin, un editeur videotex en CP/M, pour les Apple //
munis d'une carte 80 colonnes ainsi que d'une carte Z80.
Communiquer n'a pas ete facile pour tous nos lecteurs ;
vous etes nombreux a avoir attendu longtemps - par fois
un mois - la reception de votre cable Apple/Minitel
decrit dans les numeros 27 et 28. En effet, nous avions
envisage la distribution de ce type de cable comme un
service aux lecteurs qui n'avaient pas la possibility
d'effectuer la realisation eux-meme, or, la parution
d'articles dithyrambiques dans d'autres pages que celles
de Pom's nous a valu un afflux de commandes auquel
nous ne nous attendions pas. Tout est desormais rentre
dans I'ordre et nous prions ceux d'entre-vous qui ont
attendu de bien vouloir nous excuser de ce retard
regrettable.
Pour revenir au numero 31 proprement dit, et sans aller
jusqu'a decrire chaque article (il y en a beaucoup et ce
serait trop long pour un editorial !), on peut signaler la
presence de trois bancs d'essais dont deux 'hard' pour
V Apple II : la carte vocale Valentine et le 'disque-RAM'
Speedisk. Le banc d'essai 'soft' est celui de Writer +,
traitement de textes pour Macintosh.
Herve Thiriez
Pom's n°31
5
^ Applesoft semble
bien perdu devant
254 des 255 bancs
de 64Ko du IIGS.
En effet, comment acceder
depuis le Basic a la ROM en
page 255, a la page Super
Haute Resolution en page
225 (adresses 14 753 792 a
14 778 367) par exemple ?
La petite routine presentee ici dote
le Basic de PEEK et POKE
longs, c'est-a-dire accedant a
l'ensemble de la memoire. Deux
programmes de demonstration en
illustrent les possibilites.
Mode d'emploi
La routine s'installe a 1'adresse
$300, mais ne demande qu'a etre
assemblee ailleurs en cas de
besoin.
L'initialisation se fait en mode
direct par :
- PIC.POC
et dans un programme par :
PRINT CHR$ (4) "-PIC.POC"
Voici la syntaxe des commandes
disponibles :
& PEEK page, adresse, var%
Page est le numero en decimal du
banc ou la lecture se fera.
Adresse est 1'adresse en decimal
dans ladite page.
Var% est la variable entiere qui
recevra la valeur de l'octet
souhaite.
Par exemple :
& PEEK 255, 65535, GF%
affectera a GF% la valeur de la
derniere adresse memoire.
5 PEEK 1-1,MLI,A1%(2)
affectera a la 3eme variable du
tableau Al% la valeur 76 si on a
definit MLI=48896 (SBFOO) et
que ProDOS est actif.
Page superieure a 255 et adresse
superieure a 65535 conduisent a
un «Illegal quantity error» merite.
Si la variable receptrice n'est pas
entiere (%), l'utilisateur sera
gratifie du «Type mismatch
error».
6 POKE page, adresse, valeur
Meme principe pour Page et
Adresse ; Valeur sera comprise
entre et 255 sous peine de
message d'erreur.
Des exemples
Le programme LIT. MESS. GS
est une illustration du PEEK : il
lit et affiche les messages stockes
en page 255 (ROM),
particulierement ceux affiches par
le tableau de bord.
Cette zone est visee par un
pointeur dont 1'adresse est
donnee en SE100C0/E100C2.
Sous reserve de bien respecter les
conventions "poids fort a 1,
poids fort a 0", il suffit de
changer cette adresse et le GS
affichera votre table de message
en francais par exemple.
Le programme GSCOLOR ne fait
qu'un degrade de couleurs en
page Super Haute Resolution,
semblable a celui de la couverture
de ce numero. II prend son temps
(9 minutes en mode rapide...)
mais illustre le fonctionnement du
Christian ^iard
&POKE par 64000 points a
l'6cran. On peut rappeler
succinctement la structure d'une
page SHGR.
La SHGR
Une telle page se situe dans la
page $E1 (225) entre $2000 et
$9FFF.
de $9E00 a $9FFF
16 palettes de 16 couleurs
chacune composee de 2 octets ou
32 bits :
4 bits pour le vert
4 bits pour le bleu
4 bits a
4 bits pour le rouge
On obtient un jaune vif avec :
FOOF c'est-a-dire seize 16emes
de vert, ze>o 16eme de bleu et
seize 1 6emes de rouge.
de $9D()0 a $9DC7
200 octets (1 par ligne a l'ecran)
dont les 4 bits de poids faible
donnent le numero de la palette
qui sera utilisee par la ligne
concernee.
Le bit 7 sera a si la ligne
comprend 320 point, c'est le cas
dans notre exemple.
Le bit 6 a 1 provoquerait une
interruption en fin de ligne pour
changer une couleur de la palette
avant affichage de la ligne
suivante par exemple.
de $2000 a $9CFF
32000 octets pour les 64000
points a l'ecran (200 lignes de
320 pixels). Chaque point est
represent^ par un demi octet qui
indique, de a 15 le numero de
sa couleur dans la palette reservee
pour la ligne consideree. /-A
6
Pom's n°31
Source PIC.POC.S
Assembleur ProCODE
1
2
3
•
• PEEK i
■
POKE
LONGS SUR
APPLE IIGS
4
5
DSK
PIC.POC
6
7
AMPERV
-
$3F5
vecteur t
8
FRNUM
-
SDD67
calcule une formule
9
CHKCOM
-
SDEBE
vlrgule ?
10
GF. IADF.
-
$E752
FAC -> enclec
11
CETBYTC
SE6FS
formule sur un octet
12
PTRCET
-
SDFE3
recherche d'une variable
13
MISMATCH
-
SOD 7 6
message type mismatch
14
VARNAM
=
$81
nom de la variable
15
VARPNT
=
$83
polnteuf sut sa valeur
16
17
ORG
$300
18
19
LDA
AMPERV* 1
vecteur deja lnstalle ?
20
CMP
t<DEBUT
21
BNE
INIT
22
LDA
AMPERV*2
23
CMP
l>DEBUT
24
BEQ
INITOK
25
INIT
LDA
AMPERVf 1
non, on sauvega rde 1 ' eventuel
26
STA
ANCVEC
anclen vecteur
27
LDA
AMPERV*2
28
STA
ANCVEC* 1
29
LDA
t$4C
et on lnstalle le nouveau
30
STA
AMPERV
31
LDA
l< DEBUT
12
STA
AMPERV 1
33
LDA
t>DEBUT
34
STA
AMPERVI2
35
TNITOK
RTS
36
37
DEBUT
CMP
t$B9
est-ce poke
38
BEQ
POKE
39
CMP
l$E2
est-ce PEEK
40
BNE
AUTRE
41
42
PEEK
LDX
f$FF
c'est PEEK
43
STX
DP PEEK
on posit lonne un drapeau
44
BMI
POKE1
45
46
POKE
LDX
10
c'est POKE
47
STX
DP_PEEK
48
P0KE1
JSR
CETBYTC
ler parametre = 1 octet
49
STX
NPAGE
c'est Je n° de page de 64Ko
50
STX
NPAGEl
51
52
JSR
CHKCOM
vlrgule ?
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86 AUTRE
87
88 LPOKE
53
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
JSR
JSR
LDX
STX
STX
STA
STA
BIT
BMI
S PEEK JSR
JSR
STA
STY
LDA
AND
BMI
]1
DFB
DFB
DFB
APOKER DFB
DFB
ADRESSE DFB
NPAGE DFB
FIN DFB
DFB
DFB
LPEEK DFB
DFB
DFB
ADRESSE 1 DFB
NPAGEl DFB
DFB
FRNUM
GETADR
$50
ADRESSE
ADRESSE1
ADRESSE* 1
ADRESSE 1 '1
DP_PEEK
S PEEK
JSR GETBYTC
STX A POKER
JMP LPOKF.
CHKCOM
PTRGET
VARPNT
VARPNT* 1
VARNAM
VARNAM* 1
H
JMP MISMATCH
JSR
LDY
STA
DEY
TYA
STA
RTS
LPEEK
n
(VARPNT) , Y
I VARPNT), Y
2eme parametre sur deux octets
c 'est 1 'adresse
on prepare 1 'adresse du Peek
ou du Poke
; est-ce Peek ?
Jeme parametre ; octet a poker
on poke
vlrgule ?
cherche polnteur sur variable
le sauve
la variable dolt Stre entiere
C%, CA% ou D%(4) par exemple
slnon Type mismatch error
on va chercher 1 'octet
et on le stocke a 1 'adresse
de la variable cholsle
(ANCVEC)
$18
$FB
$A9
$8F
0,0
$38
$FB
$60
$18
$FB
$AF
0,0
$80, $F5
ANCVEC DA $FF58
DP PEEK DS 1
saute a 1 'anclen vecteur
CLC
XCE passage en 16 bits
LDA tdonnee
STA $000000
SEC Retour au 6502
XCE
RTS
CLC
XCE
LDA $000000
BRA FIN
P.TS par defaut
][gs
Programme LIT.MESS.GS
5 PRINT CHR$ (4) "-PIC.POC
JO FOR I = 35374 TO 37261:
%:G% = G% - 128 * (G% >
% GOSUB 100: IF G% >
R$ (G%);
20 NEXT
30 END
100 PRINT : RETURN
& PEEK 255, I, G
127) : ON NOT G
31 THEN PRINT Cli
ProDOS
Programme G SCO LOR
Temps d 'execution : 9 mn...
1 PRINT CHR$ (4) "-PIC.POC
10 U = PEEK (49204): POKE 49204,0: REM
Sauvagarda da la coulaur daa
horde, puis mlea au nolr
15 POKE 49193, 161
16 A$ = "El/9 N 0<2000 . 9FFFZ N 5<9D60.9DC7Z
N 0<9EC0 . 9EDFZ N 0/9 N D823G" : REM
17
20
30
40
50
60
70
72
Effaca l'ansambla SHGR, routlna
SHLAM
FOR I = 1 TO LEN (A$): POKE 511 + I, A
SC ( MID$ (A$,I,1)) + 128: NEXT : POKE
72,0: CALL - 144
REM Conotructlon daa palattas
FOR I = TO 30: S POKE 225,40448 + I,
240:1 = 1 + 1 : 6, POKE 225,40448 + 1,1
/ 2: NEXT
FOR I = TO 30: s POKE 225,40448 + I
+ 32, (30 - I) * 8:1 = I + 1: s, POKE 22
5,40448 + I + 32,15: NEXT
FOR I = TO 30: & POKE 225,40448 + I
+ 64,1 / 2:1 = I + 1: s POKE 225,40448
+ I + 64,15: NEXT
FOR I = TO 30: & POKE 225,40448 + I
+ 96,15:1 = I + 1: & POKE 225,40448 +
96, (31 - I) / 2: NEXT
FOR I = TO 30: S POKE 225,40448 + I
+ 128,15 + I * 8:1 = I + 1: s POKE 225
,40448 + I + 128,0: NEXT
FOR I = TO 30: & POKE 225,40448 + I
+ 160,240 + (30 - I) / 2:1 = I + 1: &
Pom's n°31
POKE 225,40448 f I + 128,0: NEXT
73 FOR I = TO 30: & POKE 225,40448 + I,
240: & POKE 225,40448 + I + 192,240:1
= I + 1: S POKE 225,40448 +1,1/2: S
POKE 225,40448 + I + 192,1 / 2: NEXT
74 FOR I = TO 30: i POKE 225,40448 + I
+ 32, (30 - I) * 8: S POKE 225,40448 +
I * 32 + 192, (30 - I) * 8:1 - I + 1: S
POKE 225, 40448 f I + 32,15: S POKE. 22
5, 40448 + I > 32 + 192,15: NEXT
75 FOR I = TO 30: S. POKE 225,40448 * I
+ 64,1 / 2: & POKE 225, 40448 i I * 64
+ 192,1 / 2:1 = I + 1: S POKE 225,4044
8 + I * 64,15: S POKE 225,40448 f I 4
64 + 192,15 : NEXT
76 FOR I = TO 30: S POKE 225,40448 + I
+ 96,15: & POKE 225,40448 +1+96+1
92,15:1 = I + 1: S POKE 225,40448 + I
+ 96, (31 - I) / 2: S POKE 225,40448 +
I + 96 + 192, (31 - I) / 2: NEXT
77 FOR I - TO 30: S POKE 225,40448 + 1
+ 128,15 + I * 8: & POKE 225,40448 + I
+ 128 + 192,15 + I * 8:1 = I + 1: & P
OKE 225,40448 + I + 128,0: S POKE 225,
40448 + I + 128 + 192,0: NEXT
78 FOR I = TO 30: & POKE 225,40448 + I
+ 160,240 + (30 - I) / 2: & POKE 225,4
0448 + I + 160 + 192,240 + (30 - 1) / 2
: I = I + 1 : & POKE 225,40448 + 1 + 128
,0: & POKE 225,40448 + 1 + 128 + 192,0
: NEXT
TOO REM Installation das polnteurs
110 FOR I = 40192 TO 40192 +176 STEP 16:
FOR J = TO 15: S POKE 225,1 + J, (I -
40192) / 16: NEXT : NEXT
200 REM Rampllssaga da la paga
210 FOR A = 8192 TO C192 + 5 * 2560 STEP 2
560
220 FOR B = TO 15
230 FOR C = TO 159
240 AD=A+B*160+C:& POKE 225, AD, B
+ B * 16
245 S POKE 225, AD + 15360, B + B ' 16
250 NEXT : NEXT : NEXT
999 PRINT CHR$ (7): GET R$ : POKE 49193,65
1000 POKE 49204, U: REM Rastaura la
couleur das bords
Recapitulation
PIC.POC
Apres avoir saisi cette recapitulation
sous moniteur, vous la sauvegarderez
par : BSAVE PIC.POC, A$300, L$A4 ■
0300-.AD F6 03 C9 2A DO 07 AD
0308-.F7
03
C9
03
FO
IB
AD
F6
0358 :8D
94
03
8D
9D
03
2C
A3
8D
Al
03
AD
F7
03
8D
0360:03
30
09
20
F5
E6
8E
91
0318 :A2
03
A9
4C
8D
F5
03
A9
0368:03
4C
8E
03
20
BE
DE
20
0320: 2 A
8D
F6
03
A9
03
8D
F7
03 70 :E3
DF
85
83
84
84
A5
81
0328:03
60
C9
B9
FO
OB
C9
E2
0378:25
82
30
03
AC
76
DD
20
03 30: DO
5 9
A2
FF
8E
A3
03
30
0380:99
03
AO
01
91
83
88
98
0338:05
A2
00
8E
A3
03
20
F5
0388:91
83
60
6C
Al
03
18
FB
0340-.E6
8E
95
03
8E
9E
03
20
0390-.A9
00
8F
00
00
00
38
FB
0348: BE
DE
20
67
DD
20
52
E7
0398:60
18
FB
AF
00
00
00
80
0350-.A6
50
8E
93
03
8E
9C
03
O3A0-.F5
58
FF
00
Le Basic et I'heure
ProDOS
En Basic sous ProDOS, il
existe un moyen simple
d'obtenir I'heure dans le but de
mesurer un temps d'execution
par exemple. Nul besoin
d'appeler une commande
externe ou d'ecrire la
mini-routine qui appellerait
GET_TIME et remettrait a
I'heure les octets $BF90 a
$BF93.
II suffit d'utiliser la routine de
termeture des f ichiers du
Basic.lnterpreter 1.1 qui se chargera
du travail :
taire CLOSE ; I'octet 49043 donne
alors I'heure, et le 49042 les
minutes.
Par exemple, le programme :
10 HOME
20 PRINT CHR$ (4) "CLOSE
30 VTAB 10: PRINT PEEK (4
9043) " heures "PEEK (
4904 2) " minutes
40 GOTO 20
affiche I'heure en permanence.
Bien sur, il taut une carte horloge
dans I'appareil ; celle integree au
IIgs ne sera activee qu'avec
ProDOS 1.2 etsuivants. ^
Un conseil ?
Un probleme ?
Un souhait?...
...24 heures sur
24, laissez
votre
message sur
CalvaCom.
Le code
d'abonne de
votre revue,
c'est "empll".
Pom's n°31
Ctaude-Lucun CMlTfl
Ce programme se compose de
deux parties :
• le programme schemateur
permet de dessiner des figures
en haute resolution (rectangles,
cercles, ellipses...) avec des
textes incorpores (y compris un
jeu de caracteres mathematiques).
Par ailleurs, il est possible de
remplir les surfaces avec des
motifs varies, de deplacer l'image
(ou une partie) dans toutes les
directions : centrage, mixage,
image geante de trois ecrans. On
peut enfin travailler simulta-
nement avec deux images
superposees, les mettre en
reserve (jusqu'a cinq en memoire
auxiliaire), inverser la couleur...
Bref, un programme ambitieux.
• le programme fonction
permet de tracer le graphe de
fonctions mathematiques de tous
types, ou leur derivee, en
choisissant a loisir l'echelle et la
fenetre de visualisation. Les
traces sont continus ou pointilles,
et leur creation peut etre
acceleree. Trois 6crans gra-
phiques sont disponibles, dont
deux superposables. Enfin, une
fonction est acceptee meme dans
un domaine ou elle n'est pas
definie.
Ces deux programmes
communiquent sans probleme
leurs images graphiques, qui
peuvent etre imprimees
directement sur ImageWriter
grace a l'utilitaire gravure.
Configuration
Un minimum de 64Ko de
memoire est necessaire ; par
ailleurs, une paire de 'paddles'
(ou un joystick) est recomman-
dee. Le programme est
initialement concu pour un Apple
lie ou //c mais doit pouvoir
tourner sans modification sur un
][+•
L'essentiel des modules sont
ecrits en Applesoft et done
facilement modifiables. Plusieurs
fichiers en assembleur completent
l'ensemble pour assurer les
fonctions dedicates ou qui
necessitent une grande vitesse.
GR APHIS ME fonctionne sous
DOS 3.3 ; son adaptation a
ProDOS necessiterait de revoir
les fonctions de gestion des
images en memoire (actuellement
conservees dans la carte langage
et l'eventuelle memoire auxiliaire
de la carte 80 colonnes etendues).
Le demarrage de GRAPHISME
s'effectue par un simple :
RUN GRAPHISME
qui amene sur un premier menu
proposant l'acces aux deux
principaux programmes, ainsi
qu'une option de configuration :
existence de paddles et nombre de
lecteurs de disquettes.
Utilisation
En langant le programme, on se
trouve place en mode graphique
et un point lumineux apparalt au
centre de l'ecran.
Strop hoide
R<T> = -<C0S<2*T>>/C0
if . _ . Ti
- T <T< T i-
i
- i -
Pom's n°31
9
La touche Q permet d'acc6der au
menu principal permettant la
lecture/ecriture d'une image
graphique, le catalogue d'une
disquette et de quitter
SCHEMATEUR.
Ctrl-Q permet d'obtenir a l'ecran
un rappel des fonctions
disponibles.
Displacement du curseur
Le curseur graphique se deplace
sans tracer grace aux fleches du
clavier, par saut de douze
positions. En appuyant
simultan6ment sur * (ou le
bouton adequat du joystick), le
deplacement s'effectue point par
point, done beaucoup plus
lentement. A l'inverse, l'appui de
(5 permet de se deplacer par saut
de quart d'6cran.
La touche TAB (Ctrl-I) permet
d'activer (ou de d6sactiver) le
mode joystick. Le deplacement
peut alors etre effectue beaucoup
plus rapidement vers la position
voulue, mais avec moins de
prdcision. II sera done commode
d'utiliser altemativement ces deux
modes.
Commandes globales
DEL efface l'ecran graphique.
K d6finit une couleur : a 7 si
vous utilisez reellement la
couleur, ou N,B,G pour
noir, blanc et gris respec-
tivement avec un moniteur
monochrome.
I inverse totalement la couleur
de l'ecran.
W echange le dessin courant
avec un dessin stock6 en
carte langage.
U superpose le deuxieme dessin
au dessin courant.
Commandes de
positionnement
et de trace
X marque la position du point,
comme 6tant le d6but du
trac6. Par suite, le dernier
point du trace deviendra le
nouveau point de depart.
Z marque de maniere perma-
nente le point courant comme
6tant le point de depart de
tous les traces suivants. Utile
pour tracer des cercles
concentriques ou des droites
concourantes.
ESP ACE trace un segment de
droite entre le point de depart
d6fini et le point actuel.
H trace un segment horizontal
entre le point de depart et la
verticale passant par le point
courant.
V idem mais trace un segment
vertical.
R trace un rectangle dont les
points opposes sont le point
de depart et le point courant.
C trace un cercle centre sur le
point de d6part et dont la
circonference passe par le
point mobile.
D idem mais trace un disque
plein.
A trace lentement un cercle dans
le sens des aiguilles d'une
montre, interruptible par une
touche quelconque afin
d'obtenir un arc de cercle. Le
trace est definitivement arrete'
par RETURN.
E idem mais trace lentement
une ellipse centred sur le
point de depart et dont les
demi-axes sont donnes par la
position du point courant.
Commandes de
remplissage
S remplit une surface de forme
quelconque, definie par la
position du point courant et
d61imit6e par des limites
pleines (pas de pointilld). Le
remplissage peut etre
interrompu par une touche
quelconque.
P precise le mode de
remplissage :
C (remplissage complet),
V (lignes verticales),
H (lignes horizontales),
P (points r6gulierement espa-
ces),
Q (quadrillage),
D (hachures pench6es a droite),
G (idem a gauche),
L (losange).
Le pas peut 6galement etre
d6fini, ainsi que l'epaisseur
des traits.
L indique si le remplissage est
limite" par des points allumes
ou eteints, ainsi que le mode
de superposition (par la
commande U).
On peut gommer par les touches
G (gomme horizontale) ou Y
(gomme verticale), jusqu'a la fin
de ce mode par RETURN.
Commandes de texte
On entre en mode texte par la
touche T, et un curseur apparait.
Celui-ci se deplace avec les
fleches, ainsi qu'avec les touches
On peut superposer deux
caracteres en revenant en arriere
apres le premier caractere (accent
circonflexe, trema).
L'appui simultane" de C5 foumit
un jeu de caracteres math^ma-
tiques et grecs.
DEL efface un caractere. ESC
donne un curseur mort : il
n'avance pas (utile pour le
pivotement),
Ctrl- A agrandit le caractere,
Ctrl-Z le r6duira (s'il a ete"
agrandit).
Enfin, Ctrl-W fait pivoter le
caractere d'un quart de tour. On
sort de ce mode texte par
RETURN.
Displacements du dessin
La touche M active le mode
deplacement : les fleches
permettent alors de deplacer le
dessin, de huit points en huit
points.
L'appui simultan£e de la touche
permet d'enrouler le dessin :
horizontalement, il roule sur une
largeur 6gale a deux ecrans ;
verticalement, sur une hauteur
d'un ecran et demi. Soit un total
de trois 6crans. La touche W
reste bien sur op6rationnelle pour
observer la seconde partie de
l'image horizontale. On ressort de
10
Pom's n°31
ce mode par Return.
Definition de fenetre
F permet de definir le coin d'une
fenetre dont le coin oppose a 6t6
defini par la touche X.
Plusieurs options sont alors
possibles :
• effacer la fenetre (touche G) ;
• la remplir uniformement (R) ;
• effacer l'exterieur (D) ou
• encadrer la fenetre (E).
La touche M permet de deplacer
la fenetre en superposition sur le
dessin en cours ; la barre
d'espace permet ensuite de figer
le resultat. Dans ce mode, il est
recommande d'utiliser la touche
«.
Stockage d'images en
memoire
La touche B ^change le dessin
courant avec un dessin stocke" en
memoire.
Les fonctions suivantes sont
disponibles si Ton dispose d'une
carte 80 colonnes etendues
(128Ko) :
O permet d'observer les dessins
stockes (jusqu'a 5) ; Return
permet de sortir de ce mode
d'observation.
N echange le dessin courant avec
le dernier dessin visualise par O.
J permet de fixer le nombre
d'images stockees.
Le programme
FONCTION
Trois types de definitions de
fonction sont disponibles :
fonction cart^sienne : y = f
(x)
fonction polaire : R = f (T)
ou T est la variable angulaire
en radians, et R le rayon
vecteur correspondant
fonction parametrique : x = f
(t) et y = g (t) ou x et y sont
fonctions d'une variable t.
II est possible d'incorporer un
parametre M dans les equations,
afin de tracer une famille de
courbes sans ne faisant varier que
ce parametre.
Programmation des
fonctions
Les symboles suivants sont
disponibles :
+ ,-,*,/ et A (elevation a la
puissance) ; ABS, INT, SQR,
LOG, EXP, SIN, COS,
TAN, ATN sont semblables a
leur definition en Applesoft.
FNLD (logarithme decimal),
FNSH, FNCH etFNTH
(sinus, cosinus, tangente hyper-
boliques) sont par ailleurs
disponibles.
N'oubliez pas d'utiliser les
parentheses selon les regies
habituelles de l'algebre.
Par la suite, il est seulement
n6cessaire de definir les bornes
du graphe (en utilisant
eventuellement les valeurs par
defaut proposees).
Options disponibles au
menu
P permet d'obtenir la courbe en
pointille
D pour tracer la derivee de la
fonction
S £vite de dessiner les axes
C encadre le graphe et
RETURN visualise l'ecran.
Ensuite, les touches suivantes
declenchent 1' operation :
1 trace le graphe apres avoir
efface" I'lcran,
2 6vite l'effacement,
3 autorise la modification des
valeurs,
4 permet de changer de
fonction,
5 sauve le graphe sur disque
(par exemple pour le
reprendre sous SCHEMA-
TEUR),
6 charge un graphe du disque,
7 donne le catalogue,
8 retourne au menu.
Options disponibles au
graphe
Pendant le cycle de creation du
graphe, les touches disponibles
sont :
Return interrompt le trace,
C poursuit le trace,
ESC saute dix points de calcul
et permet ainsi un trace plus
rapide,
TAB revient en arriere de vingt
points (corrige l'effet
d'ESC).
Une fois le trace termine, on
dispose de :
Return revient au menu initial,
W ^change l'ecran courant avec
un deuxieme 6cran
memorise,
U superpose ces deux ecrans,
B echange l'ecran courant avec
un 6cran en memoire
secondaire
T inscrit du texte sur l'ecran:
pratiquement toutes les
sous-options disponibles
avec SCHEMATEUR sont
disponibles ici. De plus
Ctrl-F affiche l'equation sous
la position du curseur.
Le programme
GRAVURE
Le programme GRAVURE
permet d'imprimer, sur
ImageWriter, les images
graphiques creees par
SCHEMATEUR ou FONC-
TION.
Deux hauteurs d'image sont
disponibles, ainsi que l'inversion
des couleurs. On peut egalement
jouer avec un jeu de deformations
horizontales et le positionnement
de la feuille de papier et de la tete
d'ecriture.
Fichiers sur la disquctte
Pom's
Un grand nombre de modules
forment l'ensemble de
GRAPHISME.
Seuls les sources qui n'ont jamais
6t6 publies se trouvent sur la
disquette.
GRAPHISME initialisation du
logiciel, gestion de la
configuration
Pom's n°31
11
CONF.C module de configu-
ration (manuel de la carte 80
colonnes)
HEL.C module de nettoyage de la
memoire auxiliaire
T.HEL source de HEL.C
MENU programme g6n6ral de
menu (ne doit pas etre
verrouille" car il peut
s'auto-modifier)
SCHEMATEUR le programme
SHEM.C module assembleur
d'edition des graphiques
T.SHEM source de SHEM.C
CARAC.SH table des jeux de
caracteres
CHARGE. OBJ module de
chargement rapide (Pom's 4
modifi6 par Pom's 19)
FONCTION
FONC.C module assembleur de
trace de courbes
T.FONC source de FONC.C
(adapte de G.Mauffrey dans
Pom's 11)
ERREUR module classique de
gestion d'erreur en Applesoft
GRAVURE
GRAV.C module d'impression
T.GRAV source de GRAV.C
(adapte de I'lmageWriter
ToolKit)
EXEMPLE.P1C image graphique
exemple illustrant le jeu
alteme de caracteres
Conclusion
GRAPHISME se veut etre un
logiciel complet, a vocation
quasi-professionnelle ; il devrait
rendre de grands services a tous
ceux qui manipulent frequemment
a la fois des graphiques et des
fonctions mathematiques, et ont
toujours regrette" de ne pouvoir
les manipuler simultanement.
Programme
FONCTION
2: REM 1600
10 DBF FN F(T) ' X: REM
- X " 2) : REM REM »»»»»»»»»»»»»»»•»
*************************************
«***.**,(. .............
20 DEF FN G(T) = T: REM : REM ) : REM T
: REM ' 2): REM ' T: REM 2: REM '••
************************** ***********
**»»*»**»•»»»*•*»»**»»»##*»!.»»•»»*»**
*************************************
30 FOR 1 = 1 TO 3: READ INS (I): NEXT
40 DS = CHR$ (4)
50 IF PEEK (103) t 256 • PEEK (104) - 24511 GOTO 80
60 POKE 103,1: POKE 104, 96: POKE 24576,0
70 PRINT DS"RUN FONCTION'
BO IF PEEK (236) GOTO 140
90 AL = 6000: POKE 233, INT (AL / 256) : POKE 232, AL -
256 • ( INT (AL / 256))
100 PRINT DS "BLOAD FONC.C"
110 PRINT DS "BLOAD CARAC . SH, A"AL
120 PRINT D$ "BLOAD ERREUR, A931"
130 POKE 236,1
140 Al = 776-.A2 - 769-.A3 - 921 :A4 - 853 :A5 - 878
150 SC - 1: SCALE- SC:RO - 0: ROT- RO: HCOLOR- 3
160 VP - 7-.VN ' 10:VF • 12:VM - 17:VO - 18:NP = 280:X1
2 - 14:11 - - 9.6:12 - 9.6-.TD - - 10:TF • 10
170 S - 0:AX - lilH ' O.-CO - 0:MM = O.M - 1 : WW - 0:NL - 1
180 PL - 0: IF PEEK (214) THEN PL = 1
190 ONERR GOTO 2470
200 GOSUB 2000: GOTO 1010
210 REM •• CALCUL DES COORDONNEES" "
220 T4 = T: GOTO 250
230 W - W * 1: IFW>2'WWtl THEN W - 0:WW - 1 - WW
240 IF WW - THEN T - T t INC: POP : GOTO 1610
250 IF PEEK (49152) > 127 THEN SS - PEEK (49152) - 128:
49168, 0: GOTO 400
260 ON REP GOTO 270,320,360
270 X - XI * (T * 1) / EX
280 1 - FN FIX)
290 IF NOT DE GOTO 310
300 X - X * (X2 - XI) / 10000-.1A - FN F (X) :1 - (1A - 1) '
/ <X2 - XI)
310 I - T:J • (1-11) • El - 1: RETURN
320 Z • FN F(T)
330 IF DE THEN T - T * (T2 -
- Z) ' 10000 / (T2 - Tl)
340 X - Z • COS (T) : I - EX '
POP : GOTO 1630
350 1 - Z ' SIN (T) :J - EY '
360 X - FN F(T):1 - FN G(T)
370 IF DE THEN T - T * (T2 -
Repartition en V. de la puissance
industrielle mondiale en 1983 ■
CEE dont RFA S'/.
FRANCE 5,5V.
ROYAUME-UNI 4 ,5*
AUTRES
JAPON
USA
(Ualeur des productions minieres et manuPac-
turieres additionnees )
- 14:X
Tl) / 10000-.ZA - FN F(T):Z ' (ZA
(X - XI) l IF I
(1-11) : RETURN
Tl) / 10000-.XA -
OR
280 THEN
FN F (T) : 1A - FN
(1A - 1) / (XA - X)
(X - XI) : IF I < OR I >
(1 - 11) - 1 : RETURN
13 THEN T5 - T - INC: POP
410 IF SS - 27 THEN T - T * 10 " INC:
T - 20 • INC
T2
GIT) :1
380 I - EX
390 J - El
400 IF SS
280 THEN POP : GOTO 1630
: : GOTO 1 700
GOTO 430
420 IF SS ' 9 THEN T
430 IF T > T2 THEN T
440 IF T < Tl THEN T - Tl
450 POP : GOTO 1610
460 REM •• SAISIE DES DONNEES "
470 VTAB VT: HTAB HT: INPUT "";V$: IF VS - "" THEN VTAB VT: HT
AB HT: PRINT V: RETURN
480 V - VAL IVS) : RETURN
490 REM •• TABLEAU DONNEES "
500 VTAB VP * 1: IF REP = 2 THEN PRINT "ANGLE ->": GOTO 520
510 PRINT "PARAMETRE ->"
520 VTAB VP i 1: HTAB 14: PRINT "T minima: "TD: HTAB 14: PRINT "
T maxima : "TF
530 VTAB VN: PRINT "NOMBRE DE POINTS: "NP
540 VTAB VF: PRINT FENETRE—— :
VTAB VM: CALL - 958: FOR K - 1 TO 40: HTAB K: PRINT N
EXT
550 VTAB VF * 1: PRINT "X minima : "XI I : HTAB 20: PRINT "1 minima
:"Y1: PRINT "X maxima : "X2: : HTAB 20: PRINT "1 maxima: "12
560 RETURN
570 REM •' ENTREE DONNEES •"
580 VT = VP t 1:HT - 23:V - TD: GOSUB 4 70: TD - V:VT - VP + 2-.HT
' 23-.V - TF: GOSUB 470-.TF - V:T1 • TD:T2 - TF
590 VT • VN:HT - I8:V • NP: GOSUB 470:NP - V: IF REP - 1 THEN IN
C - 280 / NP: GOTO 610
600 INC - IT2 - Tl) / NP
610 POKE 33,19:VT - VF * J.HT - 10:V • XI: GOSUB 470:X1 - V: VT
= VF * 2:HT = 10:V - X2: GOSUB 470-.X2 - V:CX - X2 - XI: IF CX
< - GOTO 610
620 EX - 279 / CX:UX - 1: POKE 33,40
630 IF CX > 40 THEN CX - CX / 10: UX - UX • 10: GOTO 630
640 IF CX < 4 THEN CX - CX • 10:UX - UX / 10: GOTO 640
650 VT - VF * 1:HT = 29.V - 11: GOSUB 470:11 = V:1M - 11 f 1X2 -
XI) • 192 / 280: VTAB VF * 4: HTAB ll CALL - 868: VTAB VF +
3: CALL - 868: PRINT "Pout la meme 6chelle:1 maxima-";0. 1 •
INT (10 * YM * 0. 5)
660 VT - VF i 2:HT - 29:V = 12: GOSUB 470:12 • V:CY - 12 - 11: I
F CY < - GOTO 650
670 El - 191 / CY-.UY - 1
680 IF CI > 40 THEN CI - CI / 10.U1 ' U1 • 10: GOTO 680
690 IF CI < 4 THEN CI - CI ' 10:UY - UY / 10: GOTO 690
700 HTAB 1: VTAB VF * 3: CALL - 868: PRINT "Unitt en abscisse:
".OX: PRINT "Unlti en ordonnte: "; UY
71 RETURN
12
Pom's n° 31
1 TO 40: HTAB K: PRIN
720 REM " TABLEAU OPTIONS •
130 VTAB VM: CALL - 958: FOR K -
T •-";: NEXT
740 VTAB VO: PRINT "1- EFFACER ET TRACER": PRINT "2- TR
ACER SANS EFFACER": PRINT "3- MODIFIER LES VALEURS"
750 VTAB 21: HTAB 1: PRINT "4- CHANCER DE FONCTION": PR
INT "5- ENREGISTRER (- CHARGER": PRINT "7- IMPR1
HER B- CATALOGUE": PRINT "9- QUITTER LE PROGR
AMME";
760 RETURN
770 REM " PARAMETRE "
7S0 VTAB VP: PRINT "SI VOUS VOULEZ UT1L1SER UN PARAMETR
E M TAPEZ M (S1N0N UNE AUTRE TOUCHE) : "i : GET PRS: IF
PRS < > "M" AND PRS < > "m " THEN MM = 0: GOTO 795
790 MM = i
795 VTAB VP: HTAB 1: CALL - 958: RETURN
800 GOSUB 855: VTAB VP: HTAB 1: PRINT "1- FAMILLE DE CO
URBES": PRINT "2- PARAMETRE A LA DEMANDE" : PRINT "CHO
IX:".-: GET PR$:PR = VAL (PRS) - I: IF PR < OR PR >
1 GOTO 800
810 IF PR - GOTO 830
820 VTAB VP: HTAB 1: CALL - 958: INPUT "PREMIERE VALEU
R DE 'M'. '.M: GOTO 850
830 GOSUB 855: VTAB VP: HTAB I: PRINT "M minima : "Ml : VT
AB VP: HTAB 16: PRINT "M maxima : "M2 : VTAB VP: HTAB 31
: PRINT "Pas: "PM
840 POKE 33,15:VT - VP-.HT - 10:V - Ml: GOSUB 470.M1 ■ V: POKE 3
3,30:VT • VP:HT - 25:V = M2: GOSUB 470:M2 • V: POKE 33, 40:VT
= VP:HT - 35-.V - PM: GOSUB 470.PM - V
850 RETURN
855 FOR II = VP TO VP * 3: VTAB II: HTAB 1 : CALL - 868: NEXT :
RETURN
860 REM " MESSAGE DEFILANT "
870 SPEED- 245:AX - 1:CA = 0:PO - 0:DE - O-.DF - 1:T$ = A$<DF):N
S - ■•: FOR J = 1 TO 20:NS - NS I • ": NEXT
880 MS • NS * T$ * " "
890 INVERSE : FOR K = 1 TO LEN (MS) : VTAB VM: HTAB 5: PRINT M
IDS IMS, K, 30)
900 TC • PEEK (49152): IF TC > 127 THEN POKE 491 68, 0: SPEED' 2
55: NORMAL : GOTO 930
910 NEXT :DF - 1 * DF: IF OF - DM * 1 THEN DF - 1
920 TS • AS (DF) : GOTO 880
GOTO 890
GOTO 890
GOTO 890
sin x
930
940
950
955
960
IF TC - 196 THEN DE = 1:
IF TC • 208 THEN PO - 1:
IF TC • 211 THEN AX • :
IF TC - 1 95 THEN CA = 1
IF TC - 141 THEN POKE 49232,0: POKE 49234, 0: POKE 49236,0:
POKE 49239, 0: POP : GOTO 1 760
970 IF TC > 176 AND TC < 186 THEN R - TC - 176: GOTO 990
980 GOTO 890
990 FOR K = 1 TO 40: VTAB VM: HTAB K: PRINT "-": NEXT : RETURN
1000 REM " DEBUT " MENU "
1010 HOME : VTAB 2: HTAB 4: PRINT "GRAPHES DE FONCTIONS": VTAB
3: HTAB 4 : FOR I - J TO 18: PRINT ■_»;
1020 FOR I - 1 TO 3: GOSUB 1100: NEXT~
1030 1-1: INVERSE : GOSUB 1100: NORMAL
1040 VTAB 20: PRINT "FLECHES -> CHOISIR
1050 VTAB 21: GET CARS:CH - ASC (CARS)
1060 IF CH - 10 OR CH - 8 THEN GOSUB 1100:1 -1 + 1: INVERSE :
NEXT : PRINT
RETURN -> VALIDER"
GOSUB 1100: NORMAL
1070
1080
1090
1100
1110
1120
21 THEN COSUB 1100:1 - I - 1: INVERSE
GOTO 1130
IF CH - 11 OR CH =
GOSUB 1100: NORMAL
IF CH - 13 THEN HOME
GOTO 1050
IF I • 4 THEN I - 1
IF I - THEN 1-3
VTAB I ♦ 6: HTAB 4: PRINT INS(I): RETURN
1130 REP = I: ON I GOTO 1 1 SO, 1 1 80, 1210
1140 REM " ENTREE DES FONCTIONS •'
1150 HOME : HTAB 9: INVERSE : PRINT " FONCTION CAR TES I ENNE " : NO
RMAL : VTAB 3: PRINT "Y(X)-" : GOSUB 780
1160 HTAB 1: VTAB 3: PRINT "KX)-";: CALL Al : IF MM THEN GOSUB
800
1170 GOSUB 530: GOSUB 590: GOTO 1240
1180 HOME : HTAB 12: INVERSE : PRINT " FONCTION POLAIRE ": NORM
AL : PRINT "(La variable T est i 'angle en radians)": VTAB 3:
PRINT "R(T) = ": GOSUB 780
1190 HTAB 1: VTAB 3: PRINT "R(T) = ";: CALL Al : IF MM THEN GOSUB
800
1200 GOTO 1230
1210 INVERSE : HOME : HTAB 9: PRINT " FONCTION PARAMETRIQUE ":
NORMAL : PRINT "(La variable T est le paramecre courant)": VT
AB 3: PRINT "X(T> = ": VTAB 5: PRINT "Y (T) -" : GOSUB 780: HTAB 1
: VTAB 3: PRINT "X(T>-";: CALL Al
1220 VTAB 5: PRINT "Y(T>-";: CALL A2: IF MM THEN GOSUB 800
1230 GOSUB 500: GOSUB 580
1240 GOSUB 730
1250 GOSUB 870: ON R GOTO 1 350, 1260, 1265, 1 300, 1 890, 1890, 1290, 1 9
50,1320
1260 POKE 492 32,0: POKE 49234, 0: POKE 49236, 0: POKE 4 9239,0: GO
TO 1360
1265 IF MM - GOTO 1270
12(6 GOSUB 800: IF REP - 1 GOTO 1170
1267 GOTO 1230
1270 IF REP - 1 THEN GOSUB 590: GOTO 1240
1280 GOSUB S80: GOTO 1240
1290 PRINT DS"RUN GRAVURE,D1"
1300 HOME : GOTO 1010
1310 REM •• FIN ••
1320 HOME : PRINT
1330 PRINT DS "RUN MENU, Dl"
1340 REM •' DEBUT DU GRAPHE ••
1350 HGR : HCOLOR- 3: POKE 49234,0
1360 IF AX - GOTO 1565
1370 REM "TRACE DES AXES' •
1390 10 = INT ( - XI "EX)
1400 JO - INT ( - Yl • EY)
1410 IF JO < OR JO > 191 THEN 1490
1420 HPLOT 0,191 - JO TO 279,191 - JO
1430 IF JO < 2 THEN C = JO:D - 2: GOTO 1460
1440 IF JO > 189 THEN C - 2:D - 191 - JO: GOTO 1460
1450 C - 2:D - 2
1460 FOR I - INT (XI / UX) TO INT <X2 / UX) : IF 10 I I • EX •
UX<0ORI0'I'EX"VX> 279 THEN 1480
14 70 HPLOT 10 * I • EX • UX,191 + C - JO TO 10 + I • EX * OX, 19
1 - D - JO
1 480 NEXT
1490 IF 10 < OR 10 > 279 THEN 1570
1500 HPLOT 10,0 TO 10,191
1510 IF 10 < 2 THEN A - 10:B - 2: GOTO 1540
1520 IF 10 > 277 THEN A - 2:B - 279 - 10: GOTO 1540
1530 A • 2:B - 2
1540 FOR J - INT (Yl / UY) TO INT (Y2 / UY) : IF JO ' J • EY '
UY > 1 91 OR JO + J " EY * UY < THEN 1560
1550 HPLOT 10 - A, 191 - JO - J ' EY • UY TO 10 + B, 191 - JO - J
* EY * UY
1560 NEXT
1565 IF CA - 1 THEN HPLOT 0,0 TO 279,0 TO 279,191 TO 0,191 TO
0,0
1570 REM ''TRACE DE LA FONCTION"
1580 IF MM - 1 AND PR - THEN M - Ml
1590 IF REP - 1 THEN Tl - 1-.T2 - 279
1600 T - Tl
1610 GOSUB 220
1620 IF J > - AND J < -191 THEN HPLOT 1,191 - J: GOTO 169
1630 XDRAH 98 AT 10,10: XDRAH 98 AT 10,10
1640 T - T + INC: IF T < T2 GOTO 1610
1650 GOTO 1 700
1660 GOSUB 220
1670 IF J < OR J > 191 GOTO 1640
1675 IF PO THEN HPLOT 1,191 - J: GOTO 1(90
16*0 HPLOT TO I, 191 -J
1690 T - T t INC: IF T < T2 GOTO 1660
1 700 IF MM - GOTO 1 750
1710 IF NOT PR GOTO 1740
1720 POKE 49235,0: VTAB 21: HTAB 1: CALL - 958: VTAB 22: INPUT
"NOUVEAU PARAMETRE (SINON RETURN) :": PRS : IF PRS = "" THEN GO
SUB 750: POKE 49234, 0: GOTO 1750
1730 M - VAL (PRS): GOSUB 750: POKE 49234, 0:T1 - TO: GOTO 1590
1 740 IF T > = T2 THEN Tl - TD:M - M + PM: IF M - < M2 GOTO 15
90
1750 PRINT CHRS (7):
1760 IF PEEK (49152) < 128 GOTO 1760
1770 RR - PEEK (49152) - 128: POKE 491(8,0: IF RR - 87 THEN CA
LL A3: GOTO 1 7(0
1780 IF RR - 85 THEN CALL A4 : GOTO 17(0
1790 IF RR - (( THEN CALL A5: GOTO 17(0
1800 IF RR - 84 THEN GOSUB 2190: GOTO 17(0
1810 IF RR - 13 THEN POKE 49233,0: GOTO 1250
1820 IF RR - 67 THEN T - T5: GOTO 1610
1830 GOTO 1 760
Pom's n° 31
13
1840 REM '• ENREGI STRER-CHARGER "
1850 IF NOT PL THEN RETURN
1860 VTAB VO: HTAB 1: CALL - 958: PRIN
T : PRINT "LECTEUR N°: "I : INVERSE : P
RINT NL; : NORMAL : CALL - 1008: GET
CARS: IF CARS - CHRS 113) THEN RETU
RN
1870 IF CARS < > "1" AND CARS < > "2"
GOTO 1850
1880 NL - VAL (CARS) : INVERSE : PRINT N
L: NORMAL : RETURN
1890 GOSUB 1850
1900 HTAB I: VTAB VO I 3: INPUT "NOM DE
L' IMAGE: "; IMS: IF IMS - "" GOTO 1940
1910 PG - ASC ( LEFTS (IMS,!)): IF PG <
«5 OR PG > 90 GOTO 1900
1920 IF R - 5 THEN PRINT DS"BSAVE"IMS"
,AS2000,LS2000,D":NL: GOTO 1940
1930 PRINT DS"BLOAD"1MS",AS2000,D"NL
1940 GOTO 1240
1950 POKE 34, VP - I: HOME : GOSUB 1850:
PRINT
1960 PRINT DS "CA TALOG, D"NL: INVERSE : P
RINT "FIN": NORMAL
1910 GET CARS: HOME : POKE 34,0: IF REP
- 1 THEN GOSUB 530: GOTO 1240
1980 GOSUB 500: GOTO 1240
1990 REM "FONCTIONS SPEC1ALES"
2000 DEF FN SH(X) - ( EXP (X) - EXP (
- X)) / 2
2010 DEF FN CH (X) - ( EXP (X) * EXP (
- X)> / 2
2020 DEF FN TH(X) - - EXP ( - X) /
EXP (X) ♦ EXP ( - X) -2*1
2030 DEF FN LD(X) - LOG (X) / LOG (1
0)
2040 DM - 3: REM "NB DE MESSAGES "
2050 AS(1) - "TAPEZ VOTRE OPTION DE 1 A
9. . . 'P ' POUR COURBE EN POINTILLE. . . 'D
' POUR DERIVEE. . . 'S' SANS AXES. . . 'C
CADRE... 'RETURN' VOIR L'ECRAN"
2060 AS (2) - "UNE SONNETTE ANNONCERA LA
FIN DU GRAPHE. ..ON PEUT L ' INTERROMPRE
PAR 'RETURN' ET LE CONTINUER PAR 'C
. . . 'ESC SAUTE 10 POINTS. . . 'TAB' REVI
ENT DE 20 POINTS"
2010 AS (3) - "QUAND LE GRAPHE EST INTERR
OMPU • T • MODE TEXTE. . . ' M ' PASSE
D'UN ECRAN A UN AUTRE. . . 'W FUSIONNE
LES DEUX ECRANS. . . 'B' BANQUE . . . 'RETU
RN' RAMENE A CETTE PAGE"
2080 PI - 3.1416:E - EXP (1)
2090 RETURN
2100 REM •• TEXTE ••
2110 VX - 7:VY - 8
2120 IF PEEK (492501 > 121 THEN VX - 1
:VY - 1
2130 IF PEEK (49249) > 121 THEN VX - 1
0:VY - 48
2140 IF R - 21 THEN Xt • Xt * VX: IF Xt
> 279 THEN Xt = 279
2150 IF R - 8 THEN Xt - X% - VX: IF Xt
< THEN Xt -
2160 IF 8=10 THEN Yt • Yt * VY: IF Yt
> 191 THEN Yt - 191
2110 IF R = 11 THEN Yt - Yt - VY: IF Yt
< THEN Yt -
2180 RETURN
2190 PT - l-.CT - 98:KK - 0:CR - CT:S - C
T:Xt - 5:Yt ■ 5: XDRAH CT AT Xt, Yt
2200 C - PEEK (49152) -128: IF C < G
OTO 2200
2210 POKE 49168, 0:S - C - 29: IF C - 21
THEN TT - 1 - TT: XDRAH CT AT XI, Yt :
CT - 34 ' (TT - 1) ' CR • (TT - 0) : X
DRAW CT AT Xt, Yt: GOTO 2200
2230 IF C < > 32 OR TT - GOTO 2250
2240 KK = 1 : GOTO 2200
2250 IF C < 32 OR C - 121 GOTO 2330
2260 IF PEEK (49249) > 127 AND C > 41
AND C < 91 THEN S - S + 80
2210 XDRAM CT AT Xt.Yt: DRAM S AT Xt,Yt
2280 IF TT ' THEN CT - CR:KK - 0: GOT
O 2310
2290 CT = S
2300 GOTO 2200
2310 Xt - XI * 1
2320 XDRAM CT AT Xt.Yt: GOTO 2200
2330 IF KK = 1 THEN KK = 0: DRAM CT AT
Xt, Yt: GOTO 2350
2340 XDRAM CT AT Xt.Yt
2350 IF C - 13 THEN RO - 0: ROT- RO:CT
- CR:TT - 0:KK - 0: RETURN
2360 IF C - 23 THEN RO - (RO - 56) •
+ (RO < 56) • (RO t 8) : ROT- RO
2310 IF C - 121 THEN DRAM CT AT XI, Yt:
XDRAM CT AT Xt, Yt
2380 IF C < > 6 GOTO 2450
2390 LD - 1280: GOSUB 2410: IF REP - 3 T
HEN LD - 1536:Xt - Xt - 1 • FF: Yt - Y
t * 8: GOSUB 2410
2400 GOTO 2450
2410 FF -
2420 S - PEEK (LD * FF) -151: IF S • 3
THEN RETURN
2430 XDRAH S AT Xt,Yt:Xt - Xt * 1:FF =
FF * 1: IF Xt > 277 THEN RETURN
2440 GOTO 2420
2450 R - C: GOSUB 2110: GOTO 2320
2460 REM »* TRAITEMENT D'ERREUR "
2470 CALL 931
2480 POP
2490 XDRAH 34 AT 10,10
2500 ER - PEEK (222)
2510 IF ER < > S3 AND ER < > 133 GOTO
2540
2520 XDRAM 34 AT 10,10
2530 T - T4: GOTO 1640
2540 IF ER - 6 THEN PRINT : PRINT "PAS
D' IMAGE DE CE NOM (RETURN) ": GET CAR
s
2550 IF ER - 16 THEN POKE 49233,0: VTA
B VM * 1: CALL - 958: PRINT "ERREUR
DE SYNTAXE": PRINT "VERIFIER L'ECRITU
RE DE LA FONCTION": PRINT "RETURN";:
GET CARS
2560 GOTO 1240
2570 DATA FONCTION CARTES IENNE, FONCTIO
N POLA IRE, FONCTION PARAMETRIQUE
Programme
SCHEMATEUR
5 HIMEM: 36863
10 REM •• SCHEMATEUR "
20 REM '• M.CAUET - NOV 86 "
30 IF PEEK (103) * 256 ' PEEK (104) -
245 77 GOTO 2240
40 REM '• IMPLANTATION DU PROGRAMME AU
-DESSUS DE HGR2 "
50 POKE 103,1: POKE 104,96: POKE 24576,
60 PRINT CHRS (4) "RUN SCHEMATEUR"
70 REM •• COORDONNEES DU POINT ••
80 IF ME AND R - 9 THEN MN = 1 - MN
90 IF MN - GOTO 110
100 Xt - PDL (0) / 255 " 279: Yt = PDL
(1) / 255 • 191: RETURN
110 VX - 12:VY - 12
120 IF PEEK (49250) > 127 THEN VX - 1:
VY - 1
130 IF PEEK (49249) > 121 THEN VX • 10
:VY - 48
140 IF R - 21 THEN Xt - Xt ' VX: IF Xt
> 219 THEN Xt - 219
ISO IF R - 8 THEN Xt - Xt - VX: IF Xt <
THEN Xt =
160 IF R = 10 THEN Yt - Yt I VY: IF Yt
> 1 91 THEN Yt • 191
110 IF R - 11 THEN Yt - Yt - VY: IF Yt
< THEN Yt -
1 80 RETURN
190 REM •• ANALYSE DE LA COMMANDE "
200 IF DP AND NOT DH THEN Xll - XI: rl«
- Yt
210 DH -
220 IF PEEK (49152) > 121 THEN R = PE
EK (491S2) - 128: POKE 49168,0: IF MN
OR NOT MN AND (R > 31 OR R = 13 OR
R = 11) GOTO 250
230 GOSUB 80: IF NOT PT THEN XDRAH CU
AT XOt.YOt
240 XOt - Xt-.YOt - Yt: XDRAH CU AT XOt.Y
0t:PT - 0:R - 0: GOTO 220
250 FOR I - I TO ZC: IF R - R(I) THEN
ON 1 GOSUB 290,310, 1030, 350, 400, 420, 4
40, 4 90, 440, 550,570, 690, 950,21 60, 1010,
1210,1 250, 1580,1 580, 1580,1 580, 1 920, 1 9
20, 1090, 1130, 980,810, 1150,510: GOTO 2
00
260 NEXT : IF R > 96 AND R < 123 THEN
POKE 49235, 0: HOME : VTAB 22: PRINT "
PASSEZ EN MAJUSCULES S.V.P. ET RETURN
.": GET CARS: POKE 49234, 0:R = R - 32
: GOTO 250
210 GOTO 200
280 REM " "
290 POP : RETURN
300 REM •' DEL "
310 POKE 49235,0: HOME 1 VTAB 23: PRINT
"PERTE DU DESSIN (O/N)?:":: GET CARS
: IF CARS < > "O" AND CARS < > "o"
GOTO 330
320 HGR :PT ' 1 :B = 0:CL - 3: HCOLOR- C
L: POKE AA < 8.B
330 POKE 4 9234,0: RETURN
340 REM '• L •'
350 POKE 49235,0: HOME : VTAB 21: PRINT
"LIMITS ET FUSION PAR POINTS "; : IF
B - THEN PRINT "ALLUMES . ": GOTO 31
360 PRINT "ETEINTS. "
370 PRINT "TAPEZ C POUR CHANGER": GET C
ARS : IF CARS - "C" THEN B = 1 - B: PO
KE AA * 8,B
380 POKE 49234, 0: RETURN
390 REM •' Z ••
400 GOSUB 420: DP - 0: RETURN
410 REM •• X ••
420 HPLOT X0t,Y0t:Xlt - XOt: Yl t - Y0t:D
P = 1 :PT - 1 : RETURN
430 REM •• H-V ••
440 IF R - 86 GOTO 4 60
450 HPLOT Xt.Ylt TO Xlt,Ylt:Xlt - Xt: G
OTO 470
460 HPLOT Xlt,Yt TO XI t, Yl t:Ylt • Yt
470 DH - I: RETURN
480 REM •• ESP ACE ••
490 HPLOT X%,Y* TO Xlt,Ylt:PT - 1: RETU
RN
500 REM — M ••
51 XDRAM CU AT Xt, Yt
520 CALL AG
530 XDRAH CU AT Xt, Yt: RETURN
540 REM •• R »»
550 HPLOT Xt,Yt TO Xll, yl TO Xlt.Ylt TO
Xt.Ylt TO Xt.Yt :PT - 1: RETURN
560 REM •" F "
570 PT - 1: POKE 4 9235, 0: HOME : VTAB 22
: PRINT " G- GOMME R- REM
PLIT": PRINT " D- DECOUPE E
- ENCADRE" : PRINT " M- MOBIL
E"; : VTAB 21: HTAB 1: PRINT "FENETRE:
CHOIX:":: GET CARS
580 POKE 49234, 0: IF CARS - CHRS (13)
THEN RETURN
590 ST - - CL f 3 < 8 - (CL > 3) : IF CA
RS - "G" OR CARS - "D" OR CARS - "M"
THEN HCOLOR- ST
600 IF CARS - "G" OR CARS - "R" THEN G
OSUB 670: HCOLOR- CL: RETURN
610 IF CARS - "D" OR CARS - "E" THEN G
OSUB 640: HCOLOR- CL: RETURN
620 IF CARS - "M" THEN POKE 49235,0: H
OME : VTAB 23: PRINT "UN INSTANT S.V.
P.": CALL AP: GOSUB 640: CALL AE: GOS
UB 610: HCOLOR- CL: POKE 49234, 0: CAL
L AV: RETURN
630 GOTO 510
640 IF XI t > Xt THEN HH - Xlt-.Xlt - Xt:
Xt - MM
650 IF Ylt > Yt THEN HH - Ylt: Ylt - Yt:
Yt ' HH
660 FOR I • TO Xll: HPLOT 1,0 TO 1,19
1: NEXT : FOR I - XI I TO Xt: HPLOT I,
TO l,Ylt: HPLOT I,Yt TO 1,191: NEXT
: FOR I - XI TO 219: HPLOT 1,0 TO I,
1 91 : NEXT : RETURN
670 FOR I - Yt TO Ylt STEP 2 • (Ylt > Y
t) - 1 : HPLOT Xt, I TO XI t, I: NEXT :PT
- 1 : RETURN
680 REM •• K "
690 CC - 78 ' (CL - 0) * 66 • (CL - 3) *
71 • (CL - 1) : CLS - CHRS (CC) : IF C
C - THEN CLS - STRS (CL)
700 POKE 49235,0: HOME : VTAB 21: PRINT
"COULEUR (067, ou B blanc,N noir,G gr
is): "CLS;: CALL - 1008: GET CLS
710 CB - (CLS - "N") * 2 • (CLS - "G") *
4 ' (CLS = "B") - 1: IF CB - - 1 AN
D CLS > "/" AND CLS < "8" THEN CB -
VAL (CLS)
720 IF CB - - 1 GOTO 740
130 CL - CB
140 HCOLOR- CL: POKE 49234,0: RETURN
750 REM '• P ••
760 INVERSE : PRINT DI; : FOR I - 1 TO
LEN ( STRS (DI)): CALL - 1008: NEXT
: GET R1S: IF R1S - CHRS (17) THEN C
H - 17: GOTO 870
14
Pom's n°31
770 IF R1S < "0" OR Rl $ > "9" THEN DF - Dl: NORMAL : PRINT
••: RETURN
780 PRINT R1S; :D1 - VAL (R1S): GETR2S: IF R2S - CHRS (1
7) THEN CH = 17: GOTO 8 70
790 IF R2S < "0" OR R2S > "9" THEN PRINT " ":DF - Dl : NOR
MAL : RETURN
800
810
815
820
830
840
850
860
870
PRINT R2S:DF - Dl ' 10 t VAL (R2$): NORMAL : RETURN
POKE 19235,0: HOME : VTAB 21: PRINT "MODE: C V H P Q G
D L (AIDE: 'Ctrl Q')":I - MD
HTAB 1 : VTAB 23: PRINT "FLECHES -> CHOISIR RETURN ->
VALIDER"
IF I • 8 THEN 1-0
IF I - - 1 THEN 1=7
VTAB 21: HTAB 7*2*1: GET CAR$:CH - ASC (CARS)
IF CH - 21 OR CH - 10 THEN 1-1*1: GOTO 820
IF CH - 8 OR CH - 11 THEN I - I - 1 : GOTO 830
IF CH - 17 THEN TEXT : HOME : NORMAL : PRINT INS (24):
PRINT : FOR I - 25 TO 32: PRINT INS (I): NEXT : PRINT :
PRINT INS (33) : PRINT : PRINT INS (34): GET CARS: POKE 492
32,0: GOTO 810
875 IF CH < > 13 GOTO 840
880 MD - 1: POKE AA * 1 , MD
890 IF I - GOTO 930
900 HTAB 1: VTAB 22: CALL - 958: PRINT "PAS: "; :DI = PA: G
OSUB 760: PA ■= DF: IF PA < - GOTO 900
91 POKE AA I 2, PA
920 PRINT "EPAISSEUR: :DI - EP: GOSUB 760:EP - DF: POKE AA, EP
- 1
930 POKE 49234, 0: RETURN
940 REM •• O ••
950 IF MA * NI - THEN RETURN
960 CALL AO: RETURN
970 REM ** B •*
S80 HOME : IF MA • THEN XDRAW CU AT XI, Yt: CALL A£:PT -J. fi
ETURN
990 IF NI > 4 THEN POKE 49235,0: HOME : VTAB 21: PRINT "SATURA
TION-: GET CARS: GOTO 1010
1000 XDRAM CU AT Xt,Yt:NI - NI * Jl POKE AA < 3,NI: POKE AA * 1
5,NI * 32: CALL AB:PT - I.-fl - 0:CL - 3: HCOLOR= CL: POKE AA I
8,B: HGR
1010 POKE 49234,0: RETURN
1020 REM " N ••
1030 IF MA - THEN RETURN
1040 NU - PEEK (AA I 16): XDRAW CU AT Xt.Yt: POKE AA * 15, NU •
32: CALL AB:PT - 1:B - 0:CL - 3: HCOLOR- CL: POKE AA > 8,B: C
ALL AE
1050 POKE 49234,0: RETURN
1060 REM •• W "
1070 XDRAM CU AT Xt.Yt: CALL AF:PT - 1: RETURN
1080 REM •• U "
1090 POKE 49235,0: HOME : VTAB 23: PRINT "SUPERPOSITION CONFIRM
EE? (O/N)";: GET CARS: IF CARS < > "0" AND CARS < > "o" GOT
O 1110
1100 XDRAW CU AT Xt.Yt: CALL AU
1110 POKE 49234, 0:PT - J: RETURN
1120 REM '• I »»
1130 CALL AI:CL - - CL * 3 I 8 » (CL > 3) :B - 1 - B: HCOLOR- C
L: POKE AA I 8,B: RETURN
1140 REM J »»
1 1 50 IF MA - THEN RETURN
1160 POKE 4 9235,0: HOME : VTAB 23: PRINT "NOMBRE D ' IMAGES EN BA
NQUE: -Nil: CALL - 1008: GET Nl$: IF N1S < "0" OR NIS > "S"
GOTO 1190
1170 PRINT NIS:N1 - VAL (NIS)
1180 POKE AA * 3,NI
1190 POKE 49234, 0: RETURN
1200 REM •• S "
1210 XH - INT (Xt / 256) :XB - Xt - XH • 256
1220 POKE AA * 4,XB: POKE AA ' 12, XB: POKE AA * 5,XH: POKE AA *
13, XH: POKE AA * 6,Yt: POKE AA * 7,Yt: POKE AA * 9,0
1230 PT = J: XDRAW CU AT Xt,Yt: CALL AS: RETURN
1240 REM •• T ••
1250 PT - 1:CR - CT:S - CT: XDRAW CU AT Xt.Yi: XDRAW CT AT X*, Yt
1260 C • PEEK (49152) - 128: IF C < GOTO 1260
1270 POKE 49168, 0:S = C - 29: IF C - 27 THEN IT ' 1 - IT: XDRAW
CT AT Xt, Yt:CT = 34 • (TT ' 1) t CR • (TT = 0) : XDRAW CT AT
Xt, Yt: GOTO 1260
1280 IF C - 17 THEN TEXT : HOME : FOR 1-41 TO 51 : PRINT INS (
I): NEXT : GET CARS: POKE 49232,0: GOTO 1260
1284 IF ME AND C - 9 THEN MN - 1 - MN
1290 IF C < > 32 OR TT - GOTO 1310
1292 IF MN - GOTO 1300
1293 DRAW CT AT Xt.Yt: GOSUB 100: XDRAW CT AT Xt, Yt
1294 IF PEEK (49152) > 127 GOTO 1260
1296 XXt - Xt:YYt = Yt: GOSUB 100: IF Xt = XXt AND Yt - YYt GOTO
1294
1297 XDRAW CT AT XXt, YYt: XDRAW CT AT XI, Yt: GOTO 1294
1300 KK - 1: GOTO 1260
1310 IF C < 32 OR C - 127 GOTO 1430
1320 IF PEEK (49249) > 127 AND C > 47 AND C < 91 THEN S - S t
80
1330 XDRAW CT AT Xt, Yt: DRAW S AT Xt, Yt
1340 IF TT = THEN CT - CR : KK - 0: GOTO 1370
1350 CT - S: IF MN GOTO 1294
1360 GOTO 1260
1370 Xt - Xt i 7
1380 IF Xt > 277 THEN Yt - Yt
Xt - Xt - 7
1390 IF Xt < 2 THEN Yt • Yt - 8:Xt
Xt - Xt * 7
1400 IF Yt < 4 THEN Yt - 186
1410 IF Yt > 186 THEN Yt - 4
1420 XDRAW CT AT Xt.Yt: GOTO 1260
:Xt - Xt - 273: IF Xt > 8 THEN
Xt • 273: IF Xt < 271 THEN
0: DRAW CT AT Xt.Yt: GOTO 1450
CR-.TT - 0:SC - 1 : SCAL
26 AND SC > I) THEN SC - SC
■0i (RO < 56) ' (RO * 8):
1510
1520
1530
1540
1550
1560
1570
1 : VY -
70-.VY
48
1430 IF KK - 1 THEN KK
1440 XDRAW CT AT Xt, Yt
1450 IF C • 13 THEN RO - 0: ROT- RO:CT
E- SC:KK • 0: RETURN
14 60 IF (C = 1 AND SC < 51) OR (C -
' (C - 1) - (C - 26): SCALE- SC
1470 IF C - 23 THEN RO - (RO - 56)
ROT- RO
1480 IF C - 127 THEN DRAW CT AT Xt.Yt: XDRAW CT AT Xl,Yt:C - 8
1485 IF TT - 1 AND MN - 1 THEN XDRAW CT AT Xt.Yt: GOTO 1294
1490 VX - 7:VY - 8
1500 IF PEEK (49250) > 127 THEN VX
IF PEEK (4 9249) > 127 THEN VX
IF C = 21 THEN Xt - Xt • VX
IF C - 8 THEN Xt - Xt - VX
IF C - 10 THEN Yt - Yt t VY
IF C - 11 THEN Yt - Yt - VY
GOTO 1380
REM " C.D.A.E "
1580 PT • 1:RX - XOt - Xlt.RY - Ylt - Y0t:RA - INT ( SQR (RX '
2 * RY " 2) + .5)
1590 IF RA - THEN RETURN
1600 XDRAW CU AT XOt, YOt
1610 IF fi - 65 OR R - 69 GOTO 1750
1620 XH - INT (Xlt / 2S6):XB - Xlt - XH • 256: POKE AA * 4,XB:
POKE AA * 5,XH: POKE AA I 6, Ylt
1630 IF RA > 255 THEN RETURN
1640 IF R - 68 GOTO 1660
1650 POKE AA l 9,RA: CALL AC: RETURN
1660 RM - RA: FOR RA - 1 TO RM: GOSUB 1 650: IF PEEK (49152) > 1
27 THEN POKE 491 68, 0: RETURN
1662 NEXT
1670 IF RA < 64 GOTO 1730
1680 FOR I - - RA TO -64: GOSUB 1710: NEXT
1690 FOR I - 64 TO RA: GOSUB 1710: NEXT
1700 RA - 64: GOTO 1730
1710 IF Ylt * I > - 1 AND Ylt * I < 192 AND Xlt
192 THEN HPLOT Xlt - 1, Ylt * I TO Xlt * I, Ylt *
1 720 RETURN
1730 FOR I - - RA TO RA: IF Ylt * I > - 1 AND Ylt
HEN HPLOT Xlt, Ylt * I
1 740 NEXT : RETURN
1750 D - .02
1760 IF R - 65 THEN X - X0t:Y • YOt: EX - 1:EY - 1 1 GOTO 1810
1770 IF RX - OR RY • THEN RETURN
1780 IF ABS (RX) > - ABS (RY) THEN X = XI t * RX:Y - Ylt: GOT
O 1800
1790 X - Xlt:Y - Ylt - RY
1800 EX - ABS (RX / RY) :EY - ABS (RY / RX)
1810 HPLOT X, Y
1820 Y - Y * EY ' D ' (X - Xlt) :X • X - EX • D • (Y - Ylt)
1830 IF X < OR X > 279 OR Y < OR Y > 191 GOTO 1820
1840 HPLOT TO X,Y
1850 IF PEEK (49152) > 127 THEN TH • PEEK (49152) - 128: POKE
49168,0: GOTO 1870
1860 GOTO 1820
1870 IF TH - 13 GOTO 1900
1880 GET CARS: IF CARS - CHRS (13) GOTO 1900
1890 GOTO 1820
I AND XI t
I
* I
192 T
Pom's n°31
15
1900 Xt - X:Yt ' Y: RETURN
1910 REM •• G, Y ••
1920 XOt = XI: rot - Yt: DRAM CG AT XOt, Y
Ot
1930 IF MN THEN MR = 1 : MN =
1940 GOTO 1910
1950 IF PEEK (49152) > 127 THEN R = P
EEK (49152) - 128: POKE 49168,0
1960 GOSUB SO: XDRAH CG AT X0t,Y0t:X0t
= Xt:YOt = Yl: ORAM CG AT XOt, YOt
1970 IF B - 89 THEN XDRAH CG AT X0t,Y0
t: ROT- 16: DRAM CG AT XOt, YOt
1 980 IF R = 71 THEN XDRAM CG AT XOt, YO
t: ROT= 0: DRAM CG AT XOt, YOt
1990 IF R - 13 THEN XDRAM CG AT XOt,Y0
I: DRAM CU AT XOt, YOt: ROT- 0:MN - MR
:MR = 0: RETURN
2000 R - 0: GOTO 1950
1010 REM •• CHARGER, ENREGI STRER, CATALO
G ••
2020 IF NOT PL THEN RETURN
2030 HTAB 1: VTAB 14: PRINT "LECTEUR N°
:".•! INVERSE : PRINT NL; : NORMAL : CA
LL - 1008: GET CARS: IF CARS - CHRS
(13) THEN RETURN
2040 IF CARS < > "1 " AND CARS < > "2"
GOTO 2020
2050 NL = VAL (CARS) : INVERSE : PRINT N
L: NORMAL : RETURN
2060 GOSUB 2020
2070 PRINT : PRINT DS "CATALOG, D"NL: PRI
NT : INPUT "NOM DE L ' IMAGE : "; IMS : IF
IMS ' "" GOTO 2110
2080 PG - ASC ( LEFTS (IMS, 1 ) ) : IF PG <
65 OR PG > 90 THEN VTAB 9: GOTO 207
2090 IF 1 - 2 THEN XDRAM CU AT Xt,Yi:
PRINT DS"BSAVE"IMS",AS2000, LS2000,D";
NL: GOTO 2110
2100 PRINT DS "BRUN CHARGE .OBJ, AS9000"
2105 t IMS, 8192
21 1 RETURN
2120 HOME : GOSUB 2020: HOME : PRINT
2130 PRINT DS"CATALOG,D"NL: INVERSE : P
RINT "FIN": NORMAL
2140 GET CARS: HOME : RETURN
2150 REM " INFORMATIONS ••
2160 TEXT : HOME : FOR I - 1 TO 22
21 70 IF (I - 4 OR I - 5) AND ME - GOT
O 2200
2180 IF 1 - 21 AND MA = THEN I - 25::
PRINT "B -> ECHANGE BIS": GOTO 2200
2190 PRINT 1NS(1)
2200 NEXT
2210 PRINT INS (23);
2220 GET CARS: POKE 49232,0: POKE 49239
,0: POKE 49236,0: RETURN
2230 REM " DEBUT ••
2240 HOME : VTAB 8: HTAB 12: INVERSE :
PRINT " SCHEMATEUR ": NORMAL : VTAB 1
4: PRINT "TOUCHE 'Q' POUR ACCEDER AU
MENU": VTAB 19: PRINT "TOUCHE 'Ctrl
Q' POUR AIDE-MEMOIRE"
2250 ZC = 29: IN - 51 :N - 6
2260 ME = 0: IF PEEK (207) THEN ME - 1
2270 PL = 0: IF PEEK (214) THEN PL = 1
2280 MA - 0: IF PEEK (215) THEN MA - 1
' 2290 AA - 2817-.AL = 6000:AE = AA * 17
2300 DIM R (ZC) , INS (IN)
2310 CU = liCG = 2-.CT - 98-.KK - 0:SC - 1
:RO = 0:CR = LIT -
2320 DE - 5:CL - 3:MN - 0:MR = 0:Xt = 13
9:Yt - 95:X0t - Xt:YOt - Yt:PT • 0:DP
= 0:ST = 1:NL - 1 :B - 0:DH - 0:N1 =
0:VX - 12-.VY = 12:MD = 0:PA = 3:EP =
1
2330 C = 0:S = 0:PG = 0:RX = 0:RY = 0:RA
• 0:D - O-.EX ' 1:EY - 1:TH - 0:R -
:Xlt - 0:Ylt - 0:XH - O-.XB - 0:CH -
:X ■ 0:Y = 0:NU = 0:CE =
2340 IMS = "" :CARS = "":CLS = "".DS = C
HRS (4)
2350 FOR I = 1 TO IN: READ INS (I): NEXT
2360 FOR I - 1 TO ZC: READ R(I): NEXT
23 70 IF PEEK (235) GOTO 2420
2380 POKE 233, INT (AL / 256) : POKE 232
,AL - 256 " ( INT (AL / 256))
2390 PRINT DS "BRUN CHARGE. OBJ, AS9000"
2400 i "CARAC.SH",AL: i "SCHEM.C", AA
241 POKE 235, 1
2420 AF • AE t 3:AB - AE t 6:AO ■ AE + 9
:AI - AE * 12:AU - AE * 1 5 : AC - AE *
18: AG • AE • 21:AV = AE * 24: AP - AE
* 27.-AW - AE * 30:AS = AE * 33
2430 POKE AA > 16,1: POKE AA t 3, SI: PO
KE AA • 8,B
2440 POKE AA t 1,MD: POKE AA t 2, PA: PO
KE AA, EP - 1
2450 ONERR GOTO 2710
24 60 POKE 49232,2: POKE 4 9239, 0: POKE 4
9236, 0: POKE 4 9234,0
2470 HCOLOR* CL: ROT= RO: SCALE- 1
2480 DRAM CU AT XOt, YOt
2490 GOSUB 200: TEXT : HOME
2500 REM •• MENU "
2510 FOR 1=1 TO N: GOSUB 2670: NEXT
2520 I - 1: INVERSE : GOSUB 2670: NORMAL
2530 VTAB 22: PRINT "FLECHES -> CHOI SIR
RETURN -> VALIDER"
2540 VTAB 23: GET CARS:CH • ASC (CARS)
2550 IF CH = 10 OR CH - 8 THEN GOSUB 2
670:1 =1*1: INVERSE : GOSUB 2670:
NORMAL
2560 IF CH • 11 OR CH - 21 THEN GOSUB
2670:1 - I - 1: INVERSE : GOSUB 2670:
NORMAL
2570 IF CH = 13 THEN HOME : GOTO 2590
2580 GOTO 2540
2590 ON I GOTO 2600,2610,2620,2660,2630
,2640
2600 POKE 49232,0: POKE 4 9239, 0: POKE 4
9236,0: GOTO 24 90
2610 GOSUB 2060: GOTO 2600
2620 GOSUB 2060-.PT - 1: GOTO 2600
2630 GOSUB 2120: GOTO 2510
2640 XDRAM 1 AT Xt,Yt: TEXT : HOME : PR
INT
2650 PRINT DS"RUN MENU, Dl " : REM "» FI
N ••
2660 PRINT : PRINT DS'RUN GRAVURE, Dl "
2670 IF I - N * 1 THEN I = 1
2680 IF I = THEN I = N
2690 VTAB 1 • DE: HTAB 4: PRINT INS(34
' I) : RETURN
2700 REM •• ERREUR ••
2710 ER = PEEK (222) : IF ER - 6 THEN T
EXT : HOME : VTAB 10: PRINT "FI CHI ER
ABSENT": GET CARS
2720 HOME : GOTO 2510
2730 DATA LES FLECHES DEPLACENT LE POI
NT, POMME BLANCHE -> RAPIDE, PCMME NOIR
E ~>LENT, Tab -> KANETTES, Tab -> FLEC
HES.Del -> EFFACE
2140 DATA K -> COULEUR I -> INVE
RSION, X -> POINT DE DEPART, Z -> DEPAR
T PERMANENT, BARRE ESPACE -> RELIE DEU
X POINTS, H -> RELIE HORI ZONTALEMENT, V
-> RELIE VER TICA LEMEN T
2750 DATA R -> RECTANGLE, C -> CERC
LE D -> DISQUE.F -> FENETRES
M -> MOUVEMENT, A -> ARC DE CERCLE
E -> ELLIPSE, G -> GOMME HORI ZONTA
LE Y ->VERT1CALE
2760 DATA S -> REMPLIT UNE SURFACE,
P -> MODE REMPLISSAGE L -> LIMITES,
M -> ECHANGE DESSINS U -> UNION, B
-> METTRE EN BANQUE O -> OBSERVER, N
-> REMPLACER EN BANQUE J -> NOMBRES
,T -> TEXTE Ctri -> INFORMATIO
NS
2770 DATA MODE DE REMPLISSAGE DES SUR
FACES, C -> REMPLISSAGE COMPLET, V -> L
IGNES VERTICALES, H -> LIGNES HORIZONT
ALES.P -> POINTILLES,Q -> QUADR1 LLAGE
,D -> HACHURES PENCHEES A DROTE.G ->
HACHURES PENCHEES A GAUCHE, L -> LOSAN
GES
2780 DATA L'OPTION 'PAS' DONNE L'ECART
ENTRE LES MOTIFS, L' OPTION 'EPAISSEU
R ' DONNE L'EPAISSEUR DES TRAITS
2790 DATA RETOUR A L' IMAGE, ENREGISTRER
L ' IMAGE, CHARGER UNE IMAGE, 1MPRIMER, C
ATALOGUE, QUITTER LE PROGRAMME
2800 DATA VOUS ETES EN MODE TEXTE, T
OUT LE CLAVIER AZERTY EST OPERATIONNE
L, LES FLECHES DEPLACENT LE CURSEUR,De
1 -> EFFACE, Ctrl A -> AGRANDIT, Ctrl Z
-> RAPETISSE.Ctrl W -> FAIT TOURNER
2810 DATA -,Eac -> AFF1CHE CARACTERE
OU SHAPE, DEPLA CEMENT COMME EN MODE GR
APHIQUE, BARRE ESPACE -> MARQUE
2820 DATA 81, 127, 78, 76, 90,88, 86, 32, 72
, 82, 70, 75, 79, 1 7, 87, 83, 84, 67, 68, 65, 69,
71, 89, 85, 73, 66, 80, 74, 77
Programme GRA VURE
5 HIMEM: 36863
10 REM •'• GRAVURE •••
20 DS = CHRS (4) :DM = 1
30 ONERR GOTO 890
40 IF PEEK (103) * 256 ' PEEK (104) -
24S77 GOTO 70
50 POKE 103,1: POKE 104,96: POKE 24576,
60 PRINT DS"RUN GRAVURE"
70 HOME : VTAB 10: HTAB 6: INVERSE : PR
INT " PROGRAMME GRAVURE ": NORMAL :
VTAB IS: HTAB 6: PRINT "SORTIE SUR IM
PRIMANTE " : HTAB 11 : PRINT " IMAGEMR I TE
R"
80 DIM C(8),D(14)
90 FOR I = 1 TO 8: READ CII): NEXT : FO
R I = 1 TO 14: READ D(I): NEXT
100 FOR I - TO 3: READ FRS(I): NEXT :
FOR I - 1 TO 3: READ INS (I): NEXT
110 IH = 48-.1B = 48-.MB = 48-.MH - 48
120 NL = 1:PL = 0: IF PEEK (214) THEN P
L = 1
130 AG = 2049:AC = 206: REM ' 'ADRESSES
DU PROGRAMME COUT ET DU CARACTERE EN
VOYE"
140 AP = AG * 6: REM 'ADRESSE DU PROGR
AMME GRAV. C"
150 IF PEEK (237) GOTO 180
160 PRINT : PRINT DS "BLOAD GRAV . C, A "AG
170 POKE 237,1
180 HOME : VTAB 9: PRINT "RETURN POUR I
MAGE EN COURS": PRINT "AUTRE TOUCHE P
OUR NOUVELLE IMAGE";: GET CARS: IF CA
RS < > CHRS (13) GOTO 210
200 POKE 49232, 0: POKE 49234,0: POKE 49
236,0: POKE 49239,0: GOTO 270
210 IF NOT PL GOTO 250
220 HTAB 1: VTAB 13: PRINT "LECTEUR N°:
"1 : INVERSE : PRINT NL; : NORMAL : CAL
L - 1008: GET CARS: PRINT CARS: IF C
ARS = CHRS (13) GOTO 250
230 IF CARS < "1" OR CARS > "2" GOTO 22
240 NL - VAL (CARS)
250 PRINT : PRINT DS "CATALOG, D"NL: PRIN
T : INPUT "NOM DE L ' IMAGE: "; IMS ■' IF I
MS ' "" GOTO 180
260 HGR : POKE 49234,0: PRINT : PRINT D
S "BRUN CHARGE. OBJ, AS9000": 4 IMS, 8192
270 GET CARS: TEXT
280 HOME : PRINT "L ' IMPRIMANTE EST-ELLE
PRETE (O/N) ?: "; : INVERSE : PRINT "O";
: NORMAL : CALL - 1008: GET CARS: PR
INT CARS: IF CARS - "N" OR CARS = "n"
GOTO 7(0
290 VTAB 3: PRINT "NOUVELLES DISPOSITIO
NS(0/N)?:"; : INVERSE : PRINT "O" ; : NO
RMAL : CALL - 1008: GET CARS: PRINT
CARS: IF CARS < > "N" AND CARS < >
"n" GOTO 310
300 GOTO 580
310 IC = 0: HOME : VTAB 3: PRINT "INVERS
ER NORMALEMENT LA COULEUR (O/N) ?: "; : I
NVERSE : PRINT "O"; : NORMAL : CALL -
1008: GET CARS: PRINT CARS: IF CARS
• "0" OR CARS = "o" OR CARS - CHRS I
13) THEN IC = 1
320 HOME : VTAB 2: PRINT "L' image peut
s'imprimer en deux hauteursHauteur si
mple(6.7cm) ou double (1 3 . 4cm) "
330 HI = 1: VTAB 5: PRINT "IMAGE DE HAUT
EUR SIMPLE(0/N) ?: "; : INVERSE : PRINT
"O"; : NORMAL : CALL - 1008: GET CARS
: PRINT CARS: IF CARS • "0" OR CARS •
"o" OR CARS = CHRS (13) THEN HI =
340 DM = IC ■> 2 ' HI
350 IF DM > 1 AND DID • 4.4 THEN FOR
1 = 1 TO 8:D(1) - 2 • D(I): NEXT
3(0 IF DM < 2 AND DID - 8.8 THEN FOR
I - 1 TO 8:D(I) = D(l) / 2: NEXT
370 HOME : VTAB 3: PRINT FRS (DM) : VTAB
5: PRINT "DEFORMATION HORI ZONTALE (O/N
) ?: "; : INVERSE : PRINT "N"; : NORMAL :
CALL - 1008: GET CARS: PRINT CARS
380 IF CARS = "N" OR CARS - "n" OR CARS
= CHRS (1 3) THEN DO = 14 :D = D(8) :D
I = 2: GOTO 480
390 II - 14: IF DM > 1 THEN II - 8
400 VTAB 7: PRINT "LARGEUR DE L 'IMAGE: "
: FOR I = 1 TO II: PRINT CHRS (64 <
I)"- ("DID" cm)": NEXT : VTAB IS: HT
AB 12: INVERSE : PRINT "NORMAL": NORM
16
Pom's n°31
AL
410 IF DM > 1 GOTO 460
420 VTAB 23: PRINT "CHOIXIA a K):'fl GE
T CARS:DI = ASC (CARS) - 64: IF 01 <
1 OR DI > 14 GOTO 420
430 DO = 15: IF DI > 6 THEN DO = 14
440 D = D(DI) : IF DI > 6 THEN DI = DI -
6
450 GOTO 480
460 VTAB 17: PRINT "CHOIXIA a H) : "; : GE
T CARS:DI = ASC (CARS) - 64: IF DI <
1 OR DI > 6 GOTO 460
470 DO - 15:D = D(DI)
4S0 HTAB 1: VTAB 5: CALL - 95S:CI - CI
DI): PRINT : PRINT "LARGEUR DE L'IMAG
E: "D" cm":H = 6.7 • IDM < 2) » 13.4
• IDM > 1): PRINT "HAUTEUR DE L ' IMAGE
: "H" cm"
490 VTAB 10: HTAB 1: PRINT "POSITIONNEM
ENT DV COIN SUPER1EUR GAUCHE DE L'ECR
All CONTENANT L ' IMAGE: "
500 VTAB 13: HTAB 1: PRINT "MARGE HAUTE
IDE A 24 cm) : : INVERSE : PRINT "
0"; : NORMAL : CALL - 100S: INPUT "":
YS: IF YS ■ "" THEN VTAB 13: HTAB 29
: PRINT "0":Y • 0: GOTO 520
510 Y = VAL IYS): IF Y < OR Y > 24 GO
TO 500
520 IL = 3.85 • Y:IH - INT IIL / 10):IB
- INT IIL - 10 • IH) * 48-.IH • IH *
48
530 VTAB 15: HTAB 1: PRINT "110.1 pour
raccordec une image simple)"
540 VTAB 14: HTAB 1: PRINT "MARGE GAUCH
E IDE 0.3 A 16.5cm) :"; : INVERSE : PRI
NT "0.3";: NORMAL : CALL - 1008: CAL
L - 1008: CALL - 1008: INPUT "";XS:
IF XS - "" THEN VTAB 14: HTAB 32: P
RINT "0.3":X - 0.3: GOTO 560
550 X = VAL IXS): IF X < 0.3 OR X > 16.
5 GOTO 540
560 MG = 3.6 • IX - 0.3) :MH - INT IMG /
10) :MB - INT IMG - 10 • MH) * 48:MH
= MH * 48
570 VTAB 18: PRINT "EST-CE EXACTIO/N)?:
";: INVERSE : PRINT "O"; : NORMAL : CA
LL - 1008: GET CARS: PRINT CARS: IF
CARS • "N" OR CARS • "n " GOTO 760
580 PRINT : PRINT DS"PRtl"
590 PRINT CHRS 127) ;"n"
600 POKE 6,1: POKE 7, DM
61 POKE AG * 15, CI
620 POKE AC, 27: CALL AG: POKE AC, 114: C
ALL AG
630 POKE AC, 27: CALL AG: POKE AC, 84: CA
LL AG: POKE AC, SO: CALL AG: POKE AC, 5
5: CALL AG: POKE AC, 31: CALL AG: POKE
AC, 49: CALL AG
640 POKE AC, 27: CALL AG: POKE AC, 102: C
ALL AG
650 IF IH ' 48 AND IB - 48 GOTO 680
660 POKE AC, 27: CALL AG: POKE AC, 84: CA
LL AG: POKE AC, IH: CALL AG: POKE AC, I
B: CALL AG
670 POKE AC, 31: CALL AG: POKE AC, 63: CA
LL AG
680 POKE AC, 27: CALL AG: POKE AC, 110: C
ALL AG
690 POKE AC, 27: CALL AG: POKE AC, 76: CA
LL AG: POKE AC, 48: CALL AG: POKE AC,M
H: CALL AG: POKE AC, MB: CALL AG
700 POKE AC, DO: CALL AG
710 POKE 49239, 0: POKE 49234,0: POKE 49
232,
720 POKE 6, 1 : POKE 7, DM
730 CALL AP
740 PRINT : PRINT DS"PR£.0"
750 POKE 49233,
760 HOME : FOR 1=1 TO 3: GOSUB 770: N
EXT
761 I - Is INVERSE : GOSUB 770: NORMAL
762 VTAB 22: PRINT "FLECHES -> CHOISIR
RETURN -> VALIDER"
763 VTAB 23: GET CARS:CH - ASC ICARS)
764 IF CH • 10 OR CH - 8 THEN GOSUB 77
0:1 - I i 1: INVERSE : GOSUB 770: NOR
MAL
765 IF CH • 11 OR CH = 21 THEN GOSUB 7
70:1 =1-1: INVERSE : GOSUB 770: NO
RMAL
766 IF CH ■ 13 THEN HOME : GOTO 775
767 GOTO 763
770 IF I = 4 OR I - THEN I - ABS II
- 3)
772 VTAB I * 8: HTAB 4: PRINT INS II): R
ETURN
775 ON I GOTO 790, 790, 780
780 PRINT : PRINT DS"RUN MENU, DI "
790 HOME : VTAB 10: PRINT "REVENIR AU N
IVEAU PRECEDENT 10/N) : ": : INVERSE : P
RINT "N"; : NORMAL : CALL - 1008: GET
RMS: PRINT RMS: IF RMS = "O" OR RMS
- -o" THEN GOSUB 820
800 IF I = 1 THEN HOME : GOTO 290
810 GOTO 210
820 PRINT : PRINT DS "PRC 1"
830 POKE AC, 27: CALL AG: POKE AC, 1 1 4 : C
ALL AG
840 POKE AC, 27: CALL AG: POKE AC, 84: CA
LL AG: POKE AC, 55: CALL AG: POKE AC, 5
4: CALL AG
850 POKE AC, 31 : CALL AG: POKE AC, 53: CA
LL AG
855 POKE AC, 27: CALL AG: POKE AC, 84: CA
LL AG: POKE AC, 48: CALL AG: POKE AC, 4
9: CALL AG: POKE AC, 31: CALL AG: POKE
AC, 49: CALL AG
860 POKE AC, 27: CALL AG: POKE AC, 1 02 : C
ALL AG
870 PRINT : PRINT DS"PRL0"
880 RETURN
890 ER = PEEK 1222)
900 IF ER = 6 THEN TEXT : HOME : VTAB
10: PRINT "PAS D' IMAGE DE CE NOM. ": P
RINT "TAPEZ UNE TOUCHE.": GET CARS: H
OME : GOTO 760
910 GOTO 760
920 DATA 80,112,81,113,101,69, 78, 110
930 DATA 4.4,5,5.3,5.8,6.6,7.5,8.8,10,
10. 6, 11 . 6, 13.2, 15, 17.6, 20
940 DATA HAUTEUR SIMPLE - PAS D'INVERS
ION, HAUTEUR SIMPLE - INVERSION NORMAL
E, HAUTEUR DOUBLE - PAS D ' INVERSION, HA
UTEUR DOUBLE - INVERSION NORMA LE
950 DATA IMPRESSION DE LA MEME IMAGE, A
UTRE IMAGE, QUITTER LE PROGRAMME
Programme MENU
10 REM " PROGRAMME MENU "•
20 POKE 207,1: POKE 214,1: POKE 215,1:
REM "MANETTES, LECTEURS, MEMOIRE AUXIL
IAIRE*
30 N = 3: REM •• NOMBRE DE PROGRAMMES
40 REM •' T1TRES DU MENU: ••
SO DATA PROGRAMME SCHEMATEUR, GRAPHES
DE FONCTIONS, IMPRESSION SUR IMAGEURI
TER
60 N = N * 3
70 DATA CONFIGURATION, CATALOGUE DE LA
DISQUETTE, QUITTER
80 REM •• NOMS DES PROGRAMMES: ••
90 DATA SCHEMATEUR, FONCTION , GRAVURE
100 REM " DISPOSITION DU MENU: »•
110 ND - J. -DE - 12:DS - CHRS 14)
120 DIM RSIN) ,FSIN)
130 FOR I • 1 TO N: READ RSII): NEXT
140 FOR 1 = 1 TO N - 3: READ FSII): NEX
T
150 HOME : VTAB 4: PRINT "M. CAUET" : PRI
NT "OCTOBRE 1 986"
ISO GOSUB 220
170 IF I = N THEN HOME : END
180 IF I - N - 1 THEN PRINT : PRINT DS
"CATALOG": PRINT : INVERSE : PRINT "R
ETURN": NORMAL : GET CARS: GOTO 150
190 IF I • N - 2 THEN GOTO 340
200 PRINT : PRINT DS"RUN"FS II)
210 REM AFF1CHAGE MENU ••
220 FOR I. = ND TO N: GOSUB 300: NEXT :I
= ND: INVERSE : GOSUB 300: NORMAL
230 VTAB 22: PRINT "FLECHES POUR CHOISI
R-RETURN POUR VALIDER"
240 VTAB 23: GET ME$;ME = ASC IMES)
250 IF ME - 10 OR ME • 21 THEN GOSUB 3
00:1 =1*1: INVERSE : GOSUB 300: NO
RMAL
260 IF ME • 11 OR ME - 8 THEN GOSUB 30
0:1=1-1: INVERSE : GOSUB 300 : NOR
MAL
270 IF ME - 13 THEN HOME : RETURN
280 IF ME > 48 AND ME < 49 * N THEN I -
MB - 48: HOME : RETURN
290 GOTO 240
300 IF I = N * 1 THEN I = ND
310 IF I - ND - 1 THEN I • N
320 VTAB 1 + DE - 1 : PRINT I ; RS 1 1 ) :
RETURN
330 REM •• CONFIGURATION ••
340 HOME : VTAB 10: PRINT "CONFIGURATIO
N ACTUELLE: "
350 VTAB 12: HTAB 1: PRINT "PAS DE MANE
TTES": IF PEEK 1207) THEN VTAB 12.
HTAB 1: CALL - 868: PRINT "MANETTES"
360 VTAB 13: HTAB 1: PRINT "1 LECTEUR " :
IF PEEK 1214) THEN VTAB 13: HTAB 1
: PRINT "2 LECTEURS"
370 VTAB 14: HTAB 1: PRINT "PAS DE MEMO
IRE AUXIL1A1RE": IF PEEK I21SI THEN
VTAB 14: HTAB 1: CALL - 8 68: PRINT
"MEMOIRE AUXILIAIRE"
380 VTAB 18: HTAB 1: PRINT "RETURN POUR
CONFI RMER . ": PRINT "C POUR M0DIF1E
R": GET CARS: IF CARS < > "C" AND CA
RS < > "c" GOTO 150
390 HOME : VTAB 10: PRINT "AVEZ-VOUS DE
S MANETTES? 10/N) : ": : GET MES: PRINT M
ES : ME = I IMES - "N") * IMES • "0") •
2) - 1 : IF ME = -I GOTO 390
400 VTAB 12: PRINT "AVEZ-VOUS DEUX LECT
EUPS? 10/N) : "; : GETPLS: PRINT PIS: Pi
= UPLS • "N") * IPLS • "0") • 2) - 1
: IF PL = - 1 GOTO 400
410 VTAB 14: PRINT "MEMOIRE AUXILIAIRE?
IO/N):";: GET MAS: PRINT MAS:MA = I IM
AS • "N") * IMAS = "0") -2) - J; IF
MA • - I GOTO 410
420 POKE 24613, ME ■ 48: POKE 24620, PL '
48: POKE 24627, MA > 48
430 PRINT CHRS 113); CHRS 14) "SAVE MEN
440 PRINT CHRS 113); CHRS 14) "RUN MENU
Y<X> = SIN<X)/X
et sa d£riv£e en
pointing
•■-0,5
Programme GRAPHISME
10 REM •• HELLO ••
20 HOME
30 HGR2
40 HGR
SO TEXT
60 REM •' NETTOIE MEV COMMUTEE "
70 PRINT CHRS 14) "BLOAD HEL.C"
80 CALL 768
90 REM '• POINTEURS PROG.MACHI NE : SCHE
M/CARAC - FONC - GRAV ••
100 FOR I = 235 TO 237: POKE 1,0: NEXT
110 REM •• PLACE LES PROGRAMMES AU-DES
SUS DE HGR2 ••
120 POKE 103,1: POKE 104, 96: POKE 24576
,0
130 PRINT CHRS 113); CHRS 14) "RUN MENU
140 END
Pom's n°31
Recapitulation
CARAC.SH
Apres avoir saisi ce code sous
moniteur, vous le sauvegarderez
par :
BSAVE CARAC.SH, A$4000,L$6C1
4000:8D 00 1C 01 IE 01 23 01
4008:25 01 2C 01 30 01 3C 01
4010:49 01 54 01 60 01 64 01
4018-.6C 01 74 01 81 01 89 01
4020 :8D 01 92 01 95 01 9C 01
4028 :AA 01 B2 01 BC 01 C7 01
4030:01 01 DD 01 E7 01 FO 01
4038-.FB 01 06 02 OA 02 OF 02
4040:18 02 20 02 29 02 33 02
4048:41 02 4D 02 59 02 64 02
4050:70 02 70 02 87 02 92 02
4058 :9E 02 A 7 02 AF 02 BC 02
4060 :C5 02 Dl 02 DD 02 E9 02
4068-.F3 02 FF 02 OC 03 17 03
4070:20 03 2B 03 36 03 42 03
4078 :4E 03 57 03 62 03 67 03
4080:72 03 83 03 88 03 8F 03
4088:95 03 AO 03 AB 03 B3 03
4090-.BE 03 C9 03 D2 03 DD 03
4098-.E7 03 EF 03 F8 03 04 04
40A0:0C 04 15 04 IE 04 28 04
40A8-.33 04 3E 04 46 04 50 04
40B0-.5A 04 63 04 6C 04 76 04
40B8-.82 04 8D 04 98 04 A5 04
40C0-.B0 04 BD 04 C2 04 DA 04
40C8-.E2 04 E8 04 Fl 04 F9 04
40D0-.00 05 OA 05 12 05 18 05
4008:20 05 29 05 35 05 44 05
40E0:4D 05 61 05 6C 05 7A 05
40E8-.86 05 93 05 A6 05 B5 05
40F0-.C2 05 CB 05 D9 05 E7 05
40F8-.F8 05 09 06 18 06 24 06
4100:20 06 39 06 44 06 4E 06
4108:56 06 62 06 6D 06 76 06
4110:80 06 88 06 92 06 9D 06
4118-.A8 06 B5 06 04 00 IB 2D
4120:20 04 00 03 00 40 43 33
4128:36 B6 04 00 CO 6C 26 00
4130:40 43 3F IE 36 6F IE F6
4138-.0D 2D 25 00 E7 OC 25 15
4140-.F5 AB 15 IF 15 3F 77 29
4148:00 OC OC DC 3B 2E 96 17
4150:40 2E 24 00 60 1C BF AE
4158:17 76 65 1C 0D 16 07 00
4160:08 24 05 00 92 1C 1C 24
4168 :0C OC 06 00 92 OC OC 24
4170-.1C 1C 06 00 3C 1C 4C 6E
4178: IE 16 3F 17 OD OD DE 07
4180:00 20 8D 3A 3F 77 31 05
4188:00 89 F6 04 00 3F 4C 11
4190:35 00 12 05 00 OC OC D6
4198-.DA IE 06 00 OC 25 1C 3F
41A0-.17 36 2E IE OE 2D OC 24
41A8-.07 00 24 BC 96 31 17 2D
41BO:04 00 65 E4 3F 1 7 95 BA
41B8:2E 2D 25 00 25 OC 3C 3F
41C0:B7 92 15 2D OC 24 00 3A
41C8-.27 OC OC OC 36 36 F5 3E
41D0-.00 38 27 2C 2D F5 AA 36
41D8-.1E 3F 1C 04 00 AD F6 3F
41E0-.1C 24 25 OC OC 35 00 OC
41E8-.0C 3C 3F 77 92 36 05 00
41F0-.E7 64 2D 15 BE 15 F6 3F
41F8-.1C 2C 00 E7 64 2D 15 36
4200:77 IE 17 3F 04 00 08 16
4208:06 00 08 16 BE 05 00 91
4210-.E2 1C 1C OC OC OC 06 00
4218:38 67 89 B5 3F 3F 04 00
4220:93 62 OC OC 1C 1C 1C 06
4228:00 OC OC 1C 3F 1 7 95 OA
4230:16 05 00 43 2B 2D 38 70
4238:12 36 3E 3F 1C 45 2B 25
4240:00 3A 37 6E 09 24 67 E4
4248-.1C IE IE 2E 00 3F 24 2C
4250:20 15 BE OE BE 3F 27 2C
4258:00 89 F2 3F 1C 24 24 OC
4260:20 15 06 00 09 36 IE 3F
4268:27 24 24 2C 20 15 3E 00
4270:39 B7 3A 24 24 24 20 2D
4278:96 92 3F 04 00 39 B7 1A
4280:24 24 24 2D 2D 06 00 11
4288:35 3E 3F 1C 24 24 OC 2D
4290:35 00 2B 2D 24 FC IB 36
4298:36 36 4D 21 24 00 52 3A
42A0-.67 24 24 3C OD 06 00 9B
42A8:72 2D OC 24 24 3C 00 73
42B0-.0E 15 OF 23 24 24 6C 09
42B8-.1E IE 06 00 89 12 3F 3F
42C0-.24 24 24 05 00 EO 1C 36
42C8-.36 36 4D 21 24 24 BC 06
4200:00 OE 56 24 24 24 OF 33
42D8-.2E IE 36 2E 00 92 E7 24
42E0:24 OC 2D 15 36 36 1 7 05
42E8-.00 65 3C 38 3F 36 2E IE
42F0-.36 05 00 AA 15 IF 3F 20
42F8-.24 64 2D 15 36 36 00 77
4300:15 15 DF 23 24 24 2C 2D
4308:15 BE 06 00 E7 64 2D 15
4310:97 15 F6 3F 1C 04 00 24
4318: IF 28 20 F5 92 33 2E 00
4320:92 E7 24 24 6C 09 36 36
4328-.BE 05 00 92 1C 1C 24 24
4330:40 31 36 BE 06 00 F6 IE
4338:24 24 24 4D 31 36 BE 35
4340:07 00 OC OC FC IB 76 16
4348:17 6E 09 E4 04 00 1C 1C
4350: 6C 09 F6 D6 36 05 00 OC
4358-.0C 3C 3F 77 92 17 2E 2D
4360:25 00 38 60 15 04 00 4B
4368:41 3B 3F IE AE 2D F5 IE
4370:04 00 40 43 39 3F IE OE
4378:20 15 IE 3F 47 B3 2A 2D
4380-.0C 04 00 40 1C IE 04 00
4388:92 DA 2B 2D 2D 25 00 40
4390 :E3 4F 91 04 00 43 2B AD
4398:36 3E 3F 1C OC 2D 04 00
43A0-.43 2B AD 36 IE 3F 27 24
43A8-.24 24 00 41 3F BF 36 15
43B0-.2D 25 00 41 3B BF 36 15
43B8-.2D 25 24 24 24 00 1A 2D
43C0-.25 1C 3F IE 36 15 2D 25
43C8-.00 65 EO 3F IE 36 F5 36
4300:04 00 8A 3F 1C 2C 28 AD
4308:36 F6 3F 04 00 28 15 36
43E0-.FE IB 24 24 E5 24 00 18
43E8-.0C BO 36 36 2F 21 00 58
43F0-.0C BO 36 36 IE E7 04 00
43F8:41 IE IE 15 OE DF 23 2C
4400-.1C 24 24 00 24 3C 96 OA
4408:36 2F 21 00 36 55 24 24
4410-.FF 37 36 26 00 38 37 36
4418: 6E 09 24 E4 04 00 38 IE
4420:36 15 20 OC 24 1C 04 00
4428 :9A 2D 45 23 1C 3F IE 36
4430:36 04 00 8A 3F 47 23 OC
4438:20 15 36 36 04 00 41 3F
4440-.1E 1C 36 36 04 00 41 3F
4448-.F7 15 2D 15 IE 3F 27 00
4450:08 3F 67 34 12 36 15 65
4458:04 00 41 36 36 47 F3 E7
4460:24 24 00 41 36 IE IE 1C
4468-.1C 24 04 00 41 36 36 E7
4470:34 1A 27 24 24 00 41 IE
4478-.1E IE IE 4D El 1C 18 1C
4480:04 00 41 36 36 IE 3F 4C
4488:38 E7 24 04 00 IB 28 2D
4490-.F5 IE IE IE 2D 2D 04 00
4498 :1A 2D 25 1C 44 F3 3E IE
44A0-.36 15 20 25 00 40 E3 9E
44A8-.36 AE 65 35 44 23 24 00
44B0-.1A 2D 25 1C 27 1C 16 IE
44B8-.36 15 2D 25 00 40 C3 OD
44CO-.04 00 92 4A 24 24 24 3C
44C8-.36 36 36 3E 24 24 24 3C
4400:36 36 36 3E 24 24 24 24
4408:00 IE 45 23 E4 F7 36 OE
44E0-.04 00 2B E5 24 BC 04 00
44E8-.39 3F OC 45 2B EO BF 04
44F0-.00 E7 4D 1C 45 23 3F 27
44F8-.00 24 24 IF 36 6D 04 00
4500-.1B 2D 45 E3 5F 27 2C 2D
4508:04 00 3F 68 El 3F 64 2D
4510:04 00 24 45 23 3F 27 00
4518-.E7 4D 1C E7 OC AD 04 00
4520: IB 2D 45 23 E4 F7 OE 25
4528:00 9B 2D OE 15 40 2B EO
4530:47 BB 3F 04 00 IB 15 15
4538:15 15 24 24 24 24 2D 2D
4540-.2D 2D 04 00 92 2A E5 23
4548:24 24 2C 25 00 IB 45 63
4550:96 AB OC 2D 2D 75 OC OC
4558-.1C 47 73 IB 5F 3F 3F 04
4560:00 89 92 3F 4D 43 23 24
4568:24 3C 27 00 36 F6 IE 27
4570:40 43 43 43 09 24 OC OC
4578:25 00 40 43 43 43 FB 2B
4580:60 6D 1C 16 04 00 2A 28
4588-.B0 12 1C IF IE 24 24 10
4590:15 04 00 28 OE IE 15 IE
4598-.3F 27 24 OC 96 D2 8F 44
45A0:43 43 43 11 04 00 45 2B
45A8-.F8 IB 15 16 IE 15 A5 5A
45B0:41 63 1C 04 00 40 43 2B
45B8-.F5 15 36 3F F7 15 2D OC
45C0-.04 00 28 FD F3 15 F5 AB
45C8-.2D 25 00 B8 15 65 1C 06
45D0:33 76 IF 40 43 43 23 04
45D8:00 40 AB 15 DF 63 96 08
45E0-.4D 49 IE 3F 3F 04 00 24
45E8-.95 A8 F6 3F 1C 64 56 16
45F0-.26 40 43 43 43 43 23 00
45F8-.1B 2C 28 15 15 IE IE E7
4600:40 49 73 65 24 1C F7 04
4608:00 40 43 2B 3D IB 77 15
18
Pom's n°31
4610:15
IE
IE
IE
2D
2D
04
00
4618:45
23
B5
12
27
IF
5E
67
4620:40
23
27
00
31
76
DF
63
4628-.0C
OC
20
24
00
2A
28
30
4630:36
DF
40
E3
36
36
36
04
4638:00
IB
A8
36
IE
2D
45
2B
4640:20
1C
04
00
D8
36
AE
45
4 648 :AB
45
23
24
04
00
28
F5
4650:36
FE
24
24
27
00
27
45
4658 :2B
38
3F
96
09
Fl
IE
2E
4660:25
00
D2
2D
45
23
1C
3F
4668-.1E
36
36
26
00
36
3E
1C
4670:24
45
2B
2D
04
00
3F
36
4678-.0E
2D
20
24
E4
F7
26
00
4 680: 2D
F8
13
IE
OD
36
27
00
4688 :E3
OD
AD
36
36
DF
40
23
4690:04
00
38
IE
2E
36
2F
09
4 698 :E5
2C
E4
04
00
2C
28
F8
46A0-.1B
OE
96
IE
4D
El
04
00
46A8-.34
32
36
26
08
45
23
FC
46B0-.1B
36
15
04
00
60
OC
3F
4 6B8 : 1 6
1A
IE
2D
AD
IE
3F
04
4 6C0-.00
Recapitulation
SCHEM.C
Apres avoir saisi ce code sous
moniteur, vous le sauvegarderez
par :
BSAVE SOURIS.C, ASB01,LS9CE
0B01
EA
EA
EA
EA
EA
EA
EA
0305
EA
EA
EA
EA
EA
EA
EA
EA
0B10
EA
EA
4C
55
OE
4C
FE
OD
OBI 8
4C
3F
OD
4C
54
OD
4C
A4
0B20
■OD
4C
D8
OD
4C
2C
14
4C
0B28
■F9
OE
4C
Al
OE
4C
80
OE
0B30
4C
42
OE
20
Fl
OB
20
FD
0B38
OB
20
12
OC
DO
03
4C
33
0B40
OB
20
06
OC
20
Fl
OB
20
0B48
06
OC
20
12
OC
DO
03
4C
0B50
44
OB
20
FD
OB
AD
05
OB
0B58
8D
OB
OB
AD
06
OB
8D
OC
0B60
OB
20
5E
OC
20
FD
OB
20
0B68
12
OC
DO
27
AD
02
OB
DO
0B70
IF
CE
07
OB
20
12
OC
DO
0B78
14
20
FD
OB
20
12
OC
DO
0B80
09
20
06
OC
EE
07
OB
4C
0B88
33
OB
20
06
OC
EE
07
OB
0B90
4C
61
OB
EE
07
OB
AD
OB
0B98
OB
8D
05
OB
AD
OC
OB
8D
OBAO
06
OB
AD
OA
OB
DO
23
AD
0BA8
07
OB
CD
08
OB
90
24
A9
OBBO
BF
38
ED
07
OB
8D
07
OB
0BB8
8D
OA
OB
AD
OD
OB
8D
05
OBCO
OB
AD
OE
OB
8D
06
OB
4C
0BC8
33
OB
20
4E
OC
CD
08
OB
OBDO
BO
01
60
20
12
OC
FO
OB
0BD8
20
FD
OB
20
12
OC
DO
F8
OBEO
4C
EE
OB
20
06
OC
20
12
0BE8
OC
FO
F8
20
FD
OB
4C
55
OBFO
OB
CE
07
OB
20
12
OC
FO
0BF8
F8
EE
07
OB
60
EE
05
OB
OCOO
DO
03
EE
06
OB
60
AD
05
0C08-.0B
DO
03
CE
06
OB
CE
05
0C10-.0B
60
AD
00
CO
10
03
68
0C18: 68
60
20
4E
OC
C9
00
90
0C20-.2A
C9
CO
BO
26
AE
05
OB
0C28-.AC
06
OB
FO
07
EO
18
BO
0C30:1A
4C
38
OC
EO
00
90
13
OC38-.20
13
F4
A4
E5
Bl
26
29
0C40: 7F
25
30
FO
02
A9
01
4D
0C48-.09
OB
60
A9
01
60
AD
OA
0C50-.0B
FO
07
A9
BF
38
ED
07
0C58-.0B
60
AD
7
OB
60
AD
02
0C60-.0B
DO
03
4C
E2
OC
C9
01
0C68:F0
IF
C9
02
FO
21
C9
03
0C70-.F0
23
C9
04
FO
2A
C9
05
0C78-.F0
31
C9
06
FO
4E
C9
07
0C80:D0
06
20
AB
OC
4C
cc
OC
0C88: 60
20
EF
OC
FO
54
60
20
OC90-.05
OD
FO
4E
60
20
05
OD
0C98-.D0
05
20
EF
OC FO
43
6
0CA0-.20
05
OD
FO
JU
70
EF
OC
0CA8-.F0
38
60
20
r\ e
on
8D
OF
OCBO-.OB
20
EF
OC
AE
01
OB
E8
0CB8 : CD
OF
OB
FO
25
CE
OF
OB
OCCO-.DO
06
AC
03
OB
8C
OF
OB
0CC8-.CA
DO
ED
60
20
05
OD
BD
OCDO-.OF
OB
AD
03
OB
18
69
01
0CD8-.38 ED
OF
OB
3D
OF
OB
4C
OCEO-.Bl
OC AE
05
OB
AC
06
OB
0CE8-.20
4E
OC
20
57
F4
60
AD
0CF0-.06
OB
DO
06
AD
05
OB
4C
0CF8:08
OD
A9
FF
20
08
OD
6D
0D00:05
OB
4C
08
OD
20
4E
OC
0D08-.38
4C
OF
OD
ED
03
OB
CD
0D1 : 03
OB
FO
09
BO
F6
CD
01
0D1 8 : OB
BO
02
A2
00
60
A9
00
0D20-.85
3C
85
42
A9
F8
85
3E
0D28: 60
20
IE
OD
A9
40
85
43
0D30-.AD
10
OB
85
3D
18
69
IF
0D38-.85
3F
18
20
11
C3
60
20
0D40-.1E
OD
A9
20
85
3D
A9
3F
0048:85
3F
AD
1
OH
85
43
38
0D50-.20
11
C3
60
A9
20
8D
10
0D58-.0B
20
29
OD
A9
01
8D
11
0D60-.0B
8D
55
CO
20
92
OD
AD
0D68-.04
OB
C9
02
90 F3
EE
11
0D70-.0B AD
11
OB
20
8B
OD
8D
OD78-.10
OB
20
29
OD
20
92
OD
0D80-.AD
11
OB
CD
04
OB
90
E6
0D88 : 4C
54
OD
A2
05
OA
CA
DO
0D90-.FC
60
AD
00
CO
10
FB
C9
0D98-.8D
DO
05
68
68
8D
54
CO
0DA0-.8D
10
CO
60
A9
00
85
08
0DA8-.A9
20
85
09
A2
20
AO
00
ODBO-.Bl
08
49
FF
91
08
88
DO
0DB8-.F7
E6
07
E6
09
CA
DO
EE
ODCO : 60
AD
83
CO
AD
83
CO
A9
0DC8-.00
85
08
85
06
A9
EO
85
0DD0-.07
A9
20
85
09
A2
20
60
0DD8-.20
CI
OD
AO
00
Bl
08
48
ODEO-.AD
09
OB
FO
06
68
31
06
0DE8 : 4C
EE
OD
68
11
06
91
08
0DF0-.88
DO
EA
E6
07
E6
09
CA
0DF8-.D0
El
AD
81
CO
60
20
CI
OEOO-.OD
20
65
OE
A9
DO
85
07
0E08-.A9
00
85
06
A2
10
AD
83
0E10-.C0 AD
83
CO
AO
00 Bl
06
0E1 8 : 8D
OF
OB AD
8B
CO
AD
8B
0E20-.C0
Bl
06
8D
OA
OB
AD
OF
0E28-.0B 91 06 AD 83 CO AD 83
0E30-.C0 AD OA OB 91 06 88 DO
0E38-.DD E6 07 CA DO D6 AD 81
OE40-.CO 60 A9 00 85 08 85 06
0E48-.A9 20 85 07 A9 40 85 09
0E50-.A2 20 4C DB OD A9 00 85
0E58-.08 85 06 A9 40 85 07 A9
0E60-.20 85 09 A2 20 AO 00 Bl
0E68-.08 8D OF OB Bl 06 91 08
0E70-.AD OF OB 91 06 88 DO EF
0E78-.E6 07 E6 09 CA DO E6 60
0E80-.A9 00 85 08 85 06 A9 40
0E88-.85 07 A9 20 85 09 A2 20
0E90-.A0 00 Bl 08 91 06 88 DO
0E98-.F9 E6 07 £6 09 CA DO FO
0EA0-.60 20 55 OE 8D 55 CO EA
OEA 8 : EA 8D 54 CO EA EA AD 00
0EB0-.CO 10 Fl C9 8D DO 07 20
0EB8: 55 OE 8D 10 CO 60 C9 AO
0EC0-.D0 09 20 42 OE 8D 10 CO
0EC8:4C A4 OE C9 8B DO 09 20
0ED0-.CC 11 8D 10 CO 4C A4 OE
0ED8:C9 8A DO 09 20 7 A 12 8D
0EE0-.10 CO 4C A4 OE C9 95 DO
0EE8-.03 20 44 10 C9 88 DO 03
0EF0-.20 53 OF 8D 10 CO 4C A4
0EF8:0E BD 10 CO AD 00 CO 10
0F00-.FB C9 8B DO 06 20 CC 11
0F08-.4C F9 OE C9 8A DO 06 20
0F10-.7A 12 4C F9 OE C9 95 DO
0F18-.06 20 44 10 4C F9 OE C9
0F20-.88 DO 06 20 53 OF 4C F9
0F28-.0E C9 D7 DO 06 20 FE OD
0F30:4C F9 OE 8D 10 CO 60 EO
0F38-.00 20 00 EO 80 20 80 EO
0F40-.28 20 28 EO A8 20 A8 EO
OF48-.50 20 50 EO DO 20 DO DO
0F50-.00 DO 00 A2 00 20 2F 11
0F58-.20 AA OF A2 04 20 2F 11
0F60-.20 AA OF A2 08 20 2F 11
0F68-.20 AA OF A2 OC 20 2F 11
0F70-.20 AA OF A2 10 20 2F 11
0F7B-.20 AA OF A2 14 20 2F 11
0F80-.20 AA OF AD 62 CO 10 01
0FB8-.60 A2 18 20 2F 11 20 F6
0F90:0F A5 06 18 69 28 90 OA
0F98-.E6 07 A6 07 EO DF FO 09
0FA0-.E6 09 85 06 85 08 4C 8E
0FA8-.0F 60 A2 20 AO 00 Bl 06
0FB0-.8D OF OB C8 Bl 06 88 91
0FB8-.06 C8 CO 27 90 F5 AD 62
0FC0-.C0 10 08 AD OF OB 91 06
0FC8-.4C EE OF AD 83 CO AD 83
0FD0:C0 AO 00 Bl 08 AO 27 91
0FD8-.06 AO 00 C8 Bl 08 88 91
0FE0-.08 C8 CO 27 90 F5 AD OF
0FE8-.0B 91 08 AD 81 CO E6 07
0FF0-.E6 09 CA DO B7 60 AD 8B
0FF8-.CO AD 8B CO AO 00 Bl 06
1000 :8D OF OB C8 Bl 06 88 91
1008:06 C8 CO 27 90 F5 AD 83
1010-.C0 AD 83 CO AO 00 Bl 08
1018 :8D OA OB AD 8B CO AD 8B
1020: CO AD OA OB AO 27 91 06
1028: AO 00 AD 83 CO AD 83 CO
1030 :C8 Bl 08 88 91 08 C8 CO
1038:27 90 F5 AD OF OB 91 08
1040: AD 81 CO 60 A2 00 20 2F
Pom's n°31
19
1048:11 20 9B 10 A2 OA 20 2F
1050:11 20 9B 10 A2 OS 20 2F
1058:11 20 9B 10 A2 OC 20 2F
1060:11 20 9B 10 A2 10 20 2F
1068:11 20 SB 10 A2 14 20 2F
1070:11 20 9B 10 AD 62 CO 10
1078:01 60 A2 18 20 2F 11 20
1080-.E5 10 A5 06 18 69 28 90
1088-.0A E6 07 A6 07 EO DF FO
1090:09 E6 09 85 06 85 08 4C
1098 :7F 10 60 A2 20 AD 62 CO
10A0-.10 OA AO 27 Bl 06 8D OF
10A8-.0B 4C CF 10 AD 83 CO AD
10B0-.83 CO AO 27 Bl 08 8D OF
10B8-.0B 88 Bl 08 C8 91 08 88
10C0-.D0 F7 AO 27 Bl 06 AO 00
10C8:91 08 AD 81 CO AO 27 88
10D0-.B1 06 C8 91 06 88 DO F7
10D8:AD OF OB 91 06 E6 07 E6
10E0-.09 CA DO B9 60 AD 83 CO
10E8:AD 83 CO AO 27 Bl 08 8D
10F0-.0F OB 88 Bl 08 C8 91 08
10F8-.88 DO F7 AD 8B CO AD 8B
1100-.C0 AO 27 Bl 06 8D OA OB
1108: AD 83 CO AD 83 CO AD OA
1110: OB AO 00 91 08 AD 8B CO
1118:AD 8B CO AO 27 88 Bl 06
1120-.C8 91 06 88 DO F7 AD OF
1128: OB 91 06 AD 81 CO 60 BD
1130:37 OF 85 09 BD 38 OF 85
1138:08 BD 39 OF 85 07 BD 3A
11 40: OF 85 06 60 20 00 IE BF
1148-.1F 80 20 00 20 28 23 80
1150-.1F A8 20 28 20 50 23 A8
1158-.1F DO 20 50 23 DO DD CO
1160:DE 00 DC CO DO 00 IE BF
1168-.E0 00 IE BF DF 80 EO 00
1170 :E0 28 E3 80 DF A8 EO 28
1178 :E0 50 E3 A8 DF DO EO 50
1180-.E3 DO DD CO 23 DO IE BF
1188:40 50 3F DO 23 A8 20 50
1190:40 28 3F A8 23 80 20 28
1198:40 00 3F 80 20 00 DO 00
11A0-.D0 00 Dl 40 DD CO IE BF
11A8-.E3 DO IE BF 00 50 FF DO
11B0-.E3 A8 EO 50 00 28 FF A8
11B8-.E3 80 EO 28 00 00 FF 80
11C0-.E0 00 DO 00 23 DO IE BF
11C8-.20 00 IE BF A2 00 20 28
11D0-.13 20 BA 13 A2 04 20 28
11D8-.13 20 55 13 A2 08 20 28
11E0-.13 20 9B 13 A2 OC 20 28
11E8:13 20 55 13 A2 10 20 28
11F0-.13 20 9B 13 A2 14 20 28
11F8-.13 20 55 13 AD 62 CO 10
1200:09 A2 80 20 28 13 20 C5
1208:13 60 AD 8B CO AD 8B CO
1210-.A2 18 20 28 13 20 CS 13
1218-.A2 1C 20 28 13 20 EB 13
1220-.A2 20 20 28 13 20 15 14
1228: AD 83 CO AD 83 CO A2 24
1230:20 28 13 20 BA 13 A2 28
1238:20 28 13 20 55 13 A2 2C
1240:20 28 13 20 9B 13 A2 30
1248:20 28 13 20 55 13 A2 34
1250:20 28 13 20 9B 13 A2 38
1258:20 28 13 20 55 13 A2 3C
1260:20 28 13 20 C5 13 A2 1C
1268:20 28 13 20 EB 13 A2 20
1270:20 28 13 20 15 14 AD 81
1278-.C0 60 A2 40 20 28 13 20
1280-.BA 13 A2 44 20 28 13 20
1288:78 13 A2 48 20 28 13 20
1290:9B 13 A2 4C 20 28 13 20
1298:78 13 A2 50 20 28 13 20
12A0-.9B 13 A2 54 20 28 13 20
12A8-.78 13 AD 62 CO 10 09 A2
12B0-.84 20 28 13 20 C5 13 60
12B8-.AD 8B CO AD 8B CO A2 58
12C0-.20 28 13 20 C5 13 A2 5C
12C8-.20 28 13 20 02 14 A2 60
1200:20 28 13 20 15 14 AD 83
12D8-.C0 AD 83 CO A2 64 20 28
12E0-.13 20 BA 13 A2 68 20 28
12E8-.13 20 78 13 A2 6C 20 28
12F0-.13 20 9B 13 A2 70 20 28
12F8-.13 20 78 13 A2 74 20 28
1300:13 20 9B 13 A2 78 20 28
1308:13 20 78 13 A2 7C 20 28
1310:13 20 C5 13 A2 5C 20 28
1318:13 20 02 14 A2 60 20 28
1320:13 20 15 14 AD 81 CO 60
1328-.BD 44 11 85 09 BD 45 11
1330:85 08 BD 46 11 85 07 BD
1338:47 11 85 06 60 AO 00 Bl
1340:08 91 06 C8 CO 28 90 F7
1348:60 AO 00 Bl 06 91 08 C8
1350-.C0 28 90 F7 60 A9 08 8D
1358 :0F OB 20 65 13 E6 07 CE
1360: OF OB DO F6 60 A2 04 E6
1368:09 20 3D 13 CA FO 08 E6
1370:07 20 49 13 4C 67 13 60
1378-.A9 08 8D OF OB 20 88 13
1380-.C6 07 CE OF OB DO F6 60
1388 :A2 04 C6 09 20 3D 13 CA
1390 :F0 08 C6 07 20 49 13 4C
1398-.8A 13 60 A9 08 8D OF OB
13A0-.20 3D 13 CE OF OB FO 11
13A8-.A5 07 18 69 04 35 07 A5
13B0-.09 18 69 04 85 09 4C AO
13B8-.13 60 A2 08 20 3D 13 20
13C0-.D0 13 4C BC 13 A2 08 20
13C8-.49 13 20 DO 13 4C C7 13
13D0-.CA FO 15 A5 09 18 69 04
13D8-.85 09 A5 06 18 69 28 90
13E0-.02 E6 07 85 06 4C EA 13
13E8-.68 68 60 A2 OE AO FF Bl
13F0-.06 91 08 88 DO F9 Bl 06
13F8-.91 08 C6 07 C6 09 CA DO
1400 :EC 60 A2 OE AO 00 Bl 06
1408:91 08 CB DO F9 E6 07 E6
1410:09 CA DO FO 60 AO 00 Bl
1418:06 91 08 C8 DO F9 E6 07
1420 :E6 09 Bl 06 91 08 C8 CO
1428:40 DO F7 60 AD OA OB 8D
1430-.0C OB A9 00 8D OB OB 8D
1438 :0D OB 8D OE OB 20 6A 14
1440:18 AD OD OB 6D OC OB 8D
1448 :0D OB 90 06 EE OE OB 20
1450-.6A 14 38 AD OB OB ED OE
1458: OB 8D OB OB BO E2 CE OC
1460-.0B 20 6A 14 AD OC OB DO
1468:07 60 AD 07 OB 18 6D OE
1470.-0B BO 07 C9 CO BO 03 20
1478:83 14 38 AD 07 OB ED OE
1480: OB 90 4B 48 AD 05 OB 18
1488 :6D OC OB BO 12 AC 06 OB
1490 :F0 04 C9 18 BO 19 AA 68
1498:48 20 5 7 F4 4C AF 14 AC
14A0-.06 OB DO OB C9 18 BO 07
14A8-.AA C8 68 48 20 57 F4 38
14B0-.AD 05 OB ED OC OB 90 OB
14B8-.AC 06 OB AA 68 20 57 F4
14C0-.4C CE 14 AA 68 AC 06 OB
14C8-.F0 04 88 20 57 F4 60
Recapitulation
GRAV.C
Apres avoir saisi ce code sous
moniteur, vous le sauvegarderez
par :
BSAVE GRAV.C, A$801,LS25F
0801 :A5 CE 20 ED FD 60 20
0808:93 09 A9 IB 20 81 09 A9
0810: 6E 20 81 09 A5 07 29 08
0818 :F0 03 4C 3C OA A5 07 6A
0820 :6A 6A 29 CO 85 07 A9 20
0828:90 02 A9 40 85 IB AO 00
0830:84 1A 84 09 A9 OD 20 81
0838:09 A9 IB 20 81 09 A9 5A
0840:20 81 09 A9 00 20 81 09
0848-.A9 20 20 81 09 A9 IB 20
0850:81 09 A9 54 20 81 09 A9
0858:31 20 81 09 A9 36 20 81
0860:09 A9 IB 20 81 09 A9 3E
0868:20 81 09 A9 FF 85 19 A6
0870-.1B A4 1A DO OC 8A 29 IF
0878:00 07 66 07 BO 62 38 26
0880:07 8A 48 98 48 A9 IB 20
0888:81 09 A9 47 20 81 09 A9
0890:30 20 81 09 24 07 10 OD
0898-.A9 35 20 81 09 A9 36 20
08A0:81 09 38 BO OA A9 32 20
08A8-.81 09 A9 38 20 81 09 A9
08BO-.30 20 81 09 A9 01 85 08
08B8-.E6 19 A4 19 CO 28 90 OE
08C0-.A9 OD 20 81 09 A9 OA 20
08C8-.81 09 68 68 10 9D 68 AA
08D0-.85 1A 68 85 IB 48 8A 48
08D8-.A9 00 85 06 A2 08 DO 06
08E0-.B0 74 30 DO 10 E8 A4 19
08E8-.B1 1A 25 08 C9 01 66 06
08F0:CA 24 07 10 08 A5 09 49
08F8-.01 85 09 DO E9 18 A5 IB
0900:69 04 AO 1C 84 09 24 09
0908-.D0 25 06 1A 90 ID 69 EO
0910:18 AO 04 84 09 24 09 FO
0918:14 A5 1A 69 50 49 FO FO
0920:02 49 FO 85 1A A5 IB 29
0923-.E0 90 02 69 EO 66 1A 85
0930-.1B A9 00 85 09 EO 00 DO
0938-.AD A5 06 24 07 70 02 49
0940-.FF 20 81 09 24 07 10 08
0948-.A5 09 49 01 85 09 DO E9
0950:06 08 30 8E 10 8E 85 07
0958-.A9 IB 20 81 09 A9 41 20
0960:81 09 A9 OD 20 81 09 A9
0968-.0A 20 81 09 A9 IB 20 81
0970:09 A9 44 20 81 09 A9 00
0978:20 81 09 A9 20 20 EA 03
20
Pom's n°31
0980
60
A4
FC
A 6
1C
6C
FA
0988
99
80
CO
B9
84
CO
29
80
0990
FO
F9
60
A5
06
OA
OA
OA
0993
OA
85
FC
A9
00
85
IB
A5
09 AO
06
29
07
09
CO
85
1C
AO
09A8
05
Bl
IB
C9
38
DO
3D
AO
9B0
07
Bl
IB
C9
18
DO
35
AO
09B8
OB
Bl
1 B
C9
01
FO
02
DO
09C0
2B
AO
OD
Bl
IB
85
FA
A5
09C8
1C
85
FB
20
!■ :
09
AO
OF
09D0
Bl
IB
85
FA
AO
oc
Bl
IB
09D8
C9
31
DO
OF
A9
09
20
81
09E0
09
A9
5A
20
81
09
A9
OD
91 5
20
81
09
60
AO
OA
Bl
IB
9F0
' C9
20
DO
1 7
C8
Bl
IB
c 9
09F8
■ 58
DO
C8
B :
IB
C9
FF
OAOO
■DO
09
A9
81
85
FA
A9
91
0A08
■85
FB
60
AD
68
FA
C9
CO
0A10
DO
18
AO
OB
Bl
IB
C9
08
0A1 8
DO
1
C8
Bl
IB
C9
48
DO
0A20
09
A9
26
85
FA
A9
92
85
0A28
FB
60
4C
02
OA
48
AD
Fl
OA.' C
CO
49
1
29
70
DO
F7
68
0A38
8D
FO
CO
60
A9
59
85
FE
0A40
A9
92
85
FF
AO
00
Bl
FE
0A48
C9
FF
FO
13
20
81
09
18
0A50
A5
FE
69
or
85
FE
A5
FF
0A58
69
00
85
FF
38
BO
E5
60
Recapitulation
CHARGE.OBJ
Apres avoir saisi ce code sous
moniteur, vous le sauvegarderez
par :
BSAVE CHARGE. OBJ, AS9000,LS22B
9000
A9
00
8D
F6
03
A9
9B
8D
9008
F7
03
A9
4C
8D
F5
03
A2
9010
00
BD
2B
90
9D
00
9B
E8
9018
DO
F7
BD
2B
91
9D
00
9C
9020
E8
DO
F7
A9
9A
8D
01
9D
9028
4C
D4
A7
A5
IE
8D
AC
AA
9030
AS
IF
ar,
AD
AA
AO
00
8C
9038
EB
B7
20
B7
00
C9
22
DO
9040
23
A9
06
85
CI
20
Bl
00
9048
C9
22
FO
OC
09
80
99
75
9050
AA
C8
CO
IE
90
EF
BO
34
9058
A9
EF
85
CI
20
Bl
00
CO
9060
00
DO
4C
60
A5
B8
48
A5
9068
B9
48
20
7B
DD
24
11
30
9070
08
A2
A3
20
F5
9C
4C
12
9078
D4
68
85
B9
68
85
B8
20
9080
E3
DF
85
IE
84
IF
AO
00
9088
Bl
IE
DO
05
A2
OB
4C
OA
9090
9C
8D
AB
AA
C8
Bl
IE
48
9098
ca
Bl
IE
85
IF
68
85
IE
90A0
AO
00
Bl
IE
09
80
99
75
90A8
AA
C8
CC
AB
AA
DO
F3
A9
90B0
AO
99
75
AA
C8
CO
IE
DO
90B8
F8
80
BO
AA
20
F5
9C
20
90C0
■B7
00
FO
12
20
BE
DE
20
90C8
■67
DD
20
52
E7
A5
51
C9
90D0
■02
90
B9
4E
BO
AA
A9
01
90D8
■8D
F4
B7
A9
10
8D
ED
B7
90E0-.A9
11
3D
EC
B7
20
E6
9C
90E8-.CE
For,
B7
FO
46
20
CB
9C
90F0-.A0
EB
8C
AE
AA
AD
AE
AA
90F8-.18
69
23
A8
8D
AE
AA
C9
9100:03
FO
E5
A2
00
B9
BB
B3
9108 :F0
29
DD
75
AA
DO
E6
C8
9110 :E8
EO
IE
DO
FO
B9
9C
B3
9118:29
04
DO
04
A2
OD
DO
15
9120-.AC
AE
AA
B9
B9
B3
8D
ED
9128-.B7
B9
B8
B3
30
C7
8D
EC
9130-.B7
DO
0E
A2
06
8E
5C
AA
9138:20
F5
9C
20
93
FE
4C
D5
9140-.A6
8D AF
AA
20
CB
9C
A2
9148: OC
A5
IE
A4
IF
20
EE
9C
9150: AD
AF
AA
FO
03
20
EA
9C
9158:20
BB
9C
AD
AF
AA
FO
40
9160 :2C
BO
AA
30
OA
A5
50
8D
91 68:BB
B4
A5
51
8D
BC
B4
38
91 70: AD
BB
B4
E9
04
85
IE
8D
9178 :F0
B7 AD
BC
B4
E9
00
85
9180: IF
8D
Fl
B7
A9
04
8D
DA
9188-.9C
18
6D
BD
B4
8D
AB
AA
9190 :A9
00
8D
E2
9C
8D
AF
AA
91 98:AD
C9
B3
FO
22
20
D9
9C
91A0-.AE
AE
AA
EE
Fl
B7
E6
IF
91A8-.E8
EO FE
BO
ID
3D
BD
B3
91B0-.D0
A6
20
EA
9C
20
BB
9C
91B8-.A9
00
85
48
8D
DA
9C
AD
91C0-.AB
AA
8D
E2
9C
20
D9
9C
91C8-.F0
56
AD
BC
B3
FO
E3
20
91D0-.BB
9C
AD
BD
B3
8D
ED
B7
91D8-.E6
IF
20
E6
9C
AD
BC
B3
91 EO : 80
EC B7
4C
19
9C
BO
BB
9 IE 8 : B3
8D
EC
B 7
E8
BD
BB
O 1
Bj
92.- 0:80
ED
B7
8E
AE
AA
A9
B7
91F8-.A0
E8
20
B5
B7
90
1 1
A2
9200:08
4C
OA
9C
AO
00
B9
BB
9208 :B4
91
IE
C8
CO
00
DO
F6
9210:60
AO B3
DO
02
AO
B4
A9
9218 :BB
8D
FO
B7
8C Fl
B7
60
9220: AD
AC
AA
85
IE AD
AD
AA
9228:85
IF
60
Recapitulation
ERREUR
Apres avoir saisi ce code sous
moniteur, vous le sauvegarderez
par :
BSAVE ERREUR, AS 3 A3, 1,10
03A3:68 A8 68 A6 DF
03A8:9A 48 98 48 60
Recapitulation
FONC.C
Apres avoir saisi ce
code sous moniteur,
vous le sauvegarderez
par :
BSAVE SOURIS.C, AS301.LSA2
n i n l • a q
rrn
OJ
no
UL,
n "3
nn
uts
nc
U D
AO
f, n
ou
o r
OJ
U /
/ill n , » c
DO
DO
MJ
DO
A Q
£U
(JJi . UJ
AE
UU
UZ
f u
1 9
A2
0320 : 86
1 3
20
60
05
A 9
B2
91
0328:06
88
A9
3A
91
06
88
B9
0330 :FC
01
91
06
88
DO
F8
68
0338:85
B9
68
85
B8
60
AD
83
0340: CO
AD
83
CO
A9
00
85
08
0348:85
06
A9
EO
85
07
A9
20
0350:85
09
A2
20
60
20
3E
03
0358: AO
00
Bl
08
11
06
91
08
0360:88
DO
F7
E6
07
E6
09
CA
03 68: DO
EE
AD
81
CO
60
A9
00
0370:85
08
85
06
A 9
40
85
07
0378-.A9
20
85
09
A2
20
AO
00
0380 :B1
08
8D
00
03
Bl
06
91
0388:08
AD
00
03
91
06
88
DO
0390 :EF
E6
07
E6
09
CA
DO
E6
0398:60
20
3E
03
20
7F.
03
AD
03A0-.81
CO
60
Recapitulation
DHEL.C
Apres avoir saisi ce
code sous moniteur,
vous le sauvegarderez
par :
BSAVE HEI..C, AS300.LS36
0300-.A9 DO 85 09 A9 00 85 08
0308 :A2 10 AD 8B CO AD 8B CO
0310:20 27 03 A9 DO 85 09 A9
0318:00 85 08 A2 30 AD 81 CO
0320-.AD 81 CO 20 27 03 60 A9
0328:00 AO 00 91 08 88 DO FB
0330-.E6 09 CA DO F4 60
La qualite de ce programme et son volume le destinaient d etre
vendu par Pom's en "produits edites d part".
Nous avons prefere vous faire profiler de ses nombreuses
possibility en I'inserant dans ces pages ; la place nous
manquant pour les sources, seuls les fichiers necessaires au
fonctionnement sont listes ici.
Les lecteurs qui souhaitent approfondir la programmation ou
adapter le logiciel d leurs besoins trouveront cette fois les
sources sur la disquette d'accompagnement.
Pom's n°31
21
Patrice 0\[eveu
W Ik ui n'a jamais eu de
11 probleme a relire
un programme
complexe, constitue
de nombreuses sous-
routines et done truffe de
gotos et gosubs, voire de
runs ? En effet, si beau coup
de Basics autorisent les sauts
vers des routines precedees
d'un nom, d'une etiquette,
1' Applesoft n'accepte que les
sauts specifies par numeros
de ligne, d'ou des listings
souvent tres hermetiques.
Le but de cet article est done de
modifier les commandes goto,
gosub et run par 1' intermediate
de l'ampersand (&), afin d'obtenir
une plus grande facility pour
realiser et maintenir les
programmes.
Fonctionnement
Bien que le listing soit
entierement commente, il est
n6cessaire de presenter certains
sous-programmes de la ROM
Applesoft :
CHRGET : positionne txtptr
sur le caractere suivant, puis va le
lire. Lorsque e'est un espace, il
recommence. On peut done faire
pr6ce\ier le d6but du rem d'autant
de blancs que Ton voudra, sans
pour autant devoir les remettre
dans l'etiquette qui suit le goto
ou le gosub. D'autre part,
chrget signale les fins
d'instruction et done aussi les
fins de ligne de programme en
mettant la retenue (carry) a 1.
DA TA : se place a la fin de
l'instruction en cours. Si on fait
un jmp, il permet d'exdeuter la
prochaine instruction. Ainsi, on
obtient coucou dans l'exemple
suivant avec un saut * goto
••truc :
200 print "salut " : rem tru
C
110 PRINT "COUCOU"
GOTO : va tout d'abord lire le
numero de ligne pointe par
txtptr, le range en linnum, puis
continue par gotobi s , qui
recherche la ligne stockee en
linnum. GOGO se branche done
automatiquement en gotobis,
apres avoir stocke en linnum le
numero de la ligne suivant le rem
voulu.
GOSUB : place d'abord sur la
pile du 6502 la valeur de txtptr
(2 octets) puis de curlin (2
octets) qui est le numero de la
ligne en cours d'ex6cution et
enfin le type de commande ($B0
pour gosub). Puis gosub appelle
goto et execute la ligne par
newstt ($D7D2). Le return
reprendra les informations de la
pile pour savoir ou il faut
reprendre le programme, pop les
supprimera tout simplement, sans
les utiliser.
Utilisation
II suffit de modifier tegerement
vos lignes de facon a r£pondre a
la syntaxe suivante :
10 4 GOSUB "ROUTINE"
20 4 GOTO "FIN
100 REM ROUTINE
110 ...
120 RETURN
500 REM FIN DU PROGRAMME
Attention, apres goto, gosub ou
run, il est indispensable
d'inscrire les etiquettes a
l'interieur des guillemets (ou, au
minimum, de les faire preceder
d'un guillemet) car l'Applesoft le
decomposerait (par exemple cat
en c at, at etant un mot-cl6).
Toutefois, la routine offre de la
souplesse a l'utilisation puisqu'il
est possible d'appeler un :
REM Routine d'ouverture
par un :
4 GOSUB Routine
ou meme par un :
4 GOSUB Rout.
Le retour d'un sous-programme
se fait par le return courant, ce
qui permet aussi l'application de
POP.
Bien entendu, ce qui est valable
pour la commande gosub Test
egalement pour les gotos et les
RUNs.
Ces trois commandes sont aussi
utilisables depuis le clavier vers le
programme directement.
Dans cas ou la syntaxe ne serait
pas respected peut s'afficher l'un
des message suivant :
UNDEF ' D STATEMENT ERROR
(l'ampersand est omis)
IL FAUT UN GOTO, GOSUB ou
run (apres l'ampersand)
IL FAUT UN GUILLEMET (avant
le label appete)
LE LABEL N'EXISTE PAS
(aucun rem ne commence par
le label)
Enfin, le programme source
22
Pom's n°31
t . gogo se trouve sur la disquette
Pom's au format TEXT,
assemblable directement par
Merlin/Big Mac.
Pour conclure ce mode d'emploi,
deux remarques :
• Afin d'6viter des catastrophes
avec le Compacteur de Sylvie
Gallet, (Pom's 22), il est
n6cessaire de supprimer les
lignes 287 et 288. En effet, le
Compacteur detruit tout ce qui
suit le REM, ce qui nuirait
naturellement au bon fonction-
nement de GOGO ;
• GOGO est operationnel aussi
bien sous DOS 3.3 que sous
ProDOS.
Programme GOGO.DEMO
10 PRINT CHR$ (4) "BRUN GOGO
1000 REM INITIALISATION
1010 TEXT : NORMAL : HOME
1020 INVERSE : PRINT " DES SAUTS A GOGO,
PROGRAMME DE DEMO. ": NORMAL : POKE
34,2
1030 VTAB 10
1040 PRINT " 1) LISTING DU PROGRAMME
1050 PRINT : PRINT " 2) CATALOGUE DU DISK
10 60 PRINT : PRINT " 3) QUITTER
2000 REM CHOIX DU MENU
2010 GET A$:R = VAL (A$) : IF R = THEN
& GOTO "CHOIX
2020 S R GOSUB "LIST", "CAT", "QUIT"
2025 GET R$
2030 S RUN "INIT
3000 REM LISTING
3010 HOME : LIST : RETURN
4000 REM CATALOG
4010 HOME : PRINT
4020 IF PEEK (48896) = 76 THEN PRINT
HR$ (4) "CAT": RETURN
4030 PRINT CHR$ (4) "CATALOG" : RETURN
5000 REM QUIT
5010 END
TEMP
PGNUH
BUFFER
CHRGET1
RELOCER
ERROR
ERRORO
ERROR2
CMD
LENGTH
TXTPTR2
COMMANDS
PLACE
INDEX
BASIC
AMPERV
GETBUFR
BITMAP
CLEARC
NEWS IT
GOTOBIS
DATA
S TROUT
GETADR
MOVFM
TEXT
HOME
GOTO
RUN
GOSUB
REM
507
SCF
$0280
$0300
$0319
S033F
$0350
$0375
S03BE
S039C
S039D
S039F
S03A0
S03A1
S03DO
S03FS
SBEF5
SBF5B
SD66C
SD7D2
SD955
SD995
SDB3A
SE752
SEAF9
SFB39
SFCSS
SAB
SAC
SBO
SB2
: Stockage temporal re
; Polnteur da/is la table des pages a proteger
; Buffer pour copier 1 ' Inst ruction apres t.
i Adresse de CHRGETO relogee
; Message d'erreur lors du relogement
; Message d'erreur de commande
i Message de mangue de gulllemet
: Message de label lnconnu
: Tokens de GOTO GOSUB RUN
: Longueur de la commande t
: Sauvegarde de TXTPTR pour les GOSUB
: GOTO GOSUB ou RUN
; Emplacement du label dans la llgne
; Retour au Basic.
1 Vecteur de l't.
1 Pour deplacer les buffers .
; Bl tmap en ProDOS
; Mlse A zero de la pile et des variables.
: Execute une nouvelle Instruction Basic.
I Partle de GOTO ISD93E) : pas de LINGET ISDA0C1
: Met TXTPTR A la tin de 1 'Instruction Basic.
: Routine de sortie de chalne de caracteres .
.• linnum lentler t 2 octets) <- FAC
.- FAC <- II. A)
Token de GOTO
Token de RUN
Token de GOSUB
Token de REM
Source T.GOG O
Assembleur Big Mac
En formal TEXT sur la disquette Pom's pour recuperation par tout assembleur
• Cette routine a'adapte A 1 'environ nement qu'elle trouve: *
• Si le Systems d' Exploitation du Dlague eat le DOS 3.3. elle •
' reate en $9400. 14 oO elle a ete chargee. •
• ■
" SI le SED eat le ProDOS elle abalasc lea buffera de deux "
• pages et a ' Inatal le entre eux et le Baslc.Syatem, puis •
— * protege ces pages. *
i *
• Dana lea deux caa, la page 3 est occupee par dea routines *
' dea tablea et dea meaaagea pour dea problemes de *
' relogeabillte. Elle est egalement protegee. *
ORG S8000
On se trouve soua ProDOS ?
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Commandea dlsponlblea
tGOTO "label "
S GOSUB "label"
iRUN "label"
Saute apres la 1 fgne REM qui
contlent le label.
Va au sous -programme commencant
apres la llgne REM qui contlent
le label.
Execute le programme 1A oil ae
altue le label.
■ * VR
GOTO
"J 1 "
"12"
: Saute au label d'ordre VR *
' i VP
GOSUB
-11 "
"12"
; Va au sous -programme d'ordre VR "
• 6 VR
RUN
"11"
"12"
; Run indexe d'ordre VR *
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
LINNUM
sso
,* Numero de la llgne ou 1 'on va.
rXTTAB
S67
; Adreaae du debut du texte Baaic.
tOMEH
$69
; Adreaae de la tin du texte Basic.
ARYTAB
S6B
: Fin des variables simples
HI MEM
$73
; Plus haute adreaae dlaponlble, buffer ProDOS
CURL IN
$75
: Numero de la llgne en coura d'executlon.
LASTVAR
$81
1 Norn de la variable A recherchec (Index)
VARPNT
$83
; Adreaae de la valeur de la variable (index)
CHRGET
$B1
; Soua-routlne de prise de caractere.
CHRGOT
$B7
; Prend le caractere actual.
TXTPTR
$B8
; Polnte sur le caractere A prendre.
DEBUT
LDA
SBFOO
CMP
£$<C
BEO
GBUFF
JMP
AMPERSET
* On se
pi ace
entre le
GBUFF
LDA
£3
JSR
GETBUFR
BCC
MOVER
' Erreur lors
d'un des
ERELOC
JSR
TEXT
JSR
HOME
LDA
£< RELOCER
LDY
£>RELOCER
JSR
S TROUT
HA1T
JMP
WAIT
MOVER
ECU
#
STA
PROGADR12
STA
PROTECT' 1
STA
AMP1NIT*1
TAX
I NX
STX
PROTECT* 2
I NX
STX
PROTECT '3
; C'est le vecteur JMP du ML I
; Descend lea buffers du DOS de 3 pages
; Pour qu'on pulsse se proteger
Le reserve de place s'est lalte aans pb
Prepare le demenagement de la routine
Pom's n°31
23
LDA
££>
STA
' r* i/i ■ > ■ ■ T «
MOVE LDA
G0GO
Cfiargement de I 'octet pour* ie
f H\J<jnUt< Jin
INC
MOVE*!
« r ri j jc au uujio iii h-l
BNE
MOVEO
INC
MOVE* 2
HOVE ° ^
■ Verifie si on a termine
£>TJW
BCC
WOVE.'
BNE
MOVE3
LDA
BCC
MOVE!
BNE
MOVE3
MOVE1 INC
PROGADR'l
BNE
HOVE
INC
PROGADR'2
BNE
MOVE
Mt/VfcJ
c^n proCv^o
a f * f I a a w if f> i^/vi i^aih'w* i*f» ? n^**
£3
7 J 1/ Jk 4 n/JAik * A nrrtf *» r '*>
, jf a i - ^ a . ■ v ■
STA
PCNUM
; on se sere d'un compteur
NXTPG LDY
PGNUH
; Quel eat ie numero de ia page A proteger ?
, j 4 CJi uniu j d i a Ay a *j
PHA
! Sauvegarde temporal re
4 /lr f* i \r i ma nar *i n f ' nnt'f ^* ffh 1 Apr 1 1 i* f
i Wli VJ 1 V 1 j J J . j ^JvUX U C V V ■ II" J 1 1" ■ 4 w^-w*st
LSR
# Oil se Erouve ie bJC de Is pSQC recherchee
r/x
Dans X pcur slier dsns ia (abie du PcoDOS
LDA
B i TMAP , X
STA
TEMP
On ie sauve pour usage 1 *"rieur
PLA
; Reprise du n° de page
AND
L 7
i Dont on ne garde Que Ie bit de position
TAY
• Qui sert 4 chercher le masque
LDA
BITMASf Y
/ Pour met t re A I le bit de la page occupee
BIT
TEMP
: Verille se e'est deja occupe
BNE
EffEi.CC
STA
BITMAP, X
; Puis on met A Jour ia PltMap
DEC
PCNUM
; Et on passe a la prochalne page
BPL
NXTPG
* Dep • a cemen t
ous
f f a Wir n r/vi rapw nAiff f f f
en ""envfro
n r.eme .it ProDOS
LDy
£144
; Nombre d'octets a mettre en S0300
MOVES FN LDA
CHPGETO. Y
: Ce sont essent ie 1 lement des tables
STA
CHRGET1 . Y
: et des messages, pi us deux routines
D£y
; appelees par JSR et done non-relogcabl ea .
£SFF
BtfE
n\y vr*n ( i*
* f> i r M
i ^* V^ r*f *»'ip
ampersand sous ProDOS
AMP INI T LDA
£Sff
; L 'ampersand lra au debut du buffer donne
LDY
£0
; par ProDOS
STA
AMPERV* 2
AMPERV* 1
RTS
- Initialise
le vecteur
ampersand sous DOS 3.3
AMPFRSF 7 " LDA
£>GOGO
; Malntenant, 1't ira directement A GOtoGOsu
i.yy
£<GOGO
srA
AMPERV* 2
sry
AMPERVr 1
LDA
£>DEBUT
; Fixe HIMEM sous DOS 3,3 pour evtter Jes
Loy
C<DEBUT
; variables i ntempes: J ves
HIMEM* 1
STY
HI MEM
* Depiacement d ' une sous- rout I ne du programme en DOS 3.3
LDY
£.144
, Wombre d'octets a mettre en $0300
MOVERTN1 LDA
CHRGETO. Y
: Ce sont essent lei lement des tables
STA
CHRGFTl , Y
; et des messages, plus deux routines
DEY
; appelees par JSR et dune non- relogeables .
CPY
lsff
BNE
MOVEPTNl
RTS
; Jfetour au Basic.
STA BUFFER, X
I NX
BNE GETCMD
IDENTIFY EQU •
DEX
STX LENGTH
LDX L2
1 DENT I FY 1 LDA CMD.X
CMP BUFFER
BNE IDENT I FY 2
JMP LEGAL
1DENTIFY2 EQU ■
DEX
BPL IDENTIFYl
LDX
1SINDEX LDA
CMP
£0
BEQ
CMP
BUFFER, X
£GOTO
YA INDEX
LGOSUB
BEQ Y A INDEX
CMP LP UN
BEQ Y A INDEX
I NX
CPX LENGTH
BNE IS INDEX
LDY £> ERROR
LDA £< ERROR
JSR STROVT
BASIC
Pour identifier la commande envcyee.
On decremente la longueur de la commande de 6
puis on la range pour usage ulterleur.
II y a trols commandes possibles. On commence
par la derr.iere.
Et on compare au token range dans ie buffer.
SI e'est autorise. d 'accord. . ,
• smon, passe a la prochalne
Et li n'y en a que 3. . .
• On a peut etre un saut Jndexe
r Aloes sachant Que la variable est au debut,
l on recherche le GOTO. GOSUB, RUN
: C'est bien un saut Indexe
Recherche d'un saut guelconquc sur Coute
ia longueur de ia iigne
Si c'est i'ineonnu, alors slgnale 1 'erreur
de commande.
JMP
Et retourne au basic.
Lecture de 1' Index
EQU
PHA
TXA
PHA
LDY
LDA
STA
CPX
BNE
LDA
STA
BEQ
EQU
INY
LDA
STA
EQU
LDA
LDX
STA
STX
L0
BUFFER, Y
LASTVAR
£1
SNDLET
£0
LASTVAR •!
SRCWJAP-
BUFFER, Y
MlSTVAR*!
LOMEH
LOMEM* 1
VARPNT
VARPNT- •
CMPVAR EQU
LDY
LDA
CMP
SEC
BNE
INC
CLC
BNE
INC
SPCHVAR1 EOU
PHP
LDA
CMP
BEQ
PLP
NXTVAR EQU
LDA
ADC
STA
BCC
INC
VRFYEOV EQU
LDA
CMP
BCC
BNE
LDA
CMP
BCC
VARPNT
£6
VARPNT
VRFYEOV
VARPNT* 1
*
VAHPNT*!
ARYTAB-1
CHPVAF
NOVAR
VARPNT
ARYTAB
CMPVAR
Lecture de la lere iettre de ia variable
II y a une ou plusieur Iettre dans Ie nom ?
Va prendre la 2nd
; On se place au debut de la zone des
I variables simples afln de cechercher
; r.otre Index
(VARPNT) , Y
LASTVAR
NXTVAR
VARPNT
SRCHVAR1
{VARPNT I . Y
IAS WAR ' 1
VARFND
,- Et on compare la variable etudlee avec ceile
(ju'on a trouve apres 1 'ampersand
/ On rajoute € ou 7 eel on ce Que la lere Iettre
; etalt convenable ou non
; Va verifier si on a vu toutes les variables
A-ton termln* la
des variables simples
Verification de la syntaxe des commandes.
LDA £0
STA INDEX
BEQ VARFOUND
; La variable n'exlste pas. done
VARFND PLA
LDX
£1
JSR
CHRGOT
: Necessal re pour prendre le Ier caractert^
VARFOUND EQU
STA
BUFFER
t sutvant ft. On stock* le resultat en BUFFER.
LDY
VARPNT* 1
; Pour
indiguer
JSR
CHRGET
; Boucle pour lire et stocker la suite de la
LDX
VARPNT
; de 1
index
BEQ
IDENTIFY
; commande. A=0 si tin d' Instruction.
1NX
24
Pom's n°31
rxA
BNE PUTINFAC
1NY
PUTINFAC EQU *
JSR MOVFM ; Met la variable en FAC
JSR GETADR ; Puis convertlC FAC en entier dans LINNUM
NOVA* EQU •
IDA LINNUM
STA INDEX ; On a un Index
PLA
TAX
PLA
BNE LEGAll
COHPREH JSR CHRGETl
BEQ FIN LAB
LDY BUFFER, X
CPY £ ' , '
BEQ EXECLIN
CPY £522
BEQ EXECLIN
CMP BUFFER, X
BNE READL1NE
INX
CPX LENGTH
BCC COUP REM
• Execute cet'.e ligne la
: 11 taut le comparer avec ce qui suit le REM
; Fin du REM ?
; Dans une llste, une vlrqule ou des
; gulllemets slgnltlent une tin de label a
; recherchcr .
Mais c'est different, done...
St e'est Identioue, essaye plus loin >
Mais ce n 'est pas la peine d'en taire trop.
LEGAL EQU « ; C'est bon,
LDX £0
STX INDEX ; II n'y a pas d' index
LEGAL 1 EQU '
STA COMMANDE I Alors range le type de commande qu'on a eu.
INX ; Puis verlfle J 'existence du guillemot avant
LDA BUFFER. X : le label.
CMP £522 ; 522 est le code de "
BEQ TESTINDX I S'll y est, on peut aller chercher le label
apres le REM.
NOGV1LL EQU *
LDY OERRORO ; Slnon, c'est rate, on dolt tout arreter.
LDA £<ERROR0
JSR S TROUT
JMP BASIC
Teste s'll
taut Indexer et si oul alors allons~y
TESTINDX EQU «
LDY INDEX On n'ir.dexe que st on dolt lire apres le ler
CPY £2
BCC READY ; Slnon. on est deja pret . . .
SEEKCOMA EQU '
LDA BUFFER, X ; Or, recherche les vtrgules car elles marquent
CMP £',' ; la fin d'un label A rechercner; c'est un
BEQ COMA ; separateur dans la llste de label
INX ; Mais 11 taut quand meme rester dans les
CPX LENGTH ; iimJtes de la llqne A etudler
BNE SEEKCOMA
RTS ; SI 1' index > r.ombrc de labels, alors on sort
EXECLIN EQU •
LDA COMMANDE
CMP IGOTO
BEQ EXECGOTO
CMP EfiUN
BEQ EXECRUN
LDA £3
JSR SD3D6
LDA TXTPTR2 » I
PHA
LDA TXTPTR2
PHA
LDA CURLlN'l
PHA
LDA CURL IN
PH/.
LDA COMMANDE
PHA
JSR CHRGOT
JSR GOTOB1S
JMP NENSTT
EXECRUN EQU *
JSR CHRGOT
BEQ EXECRUN I
EXECRUN2 JSR CHRGET1
BNE EXECRUN2
EXECRUN1 EQU ■
JSR CLE ARC
JMP NENSTT
; Scion ce que c'est, on n'aglt pas parell :
C'est un GOSUB qu'll taut executer,
Cecl est le dibut de la routine GOSUB. mais
la difference est qu'on ne va pas lire le n"
de llqne qui suit pulsqu'on 1'a remplacc par
•in 1 abel .
Dans la pile, remarqucz qu'on place:
TXTPTR d'ou on part,
C'JRLIN qui s'execute encore,
COMMANDE pour signaler que ce qui se t rouve
dans la pile vlent d'un GOSUB par exemple.
; Ca y est au lieu d'aller en GOTO ou on aurait
; lu un n* de ligne. on ne le fait pas:
; on se branche apres (GOTOBIS]
; Est -on deja en fin de ligne ?
; SI oul, alors fait le RUN...
; Slnon, 11 faut se placer en fin de ligne.
Mlse a zero ae la pile et des variables
Execution de la prochatne instruction. . -
COMA INX ; Apres une vlrgule, on doit trouver un "
LDA BUFFER, X
CMP £522
BNE NOGU1LL ; Slnon c'est une erreur
DEY ; Passe au prochaln de la liste,
CPY £1 ; et si on est ou bon, alors ll faut y allcr
BNE SEEKCOMA
READY EQU '
INX ; On est pret A recherchcr le label
STX P1ACE ; Sauve le debut du label
" Recherche d'une Instruct Ion REM dans le texte.
LDA TXTPTR : Regarde blen ou on cn est dans le texte.
LDX TXTPTR*! : puis sauve pour plus tard peut-etre.
STA TXTPTR2
STX TXTPTR2H
LDY TXTTAB ; Fixe le polnteur au debut du programme.
DEY ; I molns 1 )
LDX TXTTAB' 1
STY TXTPTR
STX TXTPTR • I
SEEKREM EQU '
JSR CHRGET1 ; Va lire les 2 octets qui donnent l'adresse
JSR CHRGETl ; de la prochalne ligne.
JSR CHRGETl ; Passe aussl les 2 octets du numero dc ligne.
STA LINNUM ; et en passant, on stocks.
JSR CHRGETl
STA LINNUM*!
SEEKREM2 JSR CHRGETl ! Puis on lit le debut de 1 ' Inst ruct Ion.
CMP £REM ; Est-ce un REM ?
BEQ READREM ; Oui ! aloes on va aller le lire.
READLINE JSR CHRGETl : Non alors on passe A la prochalne instruction
BNE READLINE
CUP £00 : Fin de ligne ?
BEQ SEEKREM ; Out, va sautcr ce qu'll y a avant le texte.
BNE SEEKREM2 ; Non alors teste un REM.
FINLAB EQU -
LDY BUFFER, X
CPY £', '
BEQ EXECLIN
CPY £522
BEQ EXECLIN
BNE READLINE
READRM EQU •
LDX PLACE ; Le dibut du label
EXECGOTO EQU *
JMP DATA
C'est un GOTO, et comme on a deja fix* TXTPTR
au but du saut , on execute. . .
' CHRGET qui cor.trole la fin du texte.
n 'a pas ete tr
-.hRCETQ EQU '
LDA TXTPTR*!
CMP LOMLM* 1
BCC GOGET
LDA TXTPTR
CMP LOMEM
BCS PRNTEND
GOGET JMP CHRGET
PRNTEND LDY OERR0P2
LDA £<ERR0R2
JSR STROUT
JMP BASIC
• Messages divers
HEX BD8D8D8D8DBD8D8D8D8D8D8D
ASC "GOGO NE PEUT S ' INSTALLER-
HEX 8D00
HEX 80
ASC "I L FAUT GOTO, GOSUB OU RUN-
HEX 8D0 700
HEX 80
ASC "II FAUT UN GUILLEMET"
HEX 8DC 700
HEX 8D
ASC "LE LABEL N 'EXISTS PAS"
HEX 8D0700
• Commandes valables
DFB GOTO, GOSUB. RUN
• Masque pour le m&rquaqe de la BltMap
B1TMASK HEX 801020! C0804020!
• Pages A proteqer
PROTECT HEX 03FFFFFF
FIN EQU '
Avant de lire un caractere du prog., on dolt
s'assurer qu'on est toujotjrs dedans...
... et si c'est bo
Alors on s'arrete.
1+
lie
lie*
lie
DOS 3.3
ProDOS
Pom's n° 31
25
Recapitulation
GOGO
Apres avoir saisi
ce code sous
moniteur, vous
le sauvegarderez
par :
BSAVE GOGO, AS8000, LS2F7
RCiftO • AD
00
BF
C9
4C
FO
03
4C
onnn • A 7
OUUO - ril
80
A9
1
UJ
C 3
BE
90
RH 7 • 7 17
OU1 u . IV
20
39
r n
70
-J O
FC A9
8018:19
AO
03
90
Jn
un
A ' '
7 P
RCipfi • on
8D
3D
8
8D
F4
82
8D
POOR ■ Q 7
O US. 0.7/
80
AA
CO
8F
r d
82
E8
q m n • Of
F6
82
A9
00
8D
3C
80
8038-.AD
CI
80
80
FF
FF
EE
39
8040:80
DO
03
EE
3A
80
AD
3A
8048:80
C9
82
90
OB
DO
13
AD
8050:39
80
C9
F7
90
02
DO
OA
80b8-.EE
3C
80
DO
DB
EE
3D
80
8060: DO
D6 A9
03
85
CF
A4
CF
8068-.B9
F3
82
48
4A
4A
4A
AA
8070-.BD
58
BF
85
D7
68
29
07
8078-.A8
B9
EB
82
24
07
DO
91
8080:05
D7
9D
58
BF
C6
CF
10
8088:0)0
AO
90
B9
5A
82
99
00
8090:03
88
CO
FF
DO
F5
A9
FF
8098-.A0
00
8D
F7
03
8C
F6
03
BOAO: 60
A9
80
AO
CI
8D
F7
03
80A8:8C
F6
03
A9
80
AO
00
85
80B0: 74
84
73
AO
90
B9
5A
82
80B8: 99 00 03 88 CO FF DO F5
80C0-.60 A2 01 20 B7 00 8D 80
8008:02 20 Bl 00 FO 06 9D 80
8000:02 E8 DO F5 CA 8E 9C 03
80D8:A2 02 BD 8E 03 CD 80 02
80E0:D0 03 4C 7C 81 CA 10 F2
80E8-.A2 00 BD 80 02 C9 AB FO
80F0-.18 C9 BO FO 14 C9 AC FO
80F8-.10 E8 EC 9C 03 DO EB AO
8100:03 A9 3F 20 3A DB 4C DO
8108:03 48 8A 48 AO 00 B9 80
8110:02 85 81 EO 01 DO 06 A9
8118:00 85 82 FO 06 C8 B9 80
8120:02 85 82 A5 69 A6 6A 85
8128:83 86 84 AO 00 Bl 83 C5
8130:81 38 DO OF E6 83 18 DO
8138:02 E6 84 08 Bl 83 C5 82
8140 :F0 20 28 A5 83 69 06 85
8148:83 90 02 E6 84 A5 84 C5
8150-.6C 90 D8 DO ID A5 83 C5
8158: 6B 90 DO A9 00 8D Al 03
8160-.F0 01 68 A4 84 A6 83 E8
8168:8A DO 01 C8 20 F9 EA 20
8170:52 E7 A5 50 80 Al 03 68
8178: AA 68 DO 05 A2 00 BE Al
8180:03 8D 9F 03 E8 BD 80 02
8188 :C9 22 FO OA AO 03 A9 5D
8190:20 3A DB 4C DO 03 AC Al
8198:03 CO 02 90 IB BD 80 02
81A0:C9 2C FO 07 E8 EC 9C 03
81A8-.D0 F3 60 EB BD 80 02 C9
81B0-.22 DO D9 88 CO 01 DO E5
81B8-.E8 8E AO 03 A5 B8 A6 B9
81C0-.8D 9D 03 8E 9E 03 A4 67
8108:88 A6 68 84 B8 86 B9 20
81D0-.00 03 20 00 03 20 00 03
8 1 DR • #5
SO
20
00
03
85
51
20
ri fci • nn
03
C9
B2
FO
1 8
20
00
8 7 F8 • 1
DO
FB
C9
00
FO
EO
DO
7 pn . pjp
O lr U . £>t
BC
80
02
CO
2C
FO
24
lr . t~U
FO
20
no
Pfl
tLO
AF
Aft
nU
onn • ni
OSUU . UJ
£U
00
03
vo
(TD
tLD
Rn
u
ono ■ n
o£.UO . US.
u
2C FO
OF
vr
CO
22
FO
r o 7 n • nn
OS l V . U&
nn
UU
DO
no
FX
L
FC
R01 R ' QC
os 1 o •
UJ
90
E5
h ;
fiu
QF
C9
OSS U . IMS
Ft)
J H
AC
FO
20
A9
8228 : 03
20
06
03
AD
9E
3
48
r o 3 n • An
OS J U . f\U
on
03
48
AS
76
H O
H J
ROIR • 7S
OS J . / D
J R
HO
AD
9F
03
48
on
£ u
D7
Aft . r\r>
Os H U . UU
£U
55
D9
4C D2
n 7
U 1
ROAR • R 7
nn
FO
05
on
nn
n 7
UJ
nn
UU
on
6C
06
AC
r- n
U£
D7
4C
n
A5
B9
C5
6A
on
yu
u
RR
DO
C5
69
BO
03
4C
Bl
R96R • on
r\ U
03
A9
/ D
on
3A
DB
8270 : 4C
DO
03
8D
8D
80
8D
8D
R 71R • RD
8D
8D
8D
80
8D
8D
C7
828 : CF
Cl
CF AO
CE
C5
AO
DO
R7RR • C^t
D4
AO
03
A7
C9
CE
0£ yU . UJ
U1
Cl
CC
CC
C5
D2
8D
0£30 . UU
Rn
ou
C9
CC
AO
C6
Cl
D5
r 721 n • r>A
AH
C7
CF
D4
CF
AC
AO
CF
D3
D5
C2
AO
CF
D5
no
U£
D5
CE
80
07
00
8D
AO
C6
Cl
D5
n.4
An
U
Z _ U . UJ
CF
AO
C7
05
C9
CC
82C8 : C5
'"')
C5
04
8D
07
00
8D
r onn • cc
AO
CC
Cl
C2
C*y
CC
O/CUO . HU
CE
A7
C5
08
C9
D3
UH
82E0:C5
AO
DO
Cl
D3
8D
07
00
82E8-.AB
BO
AC
80
40
20
10
08
82F0-.04
02
01
03
FF
FF
FF
Voici la lisle dos fichiers que vous trouverez sur les disquelles Pom's Apple //
correspondant a ce numero.
La disquelle 5'25 pouces 140Ko est formates au recto en DOS 3.3 st au
verso en ProDOS. Tous les fichiers ne tenant pas sur une face, nous les avons
repartis en fonction du DOS utilise. La face ProDOS ne boote pas (pour une
question de copyright) ; il vous appartient done d'y installer ProDOS et
Basic.System.
La disquette 8OOK0 comprend tous les fichiers en format ProDOS. II faudra
convertir en DOS 3.3 les fichiers qui le necessitent.
(Duquettes "Pom's 31 Appfc //
Liste des fichiers,
GOGO
T.GOGO
GOGO.DEMO
PIC.POC
GSCOLOR
PIC.POC.S
UT.MESS.GS
T.WRITE560
T.WRITE560.DEMO
WRITE560.DEMO
ESSAI.PAS
DIAG.PAS
LEMOUSE3.0.C
LEMOUSE3.0
START.MOUSE
STARTUP
IM31
PAPILLON
NOEL
ELLIPSES
GLOBE
face ProDOS
BIN Objet a executer
TXT Source Assembler
BAS Programme de demonstration
BIN Objet a executer
BAS Programme de demonstration
TXT Source Assembleur
BAS Programme de demonstration
TXT Source Assembleur
TXT Source Assembleur de demo
BIN Objet correspondant
BIN Source Turbo-Pascal
BIN Source Turbo-Pascal
BIN Objet a executer
TXT Source Assembleur
BAS Programme de lancement
BAS Programme d'accueil
BIN 5 images generees
BIN avecle
BIN programme
BIN Schemateur
BIN de la face DOS 3.3
Liste des fichiers face DOS 3.3
A 002
HELLO
Programme d'accueil
A 008
MENU
Programme de lancement de
A 041
SCHEMATEUR
SCHEMATEUR
A 003
GRAPHISME
B002
HELC
B011
SCHEM.C
B008
CARAC.SH
A 036
FONCTION
B002
FONC.C
A 018
GRAVURE
B004
GRAV.C
B002
ERREUR
B004
CHARGE.OBJ
T003
T.HEL
4 sources non listes dans
T062
T.SCHEM
la revue
T006
T.FONC
T013
T.GRAV
B004
GOGO
Objet a executer
T061
T.GOGO
Source Assembleur
A 003
GOGO.DEMO
Programme de demonstration
A 037
LE.VOYAGEUR
Programme a ex6cuter
T002
TEXT
Fichier de demonstration
B013
ESSAI.PAS
Source Turbo-Pascal
B019
DIAG.PAS
Source Turbo-Pascal
B034
M31
Imago HGR
26
Pom's n°31
La carte dont nous vous proposons
ici un banc d'essai est distribute par
la S.A. LOGMA, societe qui
travaille par ailleurs en regie pour la
revue Pom's.
La carte
La carte Speedisk est un disque
virtuel permanent : elle est un
veritable volume ProDOS, sur
lequel on peut demarrer et sur lequel
on stocke fichiers et programmes.
La memoire de masse n'est plus un
support magnetique traditionnel : la
carte est constitute de circuits
CMOS sans organes mecaniques en
mouvement : les acces disque sont
done extremement rapides et la
fiabilite est comparable a celle de
I'unite centrale.
On accede a I'information en 0,2 ms
soit 100 fois plus vite qu'avec un
disque dur. Sur un Apple lies en
mode rapide les chargements
s'effectuent a raison de 1 00 blocs
par seconde soit 51200 octets/
seconde.
Les informations sont preservers
pendant deux mois apres I'arret de
I'ordinateur, grace a un accumu-
lates qui se recharge lorsque
I'ordinateur est sous tension : il ne
faut done pas laisser I'appareil plus
de deux mois hors tension sans
sauvegarder le contenu de Speedisk
sur disquette.
La capacite
Speedisk est proposee en quatre
versions : 384 Ko et 1 Mo, avec ou
sans horloge. La premiere version
est extensible a 1 Mo.
Les cartes avec horloge compatible
ProDOS n'ont d'interet que sur ][+
et lie, la carte integree au Hgs
remplissant fort bien son office.
Notons d'ailleurs que les cartes
Speedisk dotees d'une horloge sont
incompatibles avec le IIgs.
ProDOS se refuse a reconnaitre un
support de masse et une carte
horloge dans le meme slot, aussi,
pour utiliser I'extension horloge, il
faut installer un programme (livre
sur disquette) qui s'execute lors du
demarrage pour modifier ProDOS.
L'ordinateur
La carte fonctionne indifferemment
sur Apple ][+ (avec carte langage
pour ProDOS), He et IIgs. Les
programmes sont metamorphoses
surtout ceux ayant recours
frequemment a des fichiers : les
programmes WPL d'AppleWriter par
exemple, sont meconnaissables.
La carte etant un support disque
comme un autre, est toujours
adressee a 1 Mhz meme en mode
rapide (sur le IIgs bien sur).
La vitesse
Mieux qu'un long discours, void les
temps d execution mesures.
• Booter sur Basic.System = 3 s
• BRUN FILER =1/2s
• BRUN AppleWriter = 1/2 s
• Sauver un texte de 46 Ko
depuis AppleWriter =5s
• AppleWorks = 1 s
• Ecrire un enregistrement
TEXT de 100 octets =1/36s
soit 3,5 Ko/s
soit 21 50 enregistrements/mn
• BSAVE de 36 Ko =1s
• Formater 1 Mo = 1 s
• Avec MouseDesk, copier 75
fichiers (900 Ko) de
Speedisk vers /RAM5 =1 mn
• De Launcher a GS Paint « 1 7 s
Temps cumules :
sur Unidisk 3,5' sur Speedisk
PR£slot s 0s
ProDOS 16 9 s 2s
Launcher 49 s 10s
MouseDesk 71 s 15s
GSWrite 149 s 34s
A I'usage
On se prend rapidement a oublier le
lecteur traditionnel et a imaginer un
'disque dur' de 20 Mo congu de la
meme fagon. Mais, en realite, le
nombre de programmes utilises de
fagon journaliere est restreint et
tient sans nul doute sur 1 Mo. Par
exemple : un programme de gestion
du compte bancaire, un traitement
de texte, un tableur, un programme
de dessin, quelques programmes en
Basic et les utilitaires essentiels de
Pom's... Pour les collections de
programmes rarement utilises, la
disquette reste le stockage
economique.
Sur 384Ko, on se sent plus a I'etroit
et seuls les programmes utilises
quotidiennement trouvent leur place.
Le specialists du traitement de
texte n'hesite plus a faire les
sauvegardes, quasi-instantanees,
sans craindre que le disque virtuel
/RAM ou /RAM5 perde la memoire
a la suite d'une micro-coupure.
Pour une utilisation plus speciale
(centres de formation, ecole) et
tous les milieux a risques, le disque
virtuel permanent est certainement
la solution la moins sensible aux
Pom's n°31
27
la page $Cn (n est le n° de slot) les
conventions habituelles : $Cn01, 03
et 05 valent bien $20, et 3.
Pour la carte 1 Mo, en $CnFC et
$CnFD il y a bien 00 08 qui signifient
$800 blocs sur le disque : 2048 x 512
= 1024 Ko.
Surprise : en $CnFE on trouve $8F,
le bit 7 est a 1 ce qui signifie
'support amovible'. Surprenant pour
une telle carte !... II s'agit en fait
d'un defaut de ProDOS qui ne
supporte pas ce bit a 0. Aucune
consequence pratique, pas plus que
pour les disques durs dont les
controleurs ont egalement ce bit a 1 .
Plus standard, on dispose de 51
entrees dans le catalogue du
volume. Au-dela il faut creer des
sous-catalogues comme pour les
autres volumes.
Pour utiliser I'horloge des cartes SP
400H et SP1000H, il est necessaire
d'installer le programme hgsp.
system comme premier fichier
systeme de la carte. Ce programme
installe le vecteur ProDOS en
$BF06.$BF08 : 4c db cn c'est-a-
dire jsr $cnD8 puis effectue un
premier get_time pour mettre a
jour la date dans la page globale en
$BF90.$BF93. Ce programme lance
. alors le fichier systeme suivant
dans le catalogue.
L'ensemble des get_tzme
aboutiront alors a une mise a I'heure
de la page globale : c'est le cas par
exemple d'un save ou d'un close
en Basic (les fichiers sont ainsi
dates).
Le tarif
SP400 (384 Ko)
SP1 000(1 Mo)
SP400 horloge
SP1000 horloge
3 990,00 F
5 990,00 F
4 580,00 F
6 580,00 F
tarifs sur lesquels LOGMA applique
une remise de 10% aux lecteurs de
Pom's.
Les cartes sont garanties 1 an, et
ce par echange en cas de probleme.
indelicats.
L'aspect 'environnement de bureau'
type Macintosh devient reellement
utilisable car revenir a MouseDesk
prend quelques secondes seulement
alors que, sur disquette, I'utilisateur
recourt parfois au RESET...
L'Apple IIgs passe plus de temps a
son autotest de mise sous tension
qu'a booter Basic.System.
Un petit regret tout de meme : il
n'existe pas encore de controleur
-ou plutot de patch- pour I'utiliser
sous DOS 3.3, mais, patience. Idem
pour Pascal et CP/M.
Au SAMU
Cette carte a en effet ete adoptee
par un SAMU, activite dans laquelle
fiabilite et acces rapide a
I'information sont des criteres
vitaux.
Dans la carte
Strictement equivalente a un
lecteur de disquette, on trouve dans
La carte de synthese de parole
Valentine n'est pas a proprement
parler une nouveaute : nous en
avions eu deux dans les mains il
y a un an mais elles n'en etaient
encore qu'a la phase de
developpement, le mode d'emploi
ressemblait encore trop a un
cahier des charges. Pour la petite
histoire, on lisait a l'epoque, ca et
la des 'bancs d'essai' fort
elogieux qui ne manquaient pas
d'abuser le lecteur. Par ses
possibilites, la nouvelle version
28
de Valentine merite cette
presentation.
La carte
Elle a t\€ concue en collaboration
avec l'Association Valentin Haiiy
pour les Aveugles et c'est bien
entendu a ceux-ci que s'adresse
en priorite la synthese de parole.
La carte s'enfiche dans l'un des
slots de l'Apple //e, ordinateur
qui doit etre muni du kit 65C02 ;
le haut parleur interne de l'Apple
est utilise mais un jack est prevu
pour un modele exterieur. Outre
la connexion au slot, un fil est a
relier - a l'aide d'un support de
circuit prevu a cet effet - au
decodeur clavier. Le clavier est
alors reconnu par la carte qui peut
gen6rer une interruption et done
travailler en immobilisant
provisoirement le programme en
cours. La version IIgs (moins
couteuse) qui n'est pas encore
disponible, ne necessitera pas
Pom's n° 31
cette intervention puisque le
clavier, comme sur le Macintosh,
g6nere des interruptions a la
disposition du programmeur.
De la dimension d'une carte SSC,
les modeles que nous avons eu en
mains souffraient encore de la
presence de quelques straps,
composants ajoutes cote pistes et
modifications de derniere heure.
Autour sur processeur 8085 a 8
Mhz, nous trouvons 196Ko de
ROM sur la carte : 77 pour les
phonemes, 50 pour les regies de
prononciation et le reste pour le
programme.
La synthese
Avec un peu d'habitude,
l'integralite de la prononciation
est reconnue ; apres avoir tente
une voix d'homme, c'est
finalement une voix feminine qui
a ete retenue, vitesse de
prononciation et timbre sont
reglable. Les occlusives ptdetb
prononcees seules restent
difficiles a diff6rencier et
demandent un effort d'attention,
idem pour les fricatives /et vou
pour ' . ' et '-' dits «point» et
«moins». Un mode
'telegraphique' (ou plutot
aeronautique) leve les ambigui'tes
les mots etant epel£s «Papa
Tango Delta Bravo. ..». Les
signes et accents sont dits en
clair : «a commercial, e accent
aigu, parenthese ouverte...».
La carte sait prononcer sans
erreur les pieges-type tels «les
presidents president, les
poules du couvent couvent,
estomac». En revanche les
mots-cl6 du Basic ne faisant pas
partie des exceptions sont
prononces a la francaise. Les
nombres sont fort bien dits «cent
soixante milliards quatre cent
onze millions... ».
Les minuscules sont differenciees
des majuscules et l'utilisateur
choisit, selon le type de travail le
mode qui convient : a a seront
prononces «A A MIN» ou «A
MAJ A» ; le premier mode
convient au Basic, riche en
majuscules, le second au
traitement de textes.
Quatre modes de
fonctionnement
1- Echo-clavier
Le mode le moins utilise car la
disposition des touches d'un
clavier est le plus simple a
acquerir pour un malvoyant.
Dans ce mode, apres avoir fait
PR£slot depuis le Basic (les
problemes commencent quand on
n'est pas en Basic...), la carte
prononce les touches appuyees :
«P6 eR I eN T6» par exemple.
Les affichages a l'ecran ne genere
pas de synthese.
La synthese se fait au rythme de
un caractere/seconde ; un
caractere survenant avant le delai
d'une seconde interrompt la
synthese du precedent.
2- Echo-ecran
Ce qui est affiche a l'ecran est
prononce. Bien sur, seuls les
acces standard a l'ecran sont
intercepted : print depuis le
Basic, jsr $fded en assembleur
par exemple. Les affichages par
gestion directe de la memoire
ecran du style sta $400, y sont
invisibles pour la cane. Ce mode
n'est d'ailleurs pas le plus utile ni
le plus confortable.
3- Editcur vocal
Le point fort de Valentine II : une
interruption par O-return et la
carte prend le pas sur le
programme. U est alors possible
de demander la lecture de l'ecran
(quelle que soit la methode
retenue pour l'affichage) aussi
bien en 40 qu'en 80 colonnes.
L'editeur est puissant, il
comprend les commandes
suivantes :
• d6placement du 'curseur
vocal' a l'aide des fleches, un
bip 6tant genera" a chaque
tentative de depassement des
limites ;
• positionnement en debut et
fin de ligne (les espaces en
fin de ligne ne comptent pas) ;
• positionnement en haut et en
bas de l'ecran ;
• positionnement au d£but du
mot suivant ;
• positionnement au debut du
mot precedent ;
• positionnement absolu : V02
H17 pour aller au 17eme
caractere de la 2eme ligne ;
• lecture d'un caractere ;
• lecture de l'ecran a partir du
curseur ;
• lecture d'une ligne ;
• lecture d'un mot ;
• epellation d'un mot.
La carte ne precise pas si un
caractere est en mode flash mais
indique le mode inverse : «b
inv», «e inv» par exemple.
Perdu au milieu de l'ecran, il
suffit de presser g pour que la
carte donne la position du curseur
vocal sous la forme de deux
chiffres (ligne, colonne). Nous
avons constate" une erreur
episodique dans les numeros de
ligne, l'ecran etant parfois
numerate a partir de 2.
On peut toujours stopper la
synthese, ouf ! certains ecrans
sont en effet bien remplis.
Trois modes de
prononciation
Le mode litteraire est celui retenu
par defaut : les ()§°*-&l. ■/=><?
et .' ne sont pas signales.
Mode detaille, tout est prononce
sauf ?.',-, et .
En mode epellation, rien n'est
oublie.
4-ParoIe compressee
Dans ce mode, d'une utilisation
plus specialisee, la carte prononce
des paroles pr£alablement
compressees et stockees en
fichiers. Le principe ressemble a
celui du programme Le Bavard
paru dans Pom's, qualite
acoustique incomparable, celle de
la carte etant alors parfaite. Ce
mode ouvre la porte aux
applications du type ordinateur a
bord des voitures ou repondeur
telephonique. Le fabricant
s'occupe de compresser les textes
pour utilisation avec la carte.
Mode d'emploi et
commandes
Le mode d'emploi (en traitement
Pom's n° 31
29
de texte) n'est pas tres precis sur
les syntaxes : faut-il un espace ?,
faut-il un point ? II est disponible
egalement en braille et sur
cassette. Les commandes choisies
pour l'editeur vocal sont
suffisamment mnemotechniques
pour ne pas recourir a la
documentation. II est certain
qu'un malvoyant ne connaissant
pas l'Apple ne pourra se
dispenser des cours de formation
de l'Association Valentin Haiiy
pour utiliser AppleWorks avec la
carte.
Dans la pratique
AppleWorks
Comme pour tous les
programmes, le probleme est
d'activer Valentine (NDLR : !)
par l'equivalent d'un pre. Pour
AppleWorks, pas de problemes,
on definit la carte comme etant
l'imprimante et le premier 6-H
declenche la copie d'ecran
salvatrice. L'editeur vocal remplit
alors fort bien son office ; avec
un peu d'habitude on doit
identifier rapidement un menu.
Dans le tableur, il est difficile de
ne pas se perdre au milieu de la
feuille de calcul, un peu de
virtuosi^ n'est pas superflue.
Avoir retrouve une faute a l'aide
de Valentine est une chose, mais
positionner le curseur du
traitement de textes pour effectuer
la modification. . . II faut reperer la
chalne de caracteres qui suit la
position a rechercher puis
demander a la fonction de
recherche la chaine voulue. Le
curseur est alors en principe a
l'endroit qui convient. Pas
simple.
La position courante d'ecriture est
a jour avec bien des programmes
($24, $25) : Valentine aurait pu
emettre un bip particulier lors du
passage du curseur vocal sur cette
position, c'etait une aide
possible.
ProCODE
Pas de probleme de fonction-
nement, mais comment activer la
carte ? II suffit de quitter par
ctrl-q, faire 2 ctrl-p si
Valentine est en slot 2, puis D92G
pour relancer ProCODE. reset
le relance egalement mais
deconnecte la carte.
Interpom's
Pas de souci, faire simplement
PR£2 avant -interpoms.
Assembleur BigMac
Malgre une petite perturbation de
l'affichage, BigMac est
compatible avec Valentine.
AppIeWriter
Nous n'avons pas trouve de
possibilite d'utilisation. Contrai-
rement aux indications de la
documentation, Valentine est
geree 'a la maniere' de la carte
Super Serie Apple et non
'comme'.
Dommage, si les registres data et
status etait les memes ($C089,
$C0 8 8), il serait possible au
moins d"'imprimer" le texte sur la
carte car AppIeWriter reconnait la
ssc.
Programmes Pascal
Nous n'avons aucune possibilite
d'utiliser Valentine avec le
langage Pascal. Memes causes,
memes effets, on ne peut pas
t) ransfSrer un fichier sur la
carte.
Sargon II
Les echecs Sargon ne seront pas
a la portee des malvoyants : le
plantage survient rapidement.
Assembleur
Sortir des caracteres sur la carte
en assembleur ne pose pas plus
de probleme qu'en Basic ; a noter
que la routine indiquee dans le
mode d'emploi 6tait incompatible
avec la carte dont nous avons
disposed (caracteres prononc6s
deux fois).
CP/M
Avant d'utiliser la carte, un patch
du CP/M (indique" dans la notice)
est necessaire ; ce patch devrait
etre livre sur une disquette pour
6viter a l'utilisateur final de
s'interroger sur l'assembleur
Z80. Le fonctionnement ne sera
pas total car CP/M intercepte le
caractere ctrl-p avant la cane
mais l'editeur vocal reste
op6rationnel.
Conclusion
Certainement une excellente carte
qui tranche totalement avec celle
proposee il y a un an et qui met la
micro-informatique Apple a la
portee des aveugles. II reste que
l'Association Valentin Haiiy sera
peut-etre la bonne source de
conseils en fonction de
l'application envisagee.
Le prix de la carte -environ
5 500,00 F TTC-, intervient
dans la decision d'achat mais il
n'est pas surestime en regard des
etudes investies.
Une carte a ete concue par un
utilisateur de Valentine pour la
doter de macros. Cette carte, peu
couteuse, s'insere dans un autre
slot et permet par exemple a une
seule touche de commander la
mise en editeur vocal, le
positionnement en bas de 1'dcran,
puis en fin de ligne, puis un mot
en arriere, puis la lecture du mot.
Ainsi, en cas de doute sur la
frappe, le dernier mot saisi sera
facilement prononce par
Valentine. Elle donne egalement
une fonction de recherche de
chaines.
Lorsque les yeux font defaut, on
peut penser a l'ecran tactile qui
remplace le moniteur : tres rapide
d'acces pour l'utilisateur, il
donne une image fidele de l'ecran
a l'aide de huit picots par
caractere (soit 256 combinaisons
possibles) disposes a la maniere
des points braille, le curseur etant
symbolise par les huit points ON.
II faut helas y consacrer le prix de
huit Valentines 11...
Ste Fcrma, 14 rue de l'abbe Canon,
75014 Paris.
Tel. : (1)45 43 14 79
30
Pom's n° 31
RITE560 permet
d'ecrire en mode
graphique sur un
Apple // {Ht, //c,
IlGS) muni d'au moins
128Ko ; il ferait double
emploi si le mode graphique
utilise etait l'habituelle
resolution de 280x192
points, mais le mode tres
haute resolution 560 x 192 a
ete adopte. L'ecriture
s'effectuera avec une chasse
proportionnelle : le m
occupera plus de place qu'un
i.
N'aviez vous jamais reve de faire
du wysiwig (What You See Is
What You Get : ce que vous
voyez est ce que vous obtenez)
sur un autre ordinateur que le
Mac?
Utilisation
L'appel de ce programme est
destine" prioritairement a des
programmes en assembleur. II
vous sera toujours possible
d'ecrire une interface avec
1' Applesoft, via quelques POKEs
ou l'ampersand par exemple.
Le protocole conceme 4 points :
• Le programme doit etre appele
par jsr ou call a l'adresse
CHROUT.
• La partie haute de l'adresse de
la chalne a editer doit etre
placed en chrouti+2, alors
que la partie basse le sera en
chrouti + 1. Les caracteres
composant la chaine doivent avoir
le bit 7 a 1, et se terminer par un
$8D.
• On peut pr6ciser la position
initiale de la chalne sur l'6cran
en plagant ses coordonnees
dans l'accumulateur (position
verticale de a 191), et dans les
registres d'index (position
horizontale de a 559). Enfin, il
faut mettre la retenue a 1 avant
d'appeler le programme.
Par exemple, pour se positionner
sur la lOOeme ligne et la 320eme
colonne, il suffit de faire :
LDA £100
LDX £64
LDY £1 ; 1*256+64=320
SEC
• L'espace entre les lettres peut
etre modifie a loisir ; par defaut,
deux points blancs sont intercales
entre chaque lettre. Pour modifier
cette valeur, il faut la placer a
l'adresse ESPACE+1.
Enfin, le programme write560
est utilisable indifferemment sous
ProDOS ou DOS 3.3. Par
ailleurs, son adaptation a Pascal
ne devrait pas poser de
problemes.
Fonctionnement
Le codage des lettres consiste a
les inverser puis les dessiner dans
une matrice de 7x8 points et enfin
de recoder le tout.
Par exemple pour un h :
7654322
8 • 01
7 • 01
6 • oi largeur4
5 ••• 07
4. . . . • 09
3. ..... • 09
2. . .-. .- 09
1 00
%pzay
pour un w :
7654321
8 00
7 00
6. . • . . . • 11
5. . • . . . • ll largeurS
4. .- 11
3. . 15
2. ." .'• IB
1 00
Le programme write560 . demo
est un programme de
demonstration qu'il suffit de
lancer par :
PR£ 3
BRUN WRITE560 . DEMO
suivi d'une instruction text
apres son execution.
Le source r. writes 6 o est stocks
sous forme d'un fichier TEXT au
format Merlin/BigMac sur la
disquette d'accompagnement de
ce numero. II est appele par le
pseudo-opcode put de cet
assembleur, aussi appele copy
sur d'autres assembleurs. Par
ailleurs, le source t. write560 .
demo illustre les modalites
d'appel.
a
Source
T.WRITE560
Assembleur Big Mac
HBAS = $26
PCL = SFA
TXTPAGB1 ' SC054
TXTPAGE2 = SC055
CHROUT
BCC CHROUT1
Pom's n° 31
31
STA ABS
STX ORDL
STY ORDH
CHR0UT1 LDA SFFFF
BEQ CHROUTFIN
CMP £S8D
BEQ RETURN
CMP LSAO
BCC AVANCE
CMP C$CO
BCC PONCTUA
CMP £SEO
BCC GRANDE
JMP PETITE
CHROUTFIN RTS
RETURN
LDA ABS
CLC
ADC £10
STA ABS
LDA £0
STA ORDL
STA ORDH
AVANCE
INC CHROUT1+1
BNE AVANCE1
INC CHROUT1 +2
AVANCE1 JMP CHROUT1
CHROUT6
PONCTUA
SEC
SBC
PHA
LDA
LSAO
L<PONCT
STA PCL
LDA OPONCT
STA PCL+1
PLA
TAY
LDA
STA
JMP
LGPONC, Y
EMPAT
CHROUT6
GRANDE
PETITE
SEC
SBC
PHA
LDA
STA
LDA
STA
PLA
TAY
LDA
STA
JMP
SEC
SBC
PHA
LDA
STA
LDA
STA
PLA
TAY
LDA
£SC0
£<MAJUS
PCL
£>MAJUS
PCL+1
LGMAJUS, Y
EMPAT
CHROUT6
£SE0
£<MINUS
PCL
£>M1NUS
PCL+1
LGMINUS, Y
STA EMPAT
TYA
ASL
ASL
ASL
CLC
ADC PCL
STA PCL
BCC CHROUT2
INC PCL+1
CHR0UT2
ESPACE
CHROUT3
CHROUT8
DP AW
DRAW1
DECALE
DRAW 5
LDA
STA
JSR
LDA
CLC
ADC
ADC
STA
BCC
INC
LDA
CMP
BNE
LDA
CMP
BCC
JMP
JMP
STA
LDA
TAX
LDA
STA
LDA
STA
JSR
LDY
JSR
STY
TXA
PHA
LDA
STA
LDA
LDX
BEQ
DEX
ASL
PHA
ASL
ROL
PLA
CPX
BNE
STA
LDA
LSR
TAY
BCS
STA
£8
LENGTH
DRAW
EMPA T
£2
ORDL
ORDL
CHROUT3
ORDH
ORDH
£2
CHROUT8
ORDL
£$2A
CHROUT8
RETURN
AVANCE
TXTPAGE1
ABS
ORDL
DGTL
ORDH
DGTH
DIV7
£0
GETX
ECCO
£0
COMPLEMENT
(PCL) , Y
RESTE
DRAW5
COMPLEMENT
£0
DECALE
DRAND1 +1
QUOTIENT
DRAW 2
TXTPAGE2
DRAND1 EOR
STA
STA
LDX
I NX
TXA
LSR
TAY
BCS
STA
DRAW 1
LDA
EOR
STA
STA
PLA
TAX
INX
CPX
BEQ
LDY
INY
CPY
BNE
DRAW 3 RTS
GETX
DIV7
DIV
CLD
LDA
STA
STA
STA
LDA
BNE
LDA
CMP
£$FF
(HBAS) , Y
TXTPAGE1
QUOTIENT
DRA/iA
TXTPAGE2
(HBAS) , Y
COMPLEMENT
(HBAS) , Y
TXTPAGE1
£192
DRAW3
ECCO
LENGTH
DRAW1
LDA VERTH, X
STA HBAS+1
LDA VERTL, X
STA HBAS
RTS
£0
MO
Ml
QUOTIENT
DGTH
DIV
DGTL
£ 7
BCS DIV
STA RESTE
RTS
DIVIN
DRAW2
LDA (HBAS) , Y
INC
QUOTIE
LDA
MO
CLC
ADC
£7
STA
MO
BCC
OVERFW
INC
Ml
LDA
Ml
CMP
DGTH
BNE
DIV
LDA
DGTL
CMP
MO
BCC
DIVIN
SEC
SBC
MO
CMP
£7
BCS
DIV
STA
RESTE
RTS
LDA
MO
SEC
SBC
DGTL
32
Pom's n°31
STA DIVID + l
LDA £7
SEC
DIVID SBC £SFF
CMP £ 7
BCS DIV
DEC QUOTIENT
STA RESTE
RTS
HEX
oooooooooooooooo
; ESP
HEX
m m n i m m nnm nn
Ul V ±U 1 VI Ul UUU 1 UU
■ 1
HEX
oooooooooooooooo
HFY
tic, A
or oocioa loonoi noo
UL.U £ u s. u / V£ <j£ l uuu
. r
, L
HEX
04 1 FOOOF J 4 0F0400
U 1 i C u J L/C. 1 '1 UC UHUU
. c
* ■?
HEX
Oil 10804071 Q7 AOf)
* %
rir,A
070000071 00 qi Ann
U£ U J U -J U£ 1 JV7l ouu
r &
nKnfinym nnnnnnno
U DU UU£ U I UUUUUUUU
HEX
04 7m 01 01 090400
Ul U£ U 1 Ul Ul U£U1UU
• I
' I
Ol OOO 4 040409m
Ul U^UH UHUH UZU 1 UU
. I
*■ I
HFY
iul,a
04 1 OF 04 OF 1 $0400
Vt J JUE,U*i UC- 1 J UHUU
• *
HEX
0004041 F04040000
UWl/lUlIi UHUHUUUU
• -J.
y
0000000 f,of>070i on
UUUUUUUUUUU£U1 U U
HEX
no nnn 00 jonooooon
U U U <J \J U U 1 UUUUUUUU
HEX
no n on nnn 000 10 inn
UUUUUUUUUUUJUJUU
HEX
001 00R040701 oonn
UU 1 U U O U t U £ Ui U U u u
' /
urv
nc a
nFi npnn
UC- 111 71 Jx Jli UE- U U
• n
, u
tic* A
07 n ~\0707n707n 70
U£ U JUt: U£ U£ U£U /UU
. 7
HEX
0E11100C02011F00
:2
HEX
1F10080C10110E00
;3
HEX
080C0A091F080800
;4
HEX
1FO1OF101011OE0O
;5
HEX
1C02010F11110EOO
;6
HEX
1F1 0080402020200
;7
HEX
0E11110E11110E00
:8
HEX
OE11111E10080700
: 9
HEX
0003030003030000
HEX
0000020002020100
HEX
0804020102040800
i <
HEX
0000070007000000
HEX
0102040804020100
;>
HEX
1E3330180C000C00
; ?
MAJUS
HEX 08100E101E111E00 ; a
HEX 181412111F111100 ;A
HEX 0F11110F11110F00 ;B
HEX 0E11010101110E00 ;C
HEX OF11111111110FOO ;D
HEX 1F01010F01011F00 ;E
HEX 1F01010F01010100 ;F
HEX OE11010119111E00 ; G
HEX 1111111F11111100 ;H
HEX 0702020202020700 ; I
HEX 1C08080808090600 ; J
HEX 1109050305091100 ; K
HEX 0101010101010FOO ; L
HEX 41635549H41U00 ;M
HEX 4143454951611100 ; N
HEX OE11111111110E00 ;0
HEX OF11110F01010100 ;P
HEX 0E1111111S091600 ;Q
HEX 0F11110F05091100 ;R
HEX 0E11010E10111C00 ; S
HEX 1F04040404040400 ; T
HEX 1111111111110E00 ;U
HEX 11111111110A0400 ;V
HEX 4141414955634100 ;»
HEX 11110A040A111100 ;X
HEX 1111110A04040400 ;Y
HEX 1F10080402011F00 ;Z
HEX 0205020000000000 ;"
HEX 00000E01010E0402 ; g
HEX OE01060906080700 ; §
HEX 040A110000000000
HEX OOOOOOOOOOOOOOOF ;_
MINUS
HEX 0102040000000000
HEX 000006080E090E00 ; a
HEX 0101010709090700 ;b
HEX OOOOOE0101010EOO ;c
HEX 0808080E09090EOO ;d
HEX 0000060907010EOO ;e
HEX 040A020207020200 ; f
HEX 00000E09090E0806 ;g
HEX 0101010709090900 ; h
HEX 0200030202020700 ; i
HEX 08000C0808080906 ; j
HEX 0101090503050900 ;k
HEX 0302020202020700 ; 1
HEX 00001B1515111100 ; m
HEX 0000070909090900 ; n
HEX 0000060909090600 ;o
HEX 0000070909070101 ; p
HEX OOOOOE09090E0808 ; q
HEX 00000D0301010100 ; r
HEX OOOOOE0106080700 ; s
HEX 02020F0202020COO ;t
HEX 00000909090D0B00 ;u
HEX 00001111110A0400 ; v
HEX 0000111115151B00 ; w
HEX 0000110A040A1100 ;x
HEX 000009090E080807 ;y
HEX 00001F0804021F00 ;z
HEX 080406090F010EOO ;e
HEX 0204001111191600 ; u
HEX 040806090F010E00 ; e
HEX 0500000000000000 ; "
HEX OFOFOFOFOFOFOFOF ;
• Tables pour le calcul de HBAS
VERTL HEX 0000000000000000
HEX 8080808080808080
HEX 0000000000000000
HEX 8080808080808080
HEX 0000000000000000
HEX 8080808080808080
HEX 0000000000000000
HEX 8080808080808080
HEX 2828282828282828
HEX A8A8A8A8A8A8A8A8
HEX 2828282828282828
HEX A8A8A8A8A8A8A8A8
HEX 2828282828282828
HEX A8A8A8A8A8A8A8A8
HEX 2828282828282828
HEX A8A8A8A8A8A8A8A8
HEX 5050505050505050
HEX DODODODODODODODO
HEX 5050505050505050
HEX DODODODODODODODO
HEX 5050505050505050
HEX DODODODODODODODO
HEX 5050505050505050
HEX DODODODODODODODO
VERTH HEX 2024282C3034383C
HEX 2024282C3034383C
HEX 2125292D3135393D
HEX 2125292D3135393D
HEX 22262A2E32363A3E
HEX 22262A2E32363A3E
HEX 23272B2F33373B3F
HEX 23272B2F33373B3F
HEX 2024282C3034383C
HEX 2024282C3034383C
HEX 2125292D3135393D
HEX 2125292D3135393D
HEX 22262A2E32363A3E
HEX 22262A2E32363A3E
HEX 23272B2F33373B3F
HEX 23272B2F33373B3F
HEX 2024282C3034383C
HEX 2024282C3034383C
HEX 2125292D3135393D
HEX 2125292D3135393D
HEX 22262A2E32363A3E
HEX 22262A2E32363A3E
HEX 23272B2F33373B3F
HEX 23272B2F33373B3F
* Largeur de toutes les lettres
LGPONC DFB 5,1,3,5,5,5,5,3,3,
3,5,5,3,3,2,5,5
DFB 3,5,5,5,5,5,5,5,5,
2, 2, 4, 3, 4, 6, 5
LGMAJUS DFB 5,5,5,5,5,5,5,5,5,
3, 5, 5, 4, 7, 7, 5
DFB 5,5,5,5,5,5,5,7,5,5,
5,3, 7,3,5,5
LGM1NUS DFB 5, 4, 4, 4, 4, 4, 4, 4, 4, 3,
4, 4,3,5, 4, 4
DFB 4,4,4,4,4,4,4,5,5,5,
4, 5,5,5,5,5,5
MO DS 1
Ml DS 1
QUOTIENT DS 1
RESTE DFB
DGTL DS 1
DGTH DS 1
COMPLEMENT DS 1
EMPAT DS 1
ORDL DS 1
ORDH DS 1
ABS DS 1
LENGTH DS 1
ECCO DFB
lie
l/e+
lie
llgs
DOS 3.3
ProDOS
Pom's n°31
Source T. WRITE560.DEMO
Assembleur Merlin/BigMac
INY
SET80COL
TXTCLR
MIXCLR
HIRES
SETAN3
CLRHR1
SETHR2
SETHR3
LST OFF
ORG $1000
$COOD
$C050
$C052
$C057
$C05E
$C0B2
$C0B5
$C0B7
JMP DEBUT
EFF6
EFF7
* lit le fichier principal
PUT NRITE560
* Passe en mode graphique 560*192
DEBUT
STA
STA
STA
STA
STA
STA
STA
STA
STA
SET80COL
MIXCLR
HIRES
TXTCLR
SETAN3
CLRHR1
SETHR2
SETHR3
TXTPAGE1
EFF8
Efface et affiche un fond gris
EFF1
EFF2
EFF3
EFF4
LDX
LDY
JSR
TYA
PHA
LSR
TAY
BCS
STA
LDA
STA
STA
PLA
TAY
INY
TYA
PHA
LSR
TAY
BCS
STA
LDA
STA
STA
PLA
TAY
£0
£0
GETX
EFFIN
CPY
£80
BNE
EFF2
Of A
f 1 QO
tSLQ
Lt t IN
LDY
to
JSR
GETX
TYA
PHA
LSR
TAY
BCS
EFF7
STA
TXTPAGEz
LDA
CUULkiUR
STA
( HBAS ) , Y
STA
I X 1 PAGE 1
FLA
lAl
INY
1 1 A
FHA
LSR
TAY
BCS
EFF8
STA
1XTPAGEZ
LDA
/>Ar7T T7TTT")
CUULb.UK
C V 71
o 1A
[HBAb) , X
o 1A
T 1 V"TD 71 /T 7
r> t n
FLA
1AI
INI
CPY
£80
INX
<— £ -A
r 1 qo
BNE
EFF1
les
messages
EFF3
TXTPAGE2
COULEUR
(HBAS) , Y
TXTPAGE1
EFF4
TXTPAGE2
COULEUR+1
(HBAS) , Y
TXTPAGE1
LDA £<MESSAGEO
LDY £>MESSAGE0
STA CHR0UT1+1
STY CHROUT1+2
LDA £2
STA ESPACE+1
LDA £20
LDX £10
LDY £0
SEC
JSR CHROUT
LDA £<MESSAGE1
LDY £>MESSAGE1
STA CHR0UT1+1
STY CHROUT 1+2
LDA £5
STA ESPACE+1
CLC
JSR CHROUT
LDA £<MESSAGE2
34
Pom's n°31
LDY £>MESSAGE2
STA CHR0VT1+1
STY CHROUT1+2
LDA £0
STA ESPACE+1
CLC
JSR CHROUT
LDA £<MESSAGE3
LDY £>MESSAGE3
STA CHROUT 1+1
STY CHROUT 1+2
LDA £2
STA ESPACE+1
CLC
JSR CHROUT
RTS
COULEUR DFB 0,
MESSAGEO ASC
MESSAGE1 ASC
ASC
MESSAGE2 ASC
MESSAGE3 ASC
ASC
ASC
ASC
HEX
"Demonstration d' ecriture avec espacement normal"8D00
"Demo. avec 5 points pour chaque espace entre"
les lettres"9D00
"Demo. sans espaces entre les lettres"8D00
"D6mo. de tons les caracteres que 1 'on peut obtenir"
" a partir du clavier"8D
"DEMO : ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnop'
"qrstuvwxyzl234567890&e ' (§e!ca) -*$ ■*&*%£, ; :=?./+<>"
00
Recapitulation
WRITE560.DEMO
Apres avoir saisice
code sous moniteur,
vous le sauvegarderez
par:
BSAVE WRITE560.DEMO,
A$1000,L$8AB
1000: 4C
91
16
90
09
8D
8E
16
1008-.8E
8C
16
8C
8D
16
AD
FF
1010-.FF
FO
13
C9
8D
FO
10
C9
1018:A0
90
ID
C9
CO
90
24
C9
1020 :E0
90
37
4C
71
10
60
AD
1028 :8E
16
18
69
OA
8D
8E
16
1030-.A9
00
8D
8C
16
8D
8D
16
1038: EE
OF
10
DO
03
EE
10
10
1040: 4C
OE
10
38
E9
AO
48
A9
1048 :A2
85
FA
A9
11
85
FB
68
1050: A8
B9
22
16
8D
8B
16
4C
1058:85
10
38
E9
CO
48
A9
A2
1060:85
FA
A9
12
85
FB
68
A8
1068-.B9
43
16
8D
8B
16
4C
85
1070:10
38
E9
EO
48 A9 A2
85
1078-.FA
A9
13
85
FB
68 A8
B9
1080:63
16
8D
8B
16
98
OA
OA
1088: OA
18
65
FA
85
FA
90
02
1090: E6
FB
A9
08
8D
8F
16
20
1098 :BF
10
AD
8B
16
18
69
02
10A0-.6D
8C
16
8D
8C
16
90
03
10A8-.EE
8D
16
AD
8D
16
C9
02
10B0-.D0
OA
AD
8C
16
C9
2A
90
10B8-.03
4C
27
10
4C
38
10
8D
10C0-.54
CO
AD
8E
16
AA
AD
8C
10C8-.16
80
88
16
AD
8D
16
80
1000:89
16
20
3F
11
AO
00
20
10D8-.34
11
8C
90
16
8A
48
A9
10E0-.00
8D
8A
16
Bl
FA
AE
87
10E8-.16 FO OC CA OA 48 OA 2E
10F0:8A 16 68 EO 00 DO F4 8D
10F8-.07 11 AD 86 16 4A A8 BO
1100:03 8D 55 CO Bl 26 49 FF
1108:91 26 8D 54 CO AE 86 16
1110:E8 8A 4A A8 BO 03 8D 55
11 18: CO Bl 26 40 8A 16 91 26
1120:80 54 CO 68 AA E8 EO CO
1128 :F0 09 AC 90 16 C8 CC 8F
1130:16 DO A4 60 BD 62 15 85
1138:27 BD A2 14 85 26 60 D8
1140: A9 00 8D 84 16 80 85 16
1148: 8D 86 16 AD 89 16 DO OB
1150-.AD 88 16 C9 07 BO 04 8D
1158:87 16 60 EE 86 16 AD 84
1160:16 18 69 07 8D 84 1 6 90
1168:03 EE 85 16 AD 85 16 CD
11 70:89 16 DO E7 AD 88 16 CD
1178:84 16 90 OC 38 ED 84 16
1180-.C9 07 BO 07 80 87 16 60
11 88: AD 84 16 38 ED 88 16 80
1190:96 11 A9 07 38 E9 FF C9
1198:07 BO CO CE 86 16 80 87
11A0-.16 60 00 00 00 00 00 00
11A8-.00 00 01 01 01 01 01 00
11B0:01 00 05 05 05 00 00 00
11B8:00 00 OC 02 02 07 02 02
11C0-.1D 00 04 IE 05 OE 14 OF
1108:04 00 03 13 08 04 02 19
11D0:18 00 02 05 05 02 15 09
11D8-.16 00 06 06 02 01 00 00
11E0-.00 00 04 02 01 01 01 02
11E8-.04 00 01 02 04 04 04 02
11F0-.01 00 04 15 OE 04 OE 15
11F8:04 00 00 04 04 IF 04 04
1200:00 00 00 00 00 06 06 02
1208:01 00 00 00 00 07 00 00
1210:00 00 00 00 00 00 00 03
1218:03 00 00 10 08 04 02 01
1220:00 00 OE 11 19 15 13 11
1228: OE 00 02 03 02 02 02 02
1230:07 00 OE 11 10 OC 02 01
1238-.1F 00 IF 10 08 OC 10 11
1240: OE 00 08 OC OA 09 IF 08
1248:08 00 IF 01 OF 10 10 11
1250:0E 00 1C 02 01 OF 11 11
1258: OE 00 IF 10 08 04 02 02
1260:02 00 OE 11 11 OE 11 11
1268 :0E 00 OE 11 11 IE 10 08
1270:07 00 00 03 03 00 03 03
1278:00 00 00 00 02 00 02 02
1280:01 00 08 04 02 01 02 04
1288:08 00 00 00 07 00 07 00
1290:00 00 01 02 04 08 04 02
1298:01 00 IE 33 30 18 OC 00
12A0-.0C 00 08 10 OE 10 IE 11
12A8-.1E 00 18 14 12 11 IF 11
'12B0-.11 00 OF 11 11 OF 11 11
12B8-.0F 00 OE 11 01 01 01 11
12C0-.0E 00 OF 11 11 11 11 11
■12C8-.0F 00 IF 01 01 OF 01 01
12D0-.1F 00 IF 01 01 OF 01 01
1208:01 00 OE 11 01 01 19 11
12E0-.1E 00 11 11 11 IF 11 11
12E8-.11 00 07 02 02 02 02 02
12F0-.07 00 1C 08 08 08 08 09
12F8-.06 00 11 09 05 03 05 09
1300:11 00 01 01 01 01 01 01
1308: OF 00 41 63 55 49 41 41
1310:41 00 41 43 45 49 51 61
1318:41 00 OE 11 11 11 11 11
1320: OE 00 OF 11 11 OF 01 01
1328:01 00 OE 11 11 11 15 09
1330:16 00 OF 11 11 OF 05 09
1338:11 00 OE 11 01 OE 10 11
1340-.1C 00 IF 04 04 04 04 04
1348:04 00 11 11 11 11 11 11
1350-.0E 00 11 11 11 11 11 OA
1358:04 00 41 41 41 49 55 63
1360:41 00 11 11 OA 04 OA 11
Pom's n°31
35
1368:11
00
11
11
11
OA
04
04
1370:04
00
IF
10
08
04
02
01
1378:1F
00
02
05
02
00
00
00
1380:00
00
00
00
OE
01
01
OE
1388:04
02
OE
01
06
09
06
08
1390:07
00
04
OA
11
00
00
00
1398:00
00
00
00
00
00
00
00
13A0:00
OF
01
02
04
00
00
00
13A8:00
00
00
00
06
08
OE
09
13B0:0E
00
01
01
01
07
09
09
13B8-.07
00
00
00
OE
01
01
01
13CO:0E
00
08
08
08
OE
09
09
13C8-.0E
00
00
00
06
09
07
01
13D0.-0E
00
04
OA
02
02
07
02
1308:0?
00
00
OE
09
09
OE
13E0-.08
06
01
01
01
07
09
09
13E8-.09
00
02
00
03
02
02
02
UFO: 07
00
08
00
OC
08
08
08
13F8-.09
06
01
01
09
05
03
05
1400:09
00
03
02
02
02
02
02
1408:07
00
00
00
IB
15
15
11
1410:11
00
00
00
07
09
09
09
1418:09
00
00
00
06
09
09
09
1420:06
00
00
00
07
09
09
07
1428:01
01
00
00
OE
09
09
OE
1430:08
08
00
00
OD
03
01
01
1438:01
00
00
00
OE
01
06
08
1440:07
00
02
02
OF
02
02
02
1448: OC
00
00
00
09
09
09
OD
1450: OB
00
00
00
11
11
11
OA
1458:04
00
00
00
11
11
15
15
1460: IB
00
00
00
OA
04
OA-
1468:11
00
00
00
09
09
OE
08
14 70:08
07
00
00
IF
08
04
02
1478-.1F
00
08
04
06
09
OF
01
1480-.0E
00
02
04
00
11
11
19
1488:16
00
04
08
06
09
OF
01
1490: OF.
00
Ob
00
00
00
00
00
1498:00
00
OF
OF
OF
OF
OF
OF
14A0:0F
OF
00
00
00
00
00
00
1 4A8: 00
00
80
80
80
80
80
80
14B0-.80
80
00
00
00
00
00
00
14B8:00
00
80
80
80
80
80
80
14C0-.80
80
00
00
00
00
00
00
14C8-.00
00
80
80
80
80
80
80
14D0-.80
80
00
00
00
00
00
00
1408:00
00
80
80
80
80
80
80
14E0-.80
80
28
28
28
28
28
28
14E8-.28
28
A8
A8
A8
A8
A8
A8
14F0:A8
A8
28
28
28
28
28
28
14F8-.28
28
A8
A8
A8
A8
A8
AS
1500-.A8
A8
28
28
28
28
28
28
1508:28
28
A8
A8
A8
A8
A8
A8
1510-.A8
A8
28
28
28
28
28
28
1518:28
28
A8
A8
A8
A8
A8
A8
1520-.A8
A8
50
50
50
50
bo
50
1528:50
oo
DC
DO
DO
DO
DO
DO
1530: DO
DO
50
50
50
50
50
50
1538:50
50
DO
DO
DO
DO
DO
DO
1540:00
DO
50
50
50
50
50
50
1548:50
50
DO
DO
DO
DO
DO
DO
1550-.D0
DO
50
50
50
50
50
50
1558:50
50
DO
DO
DO
DO
DO
DO
1560: DO
DO
2.0
24
28
2C
30
34
1568:38
3C
20
24
28
2C
30
34
1570:38
3C
2.1
25
29
2D
31
35
1578:39
3D
21
25
29
2D
31
35
1580:39
3D
22
26
2A
2E
32
36
1588: 3A
3E
22
26
2A
2F.
32
36
1590: 3A
3E
23
27
2B
2F
33
37
1598: 3B
3F
23
27
2B
2F
33
37
15A0.-3B
3F
20
24
28
2C
30
34
15A8-.38
3C
20
24
28
2C
30
34
1580:38
3C
21
25
2.9
2D
31
35
15B8-.39
3D
21
25
29
2D
31
35
15C0-.39
3D
22
26
2A
2E
32
36
15C8:3A
3E
22
26
2A
2.E
32
36
15D0-.3A
3E
2.3
27
2B
2F
33
37
15D8-.3B
3F
23
27
2B
2F
33
37
15E0-.3B
3F
20
24
28
2C
30
34
15E8-.38
3C
20
24
28
2C
30
34
15F0:38
3C
21
25
29
2D
3:
35
15F8:39
3D
21
25
29
2D
31
35
1600:39
3D
22
26
2A
2E
32
36
1608: 3 A
3E
22
26
2A
2E
32
36
1610: 3A
3E
23
27
2B
2F
33
37
1618: 3B
3F
23
27
2B
2F
33
3 7
1620-.3B
3F
05
01
03
05
05
05
1628:05
03
03
03
05
05
03
03
1630:02
05
05
03
05
05
05
05
1638:05
05
05
05
02
02
04
03
1640:04
06
05
05
05
05
05
05
1648:05
05
05
05
03
05
05
04
1650:07
07
05
05
05
05
05
05
1658:05
05
07
05
05
05
03
07
1660:03
05
05
05
04
04
04
04
1668:04
04
04
04
03
04
04
03
1670:05
04
04
04
04
04
04
04
1678:04
04
05
05
05
04
05
05
1680:05
05
05
05
CO
00
00
00
1688:00
00
00
00
00
00
00
1690:00
8D
OD
CO
8D
52
CO
8D
1698:57
CO
80
50
CO
8D
5E
CO
16A0-.8D
B2
CO
8D
B5
CO
80
B7
16A8:C0
8D
54
CO
A2
00
AO
00
16B0-.20
34
11
98
48
4A
A8
BO
1688:03
8D
55
CO
AD
60
1 7
91
1600:26
8D
54
CO
68
A8
C8
98
16C8-.48
4A
A8
BO
03
8D
55
CO
16D0:AD
6E
17
91
26
8D
54
CO
1608:68
A8
C8
CO
50
DO
D4
E3
16EQ-.E0
CO
FO
36
AO
00
20
34
16E8-.11
98
48
4A
A8
BO
03
8D
16F0-.55
CO
AD
60
1 7
91
26
8D
16F8-.54
CO
68
A8
C8
98
48
4A
1700: A8
BO
03
80
55
CO
AD
6D
1708:17
91
26
8D
54
CO
68
A8
1 710 :C8
CO
50
DO
04
E8
EO
CO
1718-.D0
94
A9
6F
AO
1 7
8D
OF
1720:10
8C
10
10
A9
02
8D
9F
1 728:10
A9
14
A2
OA
AO
00
38
1730:20
03
10
A9
AO
AO
17
80
17 38: OF
10
8C
10
10
A9
05
80
1740-.9F
10
18
20
03
10
A9
DA
1748: AO
17
80
OF
10
8C
1
10
1750-.A9
00
8D
9F
10
18
20
03
1 758:10 A9
00
AO
18
80
OF
10
1760-.8C
10
10
A9
02
80
9F
10
1768:18
20
03
1
60
00
00
C4
1770:FB
ED
EF
EE
F3
F4
F2
El
1 778-.F4
E9
EF
EE
AO
E4
A7
FB
1780 :E3
F2
E9
F4
F5
F2
E5
AO
1788: El
F6
E5
E3
AO
E5
F3
FO
1790: El
E3
E5
ED
E5
EE
F4
AO
1798: EE
EF
F2
ED
El
EC
8D
00
1 7A0-.C4
FB
ED
EF
A F.
AO
El
F6
17A8:E5
E3
AO
B5
AO
FO
EF
E9
1 7B0:EE
F4
F3
AO
FO
EF
F5
F2
1 7B8:A0
E3
E8
El
Fl
F5
E5
AO
17C0-.E5
F3
FO
El
F.3
E5
AO
E5
1 7C8:EE
F4
F2
E5
AO
EC
E5
F3
17D0:A0
EC
E5
F4
F4
F2
E5
F3
1 7D8: 8D
00
C4
FB
ED
EF
AE
AO
17E0-.F3
El
EE
F3
AO
E5
F3
FO
17E8-.E1
E3
E5
F3
AO
E5
EE
F4
1 7F0-.F2
E5
AO
EC
E5
F3
AO
EC
1 7F8-.E5
F4
F4
F2
E5
F3
8D
00
1800 :C4
FB
ED
EF
AE
AO
E4
E5
1808-.A0
F4
EF
F5
F3
AO
EC
E5
1810 :F3
AO
E3
K !
F2
El
E3
F4
1818-.FD
F2
E5
F3
AO
Fl
F5
E5
1820-.A0
EC
A7
EF
EE
AO
FO
E5
1828-.F5
F4
AO
EF
E2
F4
E5
EE
1830-.E9
F2
AO
CO
AO
FO
El
F2
1838-.F4
E9
F2
AO
E4
F5
AO
E3
1840: EC
El
F6
E9
E5
F2
8D
C4
1848: C5
CD
CF AO
BA
AO
CI
C2
1850-.C3
C4
C5
C6
C7
C8
C9
CA
1858-.CB
CC
CD
CE
CF
DO
Dl
D2
1860:03
04
D5
06
D7
D8
09
DA
1868-.A0
El
E2
E3
E4
E5
E6
E7
1870 :E8
E9
EA
EB
EC
ED
EE
EF
1878-.F0
Fl
F2
F3
F4
F5
F6
F7
1880 :F8
F9
FA
Bl
B2
B3
B4
B5
1888:B6
B7
B8
B9
RO
A6
c d
a 7
1890-.A8
DO
FO
Al
DC
CO
A9
AD
1898-.DE
A4
FE
AA
FC
EO
A 5
A3
18A0-.AC
BB
BA
BO
BF
AE
AF
AB
18A8-.BC BE 00
I TPom's
TPcm's, programme du numero
precedent vous cause peut-etre des
soucis sur votre Apple lie. Trois
octets meritent un changement pour
vous tirer d'embarras. Faire :
BLOAD T.POMS
CALL -151
204C: 4C 55 20
BSAVE T.POMS,A$2000,L4033
Un couper/coller un peu violent nous a
conduit a un humour involontaire :
i'article precise que la carte Super
Serie Apple est necessaire sur le He.
36
Pom's n° 31
Un nouveau produit Pom's :
otre micro-serveur fonc-
tionne et vous avez
decide de realiser
quelques belles pages de
menus a I'exemple des
serveurs professionnels.
Muni des normes
Videotex et de votre
traitement de texte
favori, vous vous etes
attele a I'ouvrage...
ATe! Quelle besogne de
benedictin !
Le programme CP/M edite par
Pom's simplifie grandement la
realisation de telles pages .
Le programme EDITEUR
Les editeurs Videotex peuvent se
subdiviser en deux categories :
• les editeurs statiques
• les editeurs dynamiques.
Pour les differencier, observez les
mouvements du curseur. S'il balaye
laborieusement I'ecran comme le spot d'une
image TV, de gauche a droite et de haut en
bas, alors il s'agit probablement d'un
editeur statique. Au contraire, s'il se
promene allegrement dans toutes les
directions, alors il s'agit d'un editeur
dynamique. Ce type d'editeur permet un
effet d'animation, un peu comme le peintre
dessine sur sa toile. II est possible de
simuler par exemple le deplacement d'un
petit obiet sur I'ecran. Notre editeur est de
type dynamique.
II esi ecrit en Turbo-Pascal (CP'M) et
fonctionne sur Apple He et sur Apple ][+
avec une carte 80 colonnes et une carte
Z80.
On peut I'utiliser avec un ou deux lecteurs
de disquettes, avec pour inconvenient si
vous n'avez qu'un seul lecteur que les images
seront sauvegardees sur la disquette
programme.
Utilisation, possibility
Le deplacement du curseur est commande
par les touches flechees (gauche, droite,
bas, haut). Sur I'Apple ][+, les
deplacements vers le haut et vers le bas
s'obtiennent par CTRL-K et CTRL-J. A
tout moment, la position du curseur,
horizontale et verticale, est mise a jour sur
le tableau de bord.
Une fois le curseur en place, que peut-on y
ecrire ? Du texte ou du graphique, c'est
I'objet de I'une de commandes clavier.
II faut alors fixer des attributs qui
different selon le mode .
Mode texte
- la couleur du caractere (Noir, Bleu,
Rouge, Magenta, Vert, Cyan, Jaune,
Blanc) ;
- la couleur du fond ;
- la fixite ou le clignotement ;
- I'inversion de fond, encore appelee
positif/negatif ;
- le soulignement ;
- la taille du caractere :
• taille normale
• taille double
• hauteur et largeur double.
Mode graphique
- la couleur du caractere ;
- la couleur du fond ;
- le clignotement ;
- la disjonction.
Lors du deplacement du curseur, les
attributs courants peuvent ere preserves
ou detruits, c'est au choix.
Presque tous les caracteres d'un clavier
AZERTY et d'un clavier Minitel sont
accessibles. Ceci n'est possible qu'en
attribuant a une meme touche plusieurs
significations selon :
- sa position, 'shiftee' ou non 'shiftee' ;
- son rangement dans les caracteres
accentues ou dans les caracteres
speciaux.
On peut obtenir :
& e § e 9 a A 1/4 1/2 % u £ 3/4 # | \ ][ _ •
°>/E0
A tout moment on peut simuler I'envoi de
I'image sur le Minitel pour controle.
Les corrections sont possibles de deux
manieres :
• caractere par caractere, a I'aide de la
fleche gauche ou de la touche Del.
Attention cependant a certains
attributs qui ne sont pas modifies
(couleur de fond et soulignage) ;
• par effacement (Ctrl-X) du dernier
bloc entre avant le dernier
positionnement du curseur.
Enfin - charme de notre editeur dynamique
- on peut inclure dans le fichier des
commandes ou des caracteres
non-standard :
- un effacement d'ecran entre deux
images successr/es ;
- une sonnerie pour prevenir par exemple
d'une erreur ;
- un caractere ou une sequence de
caracteres ASCII indisponibles au
clavier. Les codes ASCII de 32 a 127
sont autorises. Ceci permet
theoriquement de disposer de tous les
effets Videotex a condition d'en
connaltre la norme.
Un meme fichier peut regrouper une
succession d'images separees par des
effacements d'ecran ou par des
effacements partiels donnant un effet
d'animation.
Inversement, un fichier-image sur disquette
peut etre rappele en memoire et visualise
sur I'ecran.
Editeur Videotex :
200,00 F TTC Franco,
'sources' compris.
Bon de commande page 75
Pom's n°31
37
On trouve plus Mement
avec 10 ans
Certaines evolutions sont aussi
im portantes que des revolutions.
Le plus difficile quand on debute,
c'est de debuter. Car toutes les
propositions d'emploi demandent une
certaine experience. Chercher un
emploi est done un probleme
insoluble. Pas pour 1'Apple IlGS, il
debute avec 10 ans d'experience.
Comment? C'est tres simple,
il a une architecture double : un
nouvel ordinateur puissant traitant
le graphique et le son, entoure
un Apple II classique et miniaturise.
Il profite ainsi de 10 ans de
developpement de logiciels et
d'experience. Un grand progres realise
en partie grace au microprocesseur
65C816, un 16 bits descendant du
65C02 de 1'Apple II. L'Apple lies fonc-
tionne a deux vitesses : 2,8 MHz en
mode natif ; en mode emulation
(e'est-a-dire lorsque vous utilisez un
programme de votre ancien Apple II.)
vous avez le choix entre 1 MHz et
2,8 MHz.
Debuter connu , c'est 16.000 pro positions
d'emploi.
Avec 1'IWM (Integrated Woz
Machine*) 1'Apple Hgs peut recevoir
indifferemment des lecteurs de
disquettes 3,5 pouces 800 Ko ou des
lecteurs 5,25 pouces 140 Ko, ou les
faire cohabiter, ce qui contribue a vous
faire profiter de la plus grande
bibliotheque de logiciels du monde. Le
nombre de 16.000 logiciels etant estimatif
car la seule chose qu'un Apple IIgs soit
incapable de calculer, c'est le nombre
d'emplois qu'ii est capable de tenir,
Avec le nouveau systeme
d'exploitation ProDOS, 1'Apple IIgs
permet la hierarchisation des fichiers
et des catalogues a la maniere de
* Li t»immJRt a Slnr W'nzwjk. m fenjjreur Jt la Sonn,
Appli ti er/attur Jt 1'Applt II.
*4 Fichier Edition Outi
un emploi quand on debute
d experience.
Jtils Couleur Font Rnime
Macintosh, et la connexion dc
nouveaux periphcriques.
G cts , cela veut dire ora phi que et son.
L'imagination debrid^e des
deveiopneurs suffira-t-elle pour utiliser
Ies 4096 nuances de couleurs
disponibles? C'est probable. Ce qui est
certain, c'est qu'une resolution de 640
points sur 200 lignes pour 4 couleurs,
320 points sur 200 lignes pour 16
couleurs va donner beaucoup de relief
a certaines demonstrations. Si vous
n'en croyez pas vos yeux, vous n'en
croirez pas vos oreilles non plus. Le
coprocesseur "son" choisi par
Apple a deja une brillante carriere
derriere lui puisqu'il est employe par
les plus grands synthetiseurs du
marche. C'est I'ENSONIQ, capable de
generer 16 voix,
et il ne lui manque meme pas la parole.
Les relations necessaires pour reussir.
En 10 annees, I'AppIe II a eu tout
le loisir de se faire d'excellentes relations
de travail, imprimante, modem, disque
dur, que l'Apple lies continuera a
entretenir et developper ; celui-ci pent
desormais etre connecte au reseau
AppleTalk et gerer la LaserWriter
reservee jusqu'a present a Macintosh. II
peut aussi recevoir le disque dur SCSI.
L'Apple Dgs possede 7 connecteurs
d' extension permettant, a I'aide d'une
multitude de cartes d'interfaces, de le
relier a tons les types d'unites peripheriques.
Acheter un Apple, c'est entrer dans
le Club Apple pour echanger des informa-
tions, acceder au support technique par
telephone 7 jours sur 7, ou aux services
telematiques du Club.
Apple presente l'Apple Hgs.
c -
riter + est un
logiciel de traite-
ment de texte de
« 2 eme g £ n £ ra _
tion", propose par
A.C.I., qui nous a
deja apporte 4eme
dimension.
Comme la plupart des logiciels
proteges, Writer + est copiable et
peut etre installe sur disque dur,
sachant que, lors du demarrage,
la disquette originale devra etre
temporairement introduite (dans
ce cas particulier, de fagon
aleatoire).
II peut tourner sur Macintosh
512Ko ou sur MacPlus, mais
n'essaye/. pas de le faire
fonctionner sur un "antique"
Macintosh 128Ko. En fait, nous
conseillons vivement le MacPlus.
Qu'en est-il des nouveaux
modeles de Macintosh ? L'Echo
des Apple (N° 5, special
Macintosh), classe Writer + dans
les compatibles Macintosh SE.
Writer + possede toutes les
fonctions classiques de traitement
de textes, avec des avantages et
des facilites par rapport a
d'autres, avec aussi des
inconvenients. Notre analyse ne
sera pas approfondie sur ces
fonctions classiques, mais nous
insisterons sur tout ce qui fait que
Writer + se presente comme un
representant de ce que nous
avons appele la 2 eme generation.
tpfuCvp-pe, Matfdm
En effet, Writer + possede d'une
part des fonctions sophistiquees
de traitement de texte, d'autre part
un certain nombre de fonctions de
mise en page faisant que, si on ne
desire pas une mise en page trop
complexe, ce seul logiciel permet
des realisations interessantes en
micro-edition.
Writer + est multi-fenetres, le
nombre de fenetres n'etant pas
limite, et on peut ouvrir a l'ecran
plusieurs documents ou
exemplaires du meme document,
de fagon a pratiquer des
Copier/Coller entre fenetres. Le
document voulu peut etre active a
partir du menu Fichier
(contrairement a une habitude qui
est de creer un menu special
Ecran, comme dans Excel par
exemple).
Writer + autorise la redefinition
de "raccourcis" au clavier,
propres a l'utilisateur. Si cette
solution est seduisante, elle est
aussi dangereuse. En effet, rien
n'interdit (bien que l'utilisateur en
soit avise) d'utiliser pour une
commande Writer + un raccourci
classiquement utilise dans les
commandes habituelles, comme
par exemple 3€C ou 9€X.
Un document peut, en largeur,
occuper presque toute la place
disponible dans le format de
papier choisi. Par exemple, en
format A4, la regie est graduee
jusqu'a 20 centimetres.
Les fonctions de
traitement de textes
classiques
Writer +, comme la plupart de ses
concurrents, propose au ddmar-
rage une regie sur laquelle
peuvent etre positionn6s
margeurs, marqueur d'indenta-
tion et tabulateurs.
Les differentes options de choix
(polices de caracteres, tailles et
styles) sont accessibles par les
menus Typo et Style.
Certaines commodites sont
offertes, pour le deplacement "a
la main" de paragraphes ou
d'images, ou encore pour les
recherches et remplacements qui
peuvent porter non seulement sur
des mots ou groupes de mots,
mais sur les caracteres, tailles et
styles.
On peut, en une seule op6ration,
modifier simultan6ment les
caracteres, leur taille et leur style.
On peut aussi effectuer un
basculement majuscules/
minuscules. Plusieurs options
sont propos6es, et le maniement
en est parfois delicat, selon qu'on
unifie totalement le transfer! ou
qu'on procede differemment
pour, par exemple, les
majuscules apres un point.
Un traitement statistique associe
permet a tout moment de savoir
quelle est la dimension du
document en cours de creation,
ou d'une selection de celui-ci,
avec diverses informations sur les
signes, mots et lignes.
Fonctions avancees de
traitement de textes
Comme c'est le cas dans la
plupart des nouveaux logiciels de
traitement de texte, Writer + offre
40
Pom's n°31
une panoplie d'outUsfacilitateurs.
La cesure automatique perniet de
couper un mot en fin de ligne
selon les regies de la syntaxe
frangaise. Deux commodites sont
offertes :
- forcer la cdsure par un trait
d'union ;
- a l'inverse, refuser la cesure,
par exemple pour eviter de
couper en deux "Macintosh".
Un glossaire tres puissant est
associe au logiciel. Les
expressions du glossaire, qui ne
sont theoriquement pas limitees
en taille, sont designees par un
jeu d'abr^viations libres.
Le texte peut etre dispose en
colonnes. Le nombre de colonnes
n'est limitd que par la largeur du
papier, une colonne ne pouvant
pas avoir moins de 1 cm de
largeur (la documentation dit 1 ,5
environ...), et les colonnes sont
forcement d'egales largeurs. La
mise en place de ces colonnes est
particulierement aisee, ainsi que
la modification de leur nombre. II
est possible de creer un "saut de
colonne" force, au meme titre
qu'un saut de page. L'equilibrage
du remplissage des colonnes est
automatique.
Les colonnes constituent aussi un
moyen detourne de placer cote a
cote du texte et des illustrations,
lesquelles peuvent provenir
classiquement d'un album. Nous
verrons plus loin une autre
solution.
Un systeme de cadres permet de
realiser, dans des styles varies,
l'entourage total ou partiel de
paragraphes, colonnes, en-tetes et
pieds de page, zone de notes,
page entiere, etc.
La gestion des notes de bas de
page est assez sophistiquee, avec
numerotation automatique et
remise en page lors des
modifications du texte.
Fonctions "insolites"
Les calcuh
Grande originalitd, Writer +
possede des fonctions de calcul
associees, dont le maniement
n'est pas exagerement complexe,
et qui offrent des possibilites
int6ressantes (beaucoup plus
vastes que celles offertes par
More). On passe par la creation
de cellules, en organisant ainsi un
petit tableur sur mesure dans le
texte (une fonction d'interpre-
tation permet aussi d'introduire
des formules de calcul
directement dans le texte, en
demandant a Writer + de faire le
reste)
Nous avons particulierement
apprecie les possibilites de travail
avec l'horloge du Macintosh.
Les fichiers
Un petit gestion naire de fichier,
simple et facile a mettre en
ceuvre, permet de faciliter les
operations de courrier person-
nalise. II ne faut pas y voir plus,
et croire qu'on va pouvoir se
passer d'un outil plus
perfectionne.
Le lecteur ne sera pas surpris
d'apprendre que ce fichier est
compatible avec 4 imc
dimension...
La gestion a" images
La gestion d'images est une
grande originalite de Writer +,
qui peut etre tres utile pour ceux
qui manipulent couramment de
nombreuses images : par
exemple, tenue a jour d'un
catalogue illustre, representation
de molecules, etudes de CAO,
etc.
Des planches pouvant comporter
1 a 12 images peuvent etre creees
simplement, a partir d'illustra-
tions type MacPaint ou
MacDraw. Un fichier d'images
peut comporter au maximum 10
planches, mais le nombre de ces
fichiers n'est pas limite. La
sequence d'operations a
accomplir est particulierement
simple :
- selectionner la planche ;
- selectionner l'image ;
- coller sur le texte.
A noter qu'il est ensuite possible
de transformer l'image par
deplacement ou changement de
dimensions.
La gestion de paragraphes
Elle ressemble a la gestion
d'images, fonctionnant par
creation de fichiers de
paragraphes comportant au
maximum 10 themes, avec 12
paragraphes par theme. Chaque
paragraphe peut comprendre
jusqu'a 32 000 caracteres. Ceci
venant en plus du glossaire, et le
nombre de fichiers de
paragraphes n'etant pas limite.
La gestion de tableaux
C'est une autre solution, plus
souple et plus complete que la
mise en colonnes, pour
juxtaposer textes et illustrations et
realiser des tableaux ou sont
tracees lignes et colonnes.
Fonctions
de mise en page
La creation de structures
Writer + propose une fonction
particulierement puissante : la
hierarchisation d'un texte en un
certain nombre de niveaux :
chapitres, paragraphes, etc.
La mise en niveaux se fait a partir
d'une fenetre de dialogue. Elle est
toujours descendante et consiste
a :
- definir les niveaux
eux-memes ;
- definir pour chacun une
typographic et une indentation ;
- deTinir, si on le souhaite, une
numerotation (6 possibilites
sont offertes).
Ensuite, il suffira, soit a priori,
soit a posteriori, d'indiquer dans
la fenetre de dialogue que le texte
sur lequel on travaille est de tel
niveau pour que, automatique-
ment, soient affectes les elements
predetermines pour ce niveau.
De plus, la numerotation est
automatiquement remise a jour
(c'est parfois un peu long) pour
tout le document, en cas de
suppression ou d'ajout d'un
element ayant le statut choisi.
Pom's n° 31
41
La creation d'un sommaire
Une fonction particuliere permet
de creer un sommaire a partir des
niveaux definis, avec indication
des numeros de page.
La creation d'un index
On peut definir a priori une liste
de mots qui devront faire l'objet
d'un index alphabetique annexe
au document.
La liste etant creee, on invoque la
fonction Index qui produit une
liste d'index comportant pour
chaque mot deTini :
- la liste des numeros des pages
ou il figure, separes par des
virgules ;
- une inscription de ce numero
en italique et en gras si le mot
figure plusieurs fois dans la
page.
La verification de la mise
en page
II est possible de faire apparaitre a
l'ecran une page entiere, pour
controler la mise en page. On
peut egalement afficher a l'ecran
plusieurs pages (uniquement pour
voir l'allure generate, car bien
entendu aucun texte n'est lisible
dans ce cas).
Apprendre Writer +
De la lecture de ce qui precede,
on peut deduire aisement que
l'apprentissage de Writer + n'est
pas immediat. La documentation,
claire, est parfois un peu trop
succincte. II manque un index
alphabetique, de sorte qu'il est
parfois bien difficile d'y retrouver
ce qu'on veut. Ce d'autant plus
que la table des matieres est
elle-meme embryonnaire. Voici
pourtant deux fonctions qu'offre
Writer +. . .
Nous conseillons a ceux qui
abordent Writer + de ne pas
chercher a r6aliser du premier
coup un apprentissage complet.
C'est d'autant plus ais6 qu'il est
assez facile "d'ignorer" comple-
tement certains themes, et de les
aborder seulement quand les
manipulations de base sont bien
acquises.
Par exemple, on peut ne jamais
cr6er de hi^rarchie et de
sommaire. Mais on apprendra
utilement a s'en servir quand le
besoin s'en fera sentir.
On peut aussi, pour commencer a
placer des images, utiliser
d'abord la technique classique du
Copier/Coller, et apprendre
ultdrieurement a utiliser les
fichiers d'images.
Le ddbutant sera aide - dans cette
tache par les exercices progressifs
proposes dans la documentation.
En revanche, on peut ddplorer
l'absence d'un fichier
d'assistance en ligne.
Avantages,
Faiblesses
L'avantage principal de Writer +,
c'est sa grande richesse
fonctionnelle. Bien entendu, tous
les elements de cette richesse ne
seront pas utiles a tous.
Certains n'utiliseront jamais les
fichiers d'images, l'emploi de
l'Album etant suffisant pour
couvrir leurs besoins. A
l'inverse, d'autres choisiront
Writer + a cause de cette fonction
particuliere.
Le fichier permettant le courrier
personnalise ne sera utilisd. . . que
si on fait justement du courrier
personnalise ! Le glossaire sera
suffisant pour certains, alors que
d'autres auront un recours
intensif aux fichiers de
paragraphes.
Au chapitre des faiblesses, on
peut noter une surabondance de
menus, obligeant d'ailleurs a des
abreviations non classiques
comme Fich ou Styl. II n'est pas
toujours aise de memoriser les
fonctions qui entrent dans
chacun. Et ceci n'empeche pas le
recours frequent (trop frequent a
notre gout) a des fenetres de
dialogue additionnelles.
On peut s'interroger sur la
v6ritable utilit6 des fonctions de
calcul. Writer + aurait-il des
ambitions d'int6gr6 qui n'ose pas
dire son nom ? Avec, d6ja, un
mini gestionnaire de fichier. . .
La gestion de la marge gauche
est... curieuse. Impossible de se
bloquer completement a gauche.
Sans compter quelques
irregularites de fonctionnement a
l'impression.
Le r^affichage d'un 6cran
complet, par exemple apres
modification de la typographic,
est un peu long. Cela n'a
toutefois rien de rhedibitoire.
Avantage ou inconv6nient ? La
possibilitd de definir des
raccourcis propres a l'utilisateur
est tres sdduisante. La possibilit6,
par cette m6thode, de redefinir les
raccourcis des menus de base
nous semble toutefois
extremement dangereuse.
Nous avons aussi vu quelques
"bombes", pas trop quand meme
pour un logiciel de venue recente.
Beaucoup, si Ton considere que
cette venue rdcente a eu lieu avec
un retard de pres d'un an sur les
premieres annonces. . .
Conclusion
D'abord, un bel effort pour un
produit frangais de valeur
Internationale. Writer + est un des
traitements de texte les plus
puissants du marche\ sinon le
plus puissant, avec, pour seul
vrai rival, Word 3 de Microsoft.
De nombreux utilisateurs de
micro-6dition simple pourront se
contenter de Writer +, sans faire
appel a un logiciel specialise" de
mise en page.
La vraie question est la suivante :
vaut-il mieux un int6gr6 rapide,
divisant les fonctions pour traiter
chacune d'elles de fagon plus
simple (mais avec, en corollaire,
une moins grande faciliti pour
entre-croiser les diverses
fonctions), ou un logiciel unique,
mettant en permanence a
disposition de l'utilisateur toutes
les fonctions dont il peut avoir
besoin (avec, en corollaire, un
maniement de l'ensemble un peu
plus complexe) ? Writer +
propose une r^ponse du second
type, a l'utilisateur de juger.
42
Pom's n°31
JuCien Thomas
orsque Ton ecrit un
programme qui sera
execute a l'aide d'un
interpreteur Basic, il
est preferable d'opter pour la
concision afin de rendre le
logiciel le plus efficace possible.
Ceci encourage la multiplication
des instructions sur une meme
ligne mais conduit generalement a
une parfaite illisibilite\ Avec un
compilateur, et a moins d'etre
adepte d'une certaine forme
d'6soterisme, les programmes
'tasses' ne presentent pas
d'interet puisque la position de
l'instruction par rapport au code
'source' n'influe pas sur la
vitesse de deroulement du
logiciel. De plus, pendant la
compilation, les messages
d'erreur ne concernent que la
premiere instruction incorrecte
dans la ligne ; s'il y a trois
instructions en faute, les deux
demieres ne seront pas signalees.
Si l'ecriture d'un programme
'aere' est sans probleme, il n'en
va pas de meme lorsqu'il s'agit
de rendre lisible un programme
cree dans l'optique d'une
utilisation interpretee, les
modifications manuelles se
soldant g6neralement par des
'bugs' difficilement localisables.
Le but du petit programme - sans
pretention - ici liste est done de
faire automatiquement ce travail
fastidieux. II traite les fichiers
Basic en format TEXT (issus
d'un editeur de texte comme
'Edit', du Basic Microsoft avec
l'option 'texte seul', etc.) et
g6nere un fichier decompacte, lui
aussi en format TEXT, baptise
d'un nom correspondant a celui
du fichier original auquel on
ajoute le suffixe ".M" pour
'Modifie'.
Le temps n6cessaire au traitement
ne peut etre formule avec exacti-
tude puisqu'il peut varier dans
des proportions importantes selon
le style d'6criture du programme
de depart ; cependant, et pour se
donner une idee, on peut prendre
comme exemple le programme
"Minitel" - particulierement dense
- du numero 27 de Pom's.
"Minitel" est 'eclairci'en :
• 14 minutes avec le programme
"Decompacteur" interprete ;
• 5 minutes avec le programme
"Decompacteur" compile (la
disquette d'accompagnement
de ce numero contient les deux
versions, la version compilee
6tant, bien sur, une application
'double-cliquable').
• Segment d'un programme Basic :
S97 : FRAMEPOLY VARPTR ( D ( N ) ) : IF 1=0 OR 1=7 OR 1=9 THEN TEXTMODE
1 : TEXTFACE 8 ELSE TEXTMODE 3 : TEXTFACE
MOVETO D(N+2)+9,D(N+l)+ll: PRINT A$(I):IF 1=0 THEN TEXTFACE : MO
VETO D(2)+9,D(1)+23:PRINT "Fin"
N=N+2 7: NEXT: FRAMEPOLY VARPTR ( M ( )): FRAMEROUNDRECT VARPTR(N(0)
) ,4,4: TEXTMODE 1 : TEXTFACE C:MOVETO 22 7 , 3 1 : PRINT :PUT
(152, 14) , K,PSET:PUT(177, 14) , J, PSET : IF A3=l AND DE THEN PUT {
195, 14) . :.,PSET
IF DT THEN PAINTROUNDRECT VARP TR ( P ( ) ) , 4 , 4 : TIMER ON
• Le meme segment apres traitement :
S97:
FRAMEPOLY VARPTR (D(N))
IF 1=0 OR 1=7 OR 1=9 THEN TEXTMODE 1 : TEXTFACE 8 ELSE TEXTMODE
3: TEXTFACE
MOVETO D (N+2) +9, D (N + l) +11
PRINT A$ (I )
IF 1 = THEN TEXTFACE 8:MOVETO D ( 2 ) + 9 , D ( 1 ) + 23 : PRINT "Fin"
N=N+27
NEXT
FRAMEPOLY VARPTR (M(0))
FRAMEROUNDRECT VARP TR ( N ( ) ) , 4 , 4
TEXTMODE 1
TEXTFACE
MOVETO 2 2 7,31
PRINT "'
PUT (152, 14) , K, PSET
PUT (1 77, 14) , J, PSET
IF A3 I AND DE THEN PUT (195, 14), L, PSET
IF DT THEN PAINTROUNDRECT VARPTR ( P ( )), 4 , 4 : TIMER ON
Programme 'Decompacteur'
DATA AND, ABS , ALL, APPEND, ASC, AS, ATN, BASE, B
EEP, BREAK, BUTTON
DATA BACKPAT, CALL, CDBL, CHAIN, CHR$, CINT, CL
EAR, CLOSE, CLS
DATA COMMON, CONT, COS, CSNG, CVD, CVI, CVS, CIR
CLE,CSRLIN,CVSBCD
DATA CVDBCD, DATA, DATE$, DEFINT, DEFSNG, DEFD
BL, DEFSTR, DEF, DELETE
DATA DIM, DIALOG, EQV, EDIT, ELSE, END, EOF, ERA
SE, ERL, ERROR, ERR, EXP
DATA EXIT, ERASERECT, ERASEOVAL, ERASEROUNDR
ECT, ERASEARC
DATA ERASEPOLY, FIELD, FILES, FIX, FN, FOR, FRE
, FRAMERECT, FILLRECT
DATA FRAMEOVAL, FILLOVAL, FRAMEROUNDRECT, FI
LLROUNDRECT
DATA FRAMEARC, FILLARC, FRAMEPOLY, FILLPOLY,
Pom's n°31
43
GET, GOSUB, GOTO
DATA GETPEN, HEX$, HIDECURSOR, HIDEPEN, IMP, I
F, INKEY$, INPUT, INSTR
DATA INT, INITCURSOR, INVERTRECT, INVERTOVAL
, INVERTROUNDRECT
DATA INVERTARC, INVERTPOLY, KILL, LEFT, LEN, L
ET, LINE, LIST, LLIST, LOAD
DATA LOC, LOF, LOG, LPOS, LPRINT, LSET, LOOPY, L
OCATE, LBOUND, LIBRARY
DATA LINETO, MOD, MERGE, MID$ , MKD$ , MKI$ , MKS$
, MOUSE, MENU
DATA MKSBCD$ , MKDBCD$ , MOVETO, MOVE, NAME, NEW
, NEXT, NOT, OR, OCT$
DATA ON, OPEN, OPTION, OUTPUT, OFF, OBSCURECUR
SOR, PEEK, POKE, POS
DATA PRINT, PUT, POINT, PRESET, PSET, PENSIZE,
PENMODE , PENPAT
DATA PENNORMAL, PAINTRECT, PAINTOVAL, PAINTR
OUNDRECT, PAINTARC
DATA PTAB, PAINTPOLY, PICTURE, RANDOMIZE, REA
D, REM, RENUM, RESTORE
DATA RESUME, RETURN , RIGHT$ , RND, RSET, RUN, RE
SET, SAVE, SGN, SIN, SPACE$
DATA SPC, SQR, STEP, STOP,STR, STRINGS , SWAP , S
YSTEM, SUB, STATIC, SOUND
DATA SHARED, SCROLL, SETCURSOR, SHOWCURSOR, S
HOWPEN, TAB, TAN, THEN
DATA TIME, TO, TRON, TROFF, TIMER, TEXTFONT, TE
XTFACE, TEXTMODE, TEXTSIZE
DATA USING, USR, UBOUND, UCASES , VAL, VARPTR, W
AIT, WEND, WHILE, WIDTH
DATA WRITE, WINDOW, WAVE, XOR, CASE, ENDIF, IGN
ORE, INCLUDE, PAGE, SELECT
DATA =,!,%,#
DEFINT A-Z
DIM Mots .Cle$ (221)
TEXTFONT 4
TEXTSIZE 9
WIDTH 80
Retour . Chariot$=CHR$ (13)
Delimiteur$=CHR$ (34)
CLOSE
FOR lndex=0 TO 221
READ Mots .Cle$ (Index)
NEXT
Debut :
Fichier$=FILES$ (1, "TEXT")
IF Fichier$="" THEN CLOSE : END
OPEN FichierS FOR INPUT AS 1
OPEN Fi ch ier $ + " . M " FOR OUTPUT AS 2
Boucle . :
Drapeau .Delimiteur=0
Chaine$=" "
Boucle . 1 :
IF EOF(l) THEN CLOSE : GOTO Debut
Caractere$=INPUT$ (1,1)
IF Caractere$=Delimiteur$ THEN Chaine$=Ch
aine$+Caractere$ : IF Drapeau . Delimit eu
r THEN Drapeau. Delimiteur=0 :GOTO Bou
STRUCTUREXPERT
La solution pour programmer de maniere
structuree en MSBASIC™ et ZBASIC™.
STRUCTUREXPERT™ vous permet de
disposer d'un ensemble d'analyses qui
peuvent etre visualisees (fenetres
"scrollables"), sauvees separemenl sur
fichiers, ou imprimees :
. Arborescence complete (descendante
et ascendante) des appels GOSUB et
CALL.
. Listes triees sur plusieurs types de
criteres des GOSUB et des CALL.
. Statistiques : frequence d'appel de
chaque routine.
. Detection d'erreurs logiques (boucles
non controlees, recursivite illegale,
labels et routines non utilises).
STRUCTUREXPERT™ 495 F TTC + 20 F de port
Paiement par CB ou cheques adresses a
Q.S.I. -149, rue Oberkampf - 75011 PARIS
Tel. : (1)42 49 37 95
cle.l ELSE Drapeau. Delimiteur=-1 : GOT
O Boucle. 1
IF NOT Drapeau .Delimiteur THEN IF Caract
ere$=":" THEN Verification
IF Caractere$=Retour .Chariots THEN Drapea
u . Delimiteur=0 : PRINT! 2 , ChaineS : PRINT
Chaine$:GOTO Boucle.
Chaine$=Chaine$+Caractere$ :GOTO Boucle. 1
Verification :
PRINT#2, ChaineS; :PRINT Chaine$;
IF INSTR (ChaineS, "IF ")=0 THEN GOSUB Sp
:GOTO Boucle.
PRINT#2, " : "; : PRINT
Boucle. 2:
IF EOF(l) THEN CLOSE : GOTO Debut
Caractere$=INPUT$ (1,1)
IF Caractere$=Retour .ChariotS THEN PRINT
#2, "" :PRINT:GOTO Boucle.
PRINT#2, CaractereS; : PRINT Caractere$; : GO
TO Boucle. 2
Sp:
lndex=0
Boucle . Sp :
IF INSTR(Chaine$, Mots. Cle$ (Index) ) THEN
PRINT#2, " " : PRINT: RETURN
Index=Index+l
IF Index=222 THEN PRINT#2 ,":": PRINT
: RETURN
GOTO Boucle. Sp
44
Pom's n° 31
Disquette
Macintosh
Pom's
n° 31
Vous y trouverez une nouvelle version -
compilee - du programme Minitel publie
dans le numero 27 de Pom's. Cette version
est autonome : il s'agit d'une application
'double-cliquable' ; les fichiers 'Minitel/ 1',
'Minitel/2' et 'Basic Runtime' ne sont plus
necessaires. Beaucoup plus rapide aussi : de
3 a 10 fois selon les fonctions utilisees.
Enfin, notre programme est desormais
compatible HFS ; les utilisateurs de
Macintosh Plus et Macintosh SE vont enfin
pouvoir utiliser largement leurs dossiers
Le nouveau systeme - 4.0 - et le nouveau
Finder - la version 5.4 - sont aussi sur la
disquette 31. Le nouveau systeme
d' exploitation est accompagne de nouvelles
version des accessoires Recherche de
Fichiers, Selecteur d'impr imantes et
Tableau de bord. II comporte aussi de
nombreuses ameliorations moins visibles
(nouvelles icones...) ou absolument
invisibles sans desassembleur (routines
modifiees ou reecrites). Le 'Finder' a aussi
eu droit a quelques ameliorations : un
article 'eteindre' sous Particle
'redemarrer'; un article 'ranger la fenetre'
qui devient 'aligner la selection' lorsqu'il y
en a une ; une corbeille qui se gonfle
lorsque quelque chose est dedans ; des
fenetres d'informations repensees, etc....
Et puis, comme d'habitude, les fichiers,
sources et programmes listes dans le cahier
Macintosh de ce numero 31 de Pom's.
Recherche de fichiers
<=d Fichiers JLB
Rechercher :
F1-1.0
MINITELj
D Coble Mac+/Minitel
D ioran Minitel
CD Minitel 27
□ Minitel /1.T
D Minitel/2.T
Creele: Jeu Jan 22 1987; 10:16
Modifie 1« : Jeu Mai 21 1987; 17:29
Taille : 5879 oetets ;
6K fur to disque
€3 Minitel 27
Si Dossier Basic
<=d Fichiers JLB
Tableau de bord
m
Frapp* cUvier
Mi.
2
Fond de 1'ecran
Clio/iotement
des articles
o o®o
Hon 1 2 3
Cliqnotement du
point d'insertion
m
o ® o
Lent Rapide
Heur*
15:40:15
Ql2h (S)24h
Date
2.07.67
Memoir**
cache
Oui Non
Volume
Corbeille
Pom's n°31
45
Main Qohtc
-d=tl-
ans le numero 22 de
Pom's, on pouvait
trouver plusieurs astu-
ces qui permettaient
une reduction impor-
tant^ du fichier 'Systeme', ceci a
fin de gagner de la place sur les
disquettes dites de demarrage.
Un de ces 'trues' consistait en la
suppression de tous les
accessoires de bureau sauf un ; le
'Finder' ne supporterait pas
qu'on les retire tous. Puisqu'il
faut en laisser un dans le
systeme, autant que celui-ci soit
un accessoire 'minimum' :
MinAcc occupe seulement 232
octets.
II serait possible de faire encore
plus petit, mais rien ne serait
alors visible sur l'ecran.
a
Fichier Exec 'MinAcc.Job'
Asm MinAcc. Asm Exec Edit
Link MinAcc.Link Finder Edit
Fichier 'MinAcc.Link'
1
/Resources
MinAcc
/output Fichier 'MinAcc'
/Type 'DFIL' 'DMOV
S
Source 'MinAcc.Asm'
; Montre une fenetre sans litre
; avec un petit rond dedans dont
; le pointeur est place" dans le
; champ WindowPic de la fenetre.
RESOURCE 'DRVR' 27 'MinAcc'
; PREL1MIN AIRES
; INCLUDES et EQUATES
INCLUDE SysEqu.D
INCLUDE ToolEqu.D
INCLUDE Traps.Txt
; MOTS D'ENTREE
Dcrou
; Comportement. uniquement reponse
; (obligatoire) aux controles, pas
; de periode, evenements de mise a
; jour (64) et mDown (2), pas de
;menu
DC.W $0400
DC.W
DC.W S0040
DC.W
; e'eurfs vers les Routines
DC.W digoradur-Derou
DC.W OrnDone-Derou
DC.W OrnCtl-Derou
DC.W OrnDone-Dcrou
DC.W klozadur-Derou
; OUVERTURE
digoradur
MOVEM.L A1-A4,-(SP)
MOVE.L A1,A4
; sauvegarde du GrafPtr de
; i application en cours
CLR.L
MOVE.L
_GetPort
TST.L
BNE
-(SP)
SP,-(SP)
dCtlWindow(A4)
prencstrameus
; Si Von n'a pas deja une fenetre,
; il faut en fabriquer une :
CLR.L
-(SP)
CLR.L
-(SP)
PEA
gwerenn
CLR.L
-(SP)
CLR.W
-(SP)
MOVE.W
#18 / -(SP)
MOVE.L
#-l,-(SP)
MOVE
#S0100,-(SP)
CLR.L
-(SP)
_NewWindow
MOVE.L
(SP)+,A0
MOVE.L
AO,
dCtlWindow(A4)
MOVE.W
dCtlRefNum(A4),
WindowKind(AO)
; ROND
MOVEM.L A1-A4,-(SP)
MOVE.L dCtlWindow(A4),
-(SP)
_SetPort
MOVE.L dCtlWindow(A4),
-(SP)
CLR.L -(SP)
PEA vue
_OpenPicture
_SetWindowPic
PEA q
_FrameOval
_ClosePicture
MOVEM.L (SP)+,A1-A4
; Si Von a deja une fenetre
prenestramcus
distro
_SetPort
MOVEM.L (SP)+,A1-A4
OrnDone
MOVEQ
RTS
#0,D0
; FERMETURE
klozadur
MOVEM.L A1-A4,-(SP)
MOVE.L A1,A4
; mime procedure
; qu'a I'ouverture :
CLR.L -(SP)
MOVE.L SP,-(SP)
_GetPort
MOVE.L dCtlWindow(A4),
-(SP)
CLR.L dCtlWindow(A4)
_DisposWindow
BRA.Sdistro
; CONTROLE
OrnCtl
MOVEQ
MOVE.L
RTS
#0,D0
jIODone,-(SP)
; DONNEES
gwerenn DC.W 40,1,60,21
q DC.W 2,2,18,18
vue DC.W 0,0,20,20
END
46
Pom's n°31
Kino(201)
Principes de fonctionnement
Kino est une application qui permet de faire defiler a
l'ecran les images d'un album de type usuel ou de
type "Multi-Scrap". Les images sont
automatiquement centrees et s'affichent sur un fond
qui peut etre modifie.
Main ^oficc
Avant usage, Kino doit etre configure. Pour cela,
un 6diteur de ressources est necessaire, par
exemple ResEdit.
A l'aide de ResEdit, ouvrir la ressource de Kino
intitulee :
STR# "noms" ID = 171
Les albums d'un seul de ces deux types sont
considered comme des documents de Kino. Le finder
lance done Kino lorsque Ton clique deux fois sur
l'icone d'un album du type adequat.
Lorsqu'on lance directement Kino, cette application
cherche a ouvrir un album par defaut, ayant l'un
quelconque des deux types ci-dessus. Le nom de cet
album peut etre choisi a l'avance, lors de la
configuration de Kino (voir le paragraphe
'Configuration de Kino').
La duree d'affichage des images peut egalement etre
fixee a l'avance. Elle peut varier de quelques
dixiemes de secondes a plus d'un an.
En sortie. Kino peut lancer une application
quelconque, dont le nom peut egalement etre choisi
lors de la configuration.
Configuration de Kino
1] Album a ouvrir par defaut
et application a lancer
* File Edit
Kino(IOOI)
BNDL
CODE
FREF
ICN-
mscr
PAT
STR-
STR#s from KinoOOOl
STR- "noms" ID = 171
STR* noms- ID - 171 from Kino(IOOI)
numStrings
*****
The string
*****
diapos
-Q album par defau
The string MacPaint < — ( application a lance
Cette ressource contient le nom de 1'album que
Kino cherchera a ouvrir dans le cas d'un lancement
direct, et le nom de l'application a lancer lors de la
sortie de Kino. A l'aide de ResEdit, vous pouvez
modifier librement ces noms, qui sont initialement
"diapos" et "MacPaint".
Lorsque le nom de l'application a lancer est celui de
Kino, Kino se relance lui-meme et refait defiler les
images de "diapos".
2] Duree d'affichage de chaque image
et 'bip'
Le nom de Kino ne doit comporter aucune
parenthese, ou alors etre de la forme "mot(n)" ou
mot est une suite de caracteres sans parenthese, et n
un nombre compris entre et 7F FF FF FF en
hexadecimal, soit 2 147 483 647 en decimal. Ce
nombre est la dur6e d'affichage des images en
tierces. Par exemple, si le nom de Kino est
"Kino(600)", chaque image restera affich^e 10
secondes.
En fait, la duree d'affichage ne peut etre inferieure
aux quelques dixiemes de seconde qui sont
necessaires pour collecter l'image sur le disque. La
duree maximale est de 414 jours.
Si la duree d'affichage est un nombre impair de
tierces, un bip se fait entendre a l'apparition de
chaque image.
3] Albums reconnus comme
documents de Kino
File Edit
DeskT
finder
Kino
NanoF
Dress
File
Tgpe
Kino
UPPL
Creator
-xz-
Pom's n°31
47
4
File Edit
labo
|iSiiHiili4iiiiiiii4iWjjiiii
!tjw|ti4iwimMH«a{Mi
! De
Kino
f1
I Ki
BNDL
BNDLs from Kino
I Ne
i pr
! Re
CODE
FREF
ICN*
BNDL ID = 128
I BNDL ID
- 128 from Kino S
MAC!
mscr
PAT
OwnerName
UIHVZ
o inner II)
*
Pour fixer le type des albums reconnus comme
documents de Kino, il faut remplacer, dans les
informations sur Kino et dans le 'bundle' de Kino,
la sequence des 4 caracteres WXYZ ci-dessus par
la sequence adequate qui est MACS pour les
albums de type usuel, et mscr pour les albums de
type Multi-Scrap.
Pour acceder a ces chames de caracteres, il est
necessaire d'utiliser l'editeur de ressources, que
nous supposerons etre ResEdit. Pour intervenir
sur les informations sur Kino, selectionner le nom
de cette application dans la liste des applications, et
choisir la rubrique adequate du menu du fichier.
Pour intervenir sur le 'bundle', ouvrir Kino, puis
sa ressource de type BNDL et d'ID 128.
II est dgalement possible de changer le type et le
createur des albums.
4] Fond de l'ecran
Pour modifier le fond sur lequel s'affiche les
images presentees par Kino, il suffit de modifier
avec un editeur de ressource la ressource de type
'PAT ' de Kino. II est bien entendu possible de
choisir un fond blanc.
Installation et exploitation
de Kino
Une fois Kino configure, son bon fonctionnement
est obtenu en le plagant sur une disquette de
demarrage. Dans le cas d'un disque formate HFS,
les albums a ouvrir par Kino doivent etre places
dans le meme dossier que Kino.
Celui qui doit etre ouvert lors du lancement direct
de Kino doit avoir le nom figurant dans la
ressource STR# ID 171. Si ce nom ne correspond
pas a un album, ou si l'album ayant ce nom ne
contient pas d'images, l'execution de Kino
s'acheve imm^diatement.
Si Kino n'est pas place sur la disquette de
demarrage, il ne peut etre lance en cliquant deux
fois sur l'icone d'un album.
Apres lancement, Kino fait defiler les images de
l'album choisi, ou celles de l'album par defaut.
Pour etre efficaces, les actions decrites ci-dessous
doivent intervenir quelques dixiemes de seconde
apres l'apparition d'une image a l'ecran. Kino
collecte en effet une image sur le disque aussitot
apres avoir affiche la pr£c£dente.
Pour arreter sur une image, presser le bouton de la
souris.
Pour passer a l'image suivante avant que la duree
d'affichage soit ^coulee, appuyer sur le bouton de
la souris et le relacher, ou presser la touche de
tabulation. Pour revenir a l'image pr6c6dente,
presser la touche d'effacement.
Pour sortir de Kino, deux solutions sont possibles :
• presser la touche F, ce qui lance le finder ;
• presser la touche E, ce qui lance, si elle a ete
plac6e convenablement sur le disque,
l'application ayant le nom figurant dans la
ressource STR# ID 171 , par exemple MacPaint.
Si Kino ne trouve pas cette application, le Finder
est lance.
En l'absence d'intervention, apres avoir affiche la
demiere image, Kino cherche a lancer l'application
choisie, et, s'il ne la trouve pas, retourne au finder.
N.D.L.R. : l'application ResEdit se trouve sur la
disquette Pom's Mac G. Un autre iditeur de
ressources - REdit - est disponible sur la disquette
d'accompagnement du num&ro 24 de Pom's.
Source de I'Application 'Kino'
* nnnnnnnnnaa
* • Startup •
* annnnnannnn
* Succession d'images a l'ecran
*
* Installation d'un Graf Port pour desiner
* sur l'ecran entier
* On quitte apres un certain delai ou par
* pression sur le bouton de la souris.
*
A2
: adresse du SMAP
*
A3
: PicHandle
*
A4
: handle de la liste des
noms
*
DO
: ID de 1' image
*
D3
: rang de l'image dans 1'
album
*
D4
: nombre d'images dans 1'
album
*
D5
: delai
*
D6
: date de changement
*nnn PRELIMINAIRES nnaannnnnDnnnnnnnaannnnna
* INCLUDES
include MacTraps.D ; .TRAP
48
Pom's n° 31
include
include
include
ToolEqu.D
QuickEqu . D
mABcro .Txt
equates du ToolBox
equates de QuickDraw
celebres macros
* preparatifs
moveA.L ITopMapHndl , AO
moveA.L (AO) , AO
* EQUATES
CurApName
equ
$910
moveA.L A0,A1
_HLock
ParenthOuv
equ
$28
moveA.L (AO) ,A2
ParenthFerm
equ
$29
addA.W 24(A2),A2
abID
equ
171
* —
- presence du SMAP
ppID
equ
-3276
3
/presence du SMAP ?
HollDegwez
equ
$0000FFFF
move.L #'5MAP',D
mButDwnEvt
equ
1
;bouton en bas
BSR RECHTYPE
keyDwnEvt
equ
3
;touche en bas
bmi.S @10
touchE
equ
14
;N° de touche
; verification de l'ID
touchF
equ
3
;N° de touche
move.W 6 (AO), DO
touchTab
equ
48
; touche de tabul
moveA.L A2,A0
touchBac
equ
51
; touche de Backs
addA.W DO, AO
DelDef
equ
100
; delai par def.
move.W (AO), DO
HautEc
equ
342
bne.S @10
LargEc
equ
512
bra.S @20
LargCoin
equ
50
; ovale du...
@10
emp .W, #1
HautCoin
equ
30
;...rect entourage
_Sy sBoep
LongPtr
equ
80
;long. pointeur
611
emp .W,#l
AdNom
equ
18
;ecart du nom
_Sy sBoep
fnfErr
equ
-43
;fichier introu.
bra.W EXIT
; handle -> AO
; sauvegarde
;adresse -> A2
;adr liste typ
Kino(201)
;adr ler ID
; premier ID
XDEF
DERU
DERU
*nnn PREPARATIFS nnanannnnnnnaannnannnnnnnna
COLLECTE DU NOM DE LA BOBINE
Liste des Noms +++++++++++++-
;nbre images- 1
; nombre+2
Cette liste doit etre ouverte
dans tous les cas
pour lancer 1 ' application suivante.
Le handle est place dans A4 .
;*******************************************
GetRes #'STR#\#abID
dep .L,A4 ; handle de la liste
*+++ Parametres ++++++++++++++++++++++++++-!-+
moveA.L #AppParmHandle, AO ;adr handle
; restauration
moveA.L (AO), AO
moveA.L (AO), AO
move.W 2 (AO), DO
beq.S @10
clr 2 (AO)
Adresse du Nom
cas du lancement par des diapos
; handle
; adresse
; nombre
;0:pas de dias
* presence d' images ?
@20 move.L #'PICT\D1
BSR RECHTYPE
bmi.S @11
move 4 (AO) , D4
addQ #3,D4
* finitions
moveA.L A1,A0
_HOnlocJc
*nnnaan
ACTIONS
* COLLECTE DU DELAI
moveA.L #CurApName, AO
move.B (AO), DO ; longueur nom
Recherche de la Parenthese Ouvrante
addQ.W #1,A0 ;incremente
SSi I . B, # ParenthOuv , (AO ) , @5
subQ.B #1,D0
*
@0
beq. S
bra.S
@20
@0
;boucle
*
@5
Recherche de la Parenthese Fermante
move . L
addQ . W
@10 addQ.W
AO, Al
#1,A1
#1,A1
;adr dans AO
lea 12 (AO), AO ;adres nom
bra.S ouverture
* lancement direct
@10 moveA.L (A4) , AO
lea 2 (AO), AO
*nnnonnnn
ouverture
* OUVERTURE DU CARROUSEL
eP W
emp .L,A0
_OpanRasFil«
dep .W,D0 ;RefNum
Si I.W,#-1,D0,EXIT
Etude du ResourceMap
; incremente
SSi I.B, #ParenthFerm, (Al) ,@15
bra.S @10
Formation de la Phrase
;adr liste
;adr nom
;pour RefNum
@15 move.L
sub.L
sub.B
move . B
Al, DO
AO, DO
#1,D0
DO, (AO)
Conversion en Delai
emP .W, #1
_Pack7
D0,D5
geo
#DelDef ,D5
move . L
bra.S
020 move.L
*nn
;derniere adr
; longueur+1
; longueur
; delai = D5
; delai defaut
Pom's n°31
49
geo
*
INSTALLATION DU GRAFPORT
*+++ Initialisations et Collectes i i i i i i i i
* QuickDraw et curseur
pea thePort (A5)
JnitGraf
I nitCurior
_HidoCursor
* ouverture du GrafPort
pea g
_OponPort
* motif
CollRes #abID, Pattern
dep .L,A0
_Hlock ;verrouille
move.L (A0),A6 ;adresse
*+++ Signature +++++++++++++++++++++++++++++
Si le bouton est presse lorsque l'on
arrive ici,
les initiales AB apparraissent en haut a
gauche, dans la barre de menu.
Elles y restent tant que le bouton est
presse
*******************************************
ep w
_Button
dep .W,D0
beq.S suite
P2Couic #4, #14,MoveTo
pea sign
_DrawString
@10 ep W
_Button
dep . W, DO
bne.S @10
*+++ Peinture
suite
pea g+PortRect
emp .L,A6
FillRoct
; index
; verrouillage
;adres SMAP
;lere image
* INITIALISATIONS
move.L #HollDegwez, DO
_FlushEvents
GetRes #'SMAP' , #0
dep .L,A0
_HLock
moveA.L (A0),A2
moveQ #1,D3
BSR Prepa
*nnn DEFILE DES IMAGES nnannannnnnnnnnannnBn
TRO
* INCREMENTATION ■
addQ #1,D3 ;compteur
Si .B,D3,D4,EXIT
* DESSIN —
*+++ Bip ? +++++++++++++++++++++++++++++++++
btst #0,D5
beq.S eff
emp .W,#l
_Sy sBaep
Preparation de l'Ecran +++++++++++++++
eff pea g+PortRect
emp .L,A6
_FillRect
pea entourage
emp .W,#LargCoin
emp .W,#HautCoin
_EraseRoundRect
Ah!
emp .L,A3
pea cadre
_DrawPictura
emp .L,A3
_Re le a seRe source
- ATTENTE
Kino(201)
;rect figure
*+++ Preparatifs +++++++H
^++++++^
BSR
move . L
_Delay
move . L
add. L
*+++ Boucle
@10 move
lea
Prepa
#0,A0
D0,D6
D5,D6
#-l,D0
Degwez, AO
_GatOSEvant
beq.S @20
cmp.L T,D6
bpl.S @10
bra.S TRO
* un evenement a eu lieu
020 move.W Degwez, D2
SSi I . W, (tmButDwnEvt , D2, attente
SSiNon I . W, IkeyDwnEvt , D2 , 010
;tous events
; point sur ev .
;evenemt: 020
; boucle
; autre image
;numero evt
move.B TouNo,D0
cmp.B #touchF,D0
bne.S 030
_ExitToShell
030 SSi I.B,#touchE,D0,EXIT
SSi I.B,#tOUChTab,D0,TRO
SSi I.W,#2,D3,01O
SSiNon I .B, #touchBac, DO, 010
subQ #2,D3
BSR Prepa
;No de touche
;retour Finder
;F - Finder
bra.S
TRO
;on continue
* L' image reste affichee tant que que le
* bouton de la souris est presse
; *******************************************
attente
ep W
_Button
dep .W,D0
bne.S attente
bra . S TRO
*nnn SORTIE nnnannnnnnnnnnnnnanannnnnnnnnnnn
EXIT
* COLLECTE DU NOM •
moveA.L (A4),A1 ; adr list noms
moveQ #3, DO ; nbre de noms
add.B 2(A1),D0
addA D0,A1
* VERIFICATION
move.L #LongPtr,D0
50
Pom's n°31
_N«wPtr, CLEAR
_GotVol
move.L Al, AdNom (AO)
_GatFil«Info
SSi I.W,#fnfErr,DO,01O
* LANCEMENT _
mouvO L,Al,anv
_Launch
@10 _ExitToShall
*£££££££££££££££££££££££££££££££££££££££££££
*nnn SOUS -ROUTINES nnnnnnaannnnnnnnnnaannnnn
RECHTYPE
* RECHERCHE D'UN TYPE DANS UN FICHIER
; modifie AO, DO
; entree : adresse de la liste des
; types : A2
; type recherche : Dl
; sortie : N = si type trouve,
; AO : adresse du type
; N = 1 sinon
emp .L,TopL
;type 'PICT' ?
; Sinon...
;increm adr
;...et on boucle
lea 2(A2),A0
move. W (A2) , DO
@0 SSi .L, (AO) ,D1, @1
subQ.W #1,D0
bmi . W 01
addQ #8, AO
bra . S
01 tst.W DO
RTS
*nnnnannnnnnnannnnnnaQDnnnn
PREPA ;No de 1' image : D3
* PREPARATION DU DESSIN
*+++ Calcul de l'ID ++-n
* l'ID est place dans DO
;******* ************************************
pea
vect
_SubPt
lea
vect, AO
asr .W
(AO)
asr .W
2 (AO)
- placement du rectangle
(au centre)
pea
cadre
P2Couic
vect+2, vect, Of f SetRect
- rectangle d' entourage -
lea
entourage, AO
move . W
cadre, DO
asr . W
#1,D0
move . W
DO, (AO)
move . W
cadre+2, DO
asr .W
#1,D0
move . W
DO, 2 (AO)
move . W
cadre+4, DO
add.W
#HautEc,D0
asr.W
#1,D0
; division
move . W
DO, 4 (AO)
move . W
cadre+6, DO
add.W
#LargEc, DO
asr.W
11, DO
.•division
move . W
DO, 6 (AO)
RTS
*£££££££££££££££££££££££££££££££££££££££££££
*nnn DONNEES nnnnnnnnnnnnnnnaannnnnnnntinnnnn
* GRAPHIQUE
dcB.B PortRecO ; Graf Port
dc.W 0,0
; initialise
;adr du SMAP
; rang
move.W #ppID,D0
moveA.L A2,A0
00 move.B (AO) , Dl
SSi .B,D1,D3,01O
addQ #1,D0
addQ #1,A0
bra.S 00
*+++ Collecte de 1' Image
010 CollRes DO, Picture
dep A.L,A3
*+++ Calcul de Rectangles
020
* mise a jour de vect
pea vect
P2Couic #LargEc, #HautEc, SetPt
* ecriture du rectangle provisoire a
* 1' adresse cadre
g
vect
cadre
TopL : dc.W 0,0
BotR : dc.W 0,0
entourage
dc.W 0,0
dc.W 0,0
* EVENEMENT
Degwez
; cent rage
dc
N
dc
W
TouNo:
dc
B
dc
B
;PicHandle
T:
dc
L
,-PicHandle: A3
dc
L
+++++++++++ +-M-++++
dc
W
; temps ecoule
* NOMS
anv
sign
dc.L
dc.B 2
dc.B 'AB'
moveA.L (A3), AO
lea cadre, Al
move.L 2 (AO) , (Al)
move.L 6(A0),4(A1)
-- calcul de vect
emp .L, BotR
pea vect
SubPt
;adr image: AO
; adresse: Al
;tr TopLeft
;tr BottomR
FIN
nnnnnnannnnnannnQnnnnnnnnnnnnnnnnnnnnnnannnn
Kino(201)
Pom's n°31
51
Les nouvelles versions d'lnterPom's
Version
IBM® PC/AT™
et compatibles
Transmission par le reseau
telephonique de tous les types de
fichiers et programmes entre deux
IBM® PC / AT ou compatibles.
Protocole 'intelligent' garantissant des
transferts d'informations ultra-fiables.
Emission de tous les types de fichiers
et programmes vers les Macintosh.
Emission des fichiers au format 'texte'
vers les Apple //.
Reception des fichiers 'texte' emis par
les Apple // et Macintosh. Les fichiers
au format 'texte' sont recodes
(caracteres accentues et speciaux).
Version
Apple //
Transmission par le reseau
telephonique de tous les types de
fichiers et applications entre deux
Apple //.
Protocole 'intelligent' garantissant des
transferts d'informations ultra-fiables.
• Emission de tous les types de fichiers
et programmes vers les Macintosh.
• Emission des fichiers au format 'texte'
vers les IBM® PC/AT™ et compatibles.
• Reception des fichiers 'texte' emis par
les IBM® PC/AT™ et Macintosh. Les
fichiers au format 'texte' sont recodes
(caracteres accentues et speciaux).
• Possibility de reception sans recodage
des fichiers 'texte' emis par les IBM®
PC/AT™ et Macintosh.
• Utilisation possible avec le Modem
integre au Minitel, avec un Modem
classique, ou en local entre deux Apple
//, un Apple // et un PC™ ou encore un
Macintosh et un Apple //.
• Possibility d'utiliser le port integre du
lies.
//C
//e
Version
Macintosh
Transmission par le reseau
telephonique de tous les types de
fichiers (textes, polices de caracteres,
feuilles de calculs, accessoires de
bureau...) et applications entre deux
Macintosh.
Protocole 'intelligent' garantissant des
transferts d'informations ultra-fiables.
Emission des fichiers au format 'texte'
vers les Apple //.
Emission des fichiers au format 'texte'
vers les IBM® PC/AT™ et compatibles.
52
Pom's n° 31
Uitesse de transmission :
O 300 bauds
O 600 bauds
O 1200 bauds
O 1800 bauds
O 2400 bauds
O 3600 bauds
Parite :
(•> Rucune
O Impaire
O Paire
• Reception de tous les types de
fichiers emis par les Apple // et
IBM® PC /AT™. Les fichiers au
format 'texte' sont recodes
(caracteres accentues et
speciaux) et stockes sous la forme
de fichiers 'MacWrite' ; les autres
types sont stockes sous la forme
de fichiers 'Edit' (utilisables
depuis n'importe quel
programme acceptant le format
TEXT).
• Possibilite de reception sans
recodage des fichiers •texte" emis
par les Apple // et IBM® PC/AT™
ou compatibles.
• Option de transmissions groupees et automatiques
de fichiers ou applications (jusqu'a dix). La
possibilite demeure meme dans le cas de fichiers
ou applications repartis sur plusieurs volumes
differents.
• Utilisation possible sur le port serie
'Communication' ou sur le port 'Imprimante'. Le
port 'Imprimante' n'est toutefois pas accessible si
le reseau AppleTalk est connecte.
• Utilisation possible avec le Modem integre au
Minitel, avec un Modem classique, ou en local
entre deux Macintosh, un Macintosh et un IBM®
ou encore un Macintosh et un Apple //.
• Configuration possible du port courant pour une
utilisation avec un Modem ou en local entre deux
appareils. On peut ainsi transmettre des
informations jusqu'a 57 600 bauds soit, en tenant
compte du protocole utilise, plus de 5 Ko par
seconde.
• Sauvegarde possible de
la configuration en cours
dans l'optique de
l'utilisation ulterieure
d'une meme configu-
ration.
O 4800 bauds
O7200 bauds
O 9600 bauds
O 19200 bauds
® 57600 bauds
Donnees :
O 5 bits
O0 bits
O? bits
(•) 8 bits
Arret :
® 1 bit
O 1,5 bits
2 bits
C
0K
2
Hnnuler
Options
Minitel
Modem ou local
✓
N°X|Port communication
Port imprimante
Configuration du port...
Enregistrer la configuration..
Charger une configuration...
Reception sans modification
Possibilite de 'demar-
rage configure' par un
'double-clic' sur un
fichier de configuration.
Menu 'Quitter' permet-
tant le depart vers une
application au lieu du
'Finder'.
Compatible tous environ-
nements.
Bon de commande page 75
Liste des fichiers a emettre
Japanese Girl
Billiard
DiskuMrite
PaintMouer
Polices
Ecran-
Com [9600_7_P_1]
//Mac 1001 1 1 1 1001 100
H->Mac
Selection des fichiers :
TeHte...
Tous...
OK
Rnnuler
Pom's n° 31
53
o
m
■cr
w
<»>
U0R1E2 CE BOL DE UIEUX UHISKV BUX 257 JUGES QUI FUF1ENT
!"■!■"!"•"■>!'" H™ w-ului !■ Ji"Wu>>i Wii-iif^rf... WuVi» Wnim
Portej co bol de vieux tvhicKu. aux BS7 jxgvc qui fiiminl
Portez ce bol de > iouv whisky
Portcz ce bol do vleux whisky aux
'Portez ce hot b-e vleux wfitsHtj aux 257
»'iin' US TH1 l?H H flffll luiuvtl l Effll H?fi IUHH flfll llllnt-JAI
Porte* ce bol de vieux whisky au> 25? juges qui
H^mtNx In
Portez ce bol de vieux ivfvisky aux 257 juges qui fument
noPTea ue soji ne nwcrx ruiMciio ayx 2S7 ncrrec ten
Porter ce bol de vieux whisky oux 257 Juges qui tument
Portez ce bol de vleux whisky aux Z57 Juges qui Fument
•MWMrau m MPwwt. « m*ng *^.tht wr rm u«j rawi
POrT=T C= hOL d= ITJ-EUl I!1HX!jHV aUl =5T
Popteto c* bol be bleux phlfky aux 257 ojujer 6ul [umeni
Portez ce bol de vieux whisky aux
lirlu H Ml * ike. aiai m SI pt" Hi Mil
Portez cb bol de vieux uihiskg aux 2S7 juges qui
$o?te$ ce bol H Ucux
Portez ce bol de vieux whisky aux
Poriez ce bol de vieux whisky aux 257 juges
u
O
m
PO^CEZ CE BOL DE ViEUX WHii<y AUX 257 JUGEi
Portez ce bol de vieux whisky aux
Portee ce bol dE U.EUH
£Poitci oe BoC ck. uUmx iu&iAiy aux £57 /ugeo. qui fument
Portez ce bol de vieux vhlsky oux 257 Juaej qui fument
Portez ce bol de vieux whisky aux 257 juges qui fument
Portez ce bol de vieux whisky aux 257 juges qui
Portez ce bol de vieux whisky aux
Portti c» bol d» ultux whisky iu> 237 JUQ»« qui fumtnt
Portez ce bol de vieux whisky aux 257 juges qui fument
Portez ce bol de vieux whisky aux
Ptrcac a hot it vitux vMsAy mac ZS7 iustt gui fument
Portez ce- bol de viewx. whisky auoc 25
7miv n l+i ti iqiiv \,mtu 257 sine #ia iiJi«
(TI L+l TI IttllV: tWili riV
PW^ c?Wdc viao/*. ^jKuJi^ ou/X 257 y>^L <y^ fyjsmasnX
Pcrtez ce bol de vimuu uih.aky bum £57 Juges qui fument
Portez ce bol de uieux whisky <wx 257 juries qui fument
Portez ce bol de uieux whisky aux 25
P.. I.i t . t.i 4. >|Mi Kihkl mm 257 JefM Hm hmi
Portez ce boa de uleux tuhisky oux 257 Juges qui fument
Portez ce bol de uieux whisky aux 257 juges
Portez ce bol de uieux tuhisky aux 257
»•»•- LVal «. — r. -4j/», — . U» r-,'- , ' t
PorUfl o. bol d* vi««x vhi«k a qui 257 jug« qui fgmtnl
RV¥v 02 GJ de iAsk iiiriaj tut S7 juya ty3 f u rot
Portez ce bol de vieux wuisKy aux 257
// s'agit d'un systeme graphique
double-haute resolution ecriten Pascal.
COGO vous permet de manipuler des
graphiques grace a un langage de
description des objets - points, angles-
et a I'emploi de fonctions primitives de
manipulation tres puissantes : cercle,
tangente,
intersections, paralleles, etc. II estainsi
possible de tracer des grilles, des
cercles, des segments de droite, des
tangentes communes a deux cercles, de
calculer des distances, des angles. . .
L'editeur permet une saisie rapide du
langage. Une instruction COGO
peut-etre executee des la saisie pour
faciliterla mise au point, ou au sein d'un
programme.
Vous avez un Apple lie avec Chat Mauve ou un He ?
Vous avez Pascal 1.2 ?
Utilisez
COGO
Par Nicolas Monisarrat
Apple //e, //c
Ce programme, destine a resoudre
des problemes de geometrie plane,
comporte des instructions de stockage
sur fichier afin de permettre la reprise
d'un calcul.
200,00 F TTC, franco
Bon de commande page 74
54
Pom's n°31
DOS 3.3
][+
lie
l/e+
lie
llgs
Si
Serge Cattan
o
o
Programme LE VOYAGEUR
1 REM *************##******************####*****
20 :
30 REM CATTAN Serge LE VOYAGEUR 11/86
10 :
5 REM *»•»••»*»■<**»**»*»*»»»«»««»"»»*»*»»»»«»»»»«
60 ONERR GOTO 2280
70 TS = "
80 DS = CHR$ (4)
90 HOME
100 INVERSE : PRINT SPC I 40)
110 PRINT " LE VOYAGEUR
a .
220 PRINT SPC I 40)
130 NORMAL
140 POKE 34,4: VTAB 8
150 PRINT "ANALYSE D'UN PROBLEME —> 1"
160 PRINT "REPRISE ANALYSE EXISTANTE — > 2"
170 PRINT "MODIFICATION DONNEES — > 3"
180 PRINT "MODE D'EMPLOI —> 4"
190 PRINT "RETOUR AU BASIC --> 5"
200 POKE 36,11: VTAB 18: INPUT "VOTRE CHOIX ? ";RS
:R = VAL IRS)
210 ON R GOTO 260,230,240,3090,250
220 GOTO 200
230 GOSUB 2010: GOTO 570
240 GOSUB 2070: GOSUB 1580: GOTO 570
250 POKE 34,0: END
260 HOME
270 VTAB 8: PRINT "NOM DE L 'ANALYSE (? POUR LE CAT
ALOGUE) :": PRINT : INPUT " - ";NE$
280 IF NE$ = "?" OR LEN (NE$) = THEN GOSUB 237
0: GOTO 260
290 PRINT : INPUT "NOMBRES DE TRAJETS ? ";NR$
300 NR = VAL (NRS) : IF NR < 2 THEN PRINT " UN CHI
FFRE > 1 S.V.P.": GOTO 290
310 GOSUB 330: GOTO 400
320 REM =========== DIM TABLEAU ==================
330 IF ME = 1 THEN RETURN
340 DIM M (NR, NR) , C (NR, NR) ,D(NR, NR) , X (NR + 1),Y(NR
+ 1),V$(NR)
350 ME = 2: RETURN
360 HOME
370 REM
380 REM SAISIE DES COUTS
390 REM
400 FOR 1=2 TO NR
410 PRINT "NOM DE LA VILLE ";I;
on, il ne s'agit pas de vous infliger
une serie TV sur la 5eme dimension,
mais de vous proposer une solution
a un vieux probleme de recreation
mathematique.
II s'agit de determiner le meilleur itineraire a
parcourir entre plusieurs villes, afin de minimiser un
facteur quelconque, par exemple :
- le nombre de kilometres ;
- le temps du parcours total.
Le modele de Little permet d'obtenir un algorithme
qui fournit une solution. Les seules contraintes sont :
• il est interdit de passer deux fois dans la meme
ville ;
• la fonction devaluation doit etre obligatoirement
minimisee (il est ainsi impossible d'utiliser une
fonction qu'il faudrait maximiser).
Le programme LE VOYAGEUR, ecrit en Applesoft
done facilement adaptable, permet de creer et de
modifier a loisir les hypotheses d'un probleme ; les
solutions sont 6ditables sur imprimante (Epson
RX80 mais vous n'aurez aucune difficult^ a convertir
les quelques lignes). En prime, le programme vous
offre un tutorial pour vous familiariser avec les
concepts manipules.
G
420 NEXT I
430 HOME
440 FOR 1=1 TO NR
450 FOR J = 2 TO NR
460 IF I = J THEN C(I,J) = IE + 30: GOTO 500
470 PRINT "TRAJET DE ";V$(I);" A ";VS(J);" ";: INP
UT VT$
480 C(I,J) = VAL (VT$)
490 IF C(I,J) = THEN INVERSE : PRINT "UN NOMBRE
>0 S.V.P.": NORMAL : GOTO 470
500 0(1, J) = C(I,J)
510 NEXT J
520 PRINT
530 NEXT I
540 REM
550 REM MODELE DE LITTLE
560 REM
";: INPUT VS(I)
Pom's n° 31
55
5 70 GOS'JB 1090: REM ' MODIF RESOLUTION *
580 M - IB + 30:K = 0:R0 - 0:R1 - 0:R2 - 0:CS « 0:O
M =
590 K = K + 1
600 GOSUB 850: REM * SUBSTITUTION "
61 HOT = OUI + CS
620 CfR2,0J = 1:C(0,R2) = 1:C(R2,R1) = IE i 30
630 R0 = 0:X(K) = R1:Y(K) = R2
640 GOSUB 2 090: REM • MODIF RESOLUTION •
650 OUI = OUI + RO
660 IF OUI > M AND HOT > M THEN FIN - ! : GOTO 750
6 70 IF HOT < M AND OUI < = HOT THEN M - HOT
680 IF OUI < = HOT THEN 750
690 IF OUI < M THEN M -- OUI
700 FOR 1 = TO NR
710 FOR J = TO NR-.C(I.J) = M(I,J): NEXT J
120 NEXT I
730 C(X(K),Y(K)) - IE * 30: OUI = HOT
740 GOSUB 1090: REM • MODIF RESOLUTION •
750 IF K < > NR - 1 AND FIN < > 1 THEN 590
760 IF FIN = 1 THEN 830
770 K - K i 1
780 FOR 1 - 1 TO NR
790 FOR J = 1 TO NR
800 IF C(I.O) - AND CIO, J) - THEN X (K) = I : Y IK
) - J:I = NR:J = NR
810 NEXT J
820 NEXT I
830 GOTO 1-170
840 REM
850 REM
860 REM SUBSTITUTION
870 REM
880 CS - IE - 30
890 FOR 1=1 TO NR
900 IF C(I,0) = I THEN 1040
910 FOR J = 1 TO NR
920 IF C(0,J) m 1 OR CI I, J) < > OR C(l.J) > IE
+ 30 THEN 1030
930 Ml = IE + 30
940 FOR Jl = 1 TO NR
950 IF CI0.J1) < > 1 AND C(I,J1) < Ml AND J < >
Jl THEN Ml = C(I,J1)
960 NEXT Jl
970 M2 = IE + 30
980 FOR II = 1 TO NR
990 IF CI 11,0) < > 1 AND Clll.Jj < M2 AND II < >
I THEN M2 = C III, J)
1000 NEXT II
1010 MIN = Ml + M2
1020 IF MIN > CS THEN CS = MIN:R1 = I :R2 = J
1030 NEXT J
1040 NEXT I
1050 FOR I = TO NR
1060 FOR J = TO NR:MII,J) = C(I,J): NEXT J
1070 NEXT I
1080 RETURN
1090 REM
2 3 00 REM MODIF RESOLUTION
1110 REM
1120 FOR I = 1 TO NR
1130 IF C(I,0) = 1 THEN 1250
1140 MIN = IE * 30
1150 FOR J = 1 TO NR
1160 IF CIO, J) = 1 THEN 1190
1170 IF CII.J) - THEN F = 1 :J = NR: GOTO 1190
1180 IF CII.J) < - {MIN) THEN MIN = CII.J)
1190 NEXT J
1200 IF F = I THEN F = 0: GOTO 1250
1210 FOR J = 1 TO NR
1220 IF CIO, J) = THEN CII,J) = CII.J) - MIN
1230 NEXT J
1240 RO = RO + MIN
1250 NEXT I
1260 FOR J = 1 TO NR
1270 IF CIO, J) = 1 THEN 1390
1280 MIN = IE + 30
1290 FOR 1=2 TO NR
1300 IF C(I,0) = 1 THEN 1330
1310 IF C(I,J) = THEN F = 1:1 = NR: GOTO 1330
1320 IF C( I, J) < IMIN) THEN MIN - CI I, J)
1330 NEXT I
1340 IF F = 1 THEN F - 0: GOTO 1390
1350 FOR 1=2 TO NR
1360 IF CI1,0) = THEN CII.J) - CII.J) - MIN
1370 NEXT I
1380 RO = RO + MIN
1390 NEXT J
1400 REM
2 42 FOR I = 1 TO NR
1420 FOR J = TO NR
1430 IF CII.O) - 2 AND CIO, J) = 1 THEN CI J, I) - IE
+ 30
1440 NEXT J
1450 NEXT I
1460 RETURN
1470 REM
2 480 REM AFFICHAGE RESULTAT
1490 REM
2 500 GOSUB 2410
1510 VTAB 23: PRINT : INPUT "VOULEZ-VOUS SAUVEGARD
ER CETTE ANALYSE ?";RE$
1520 IF LEFTS IRES.l) = "O" THEN GOSUB 1910
1530 REM
1540 PRINT :R$ = "": IWPU7 - "VOULEZ-VOUS IMPR1MER C
ES RESULTATS ?";R$
1550 IF LEFTS IRS.l) = "O" THEN GOSUB 2710
1560 POKE 34, 0: RUN
2 5 70 REM
2580 REM MODIFICATIONS
1590 REM
2 600 HOME
1610 INPUT "MODIFIER LA VILLE DE DEPART ? ";RES
1620 IF LEFTS IRES,1) < > "O" THEN PRINT : GOTO
1650
1630 RES = "": INVERSE : PRINT VDS ; " ": NORMAL : IN
PUT "NOUVEAU NOM I ENTER=OK ) ? ";RES
1 640 IF LEN IRES) > THEN VDS = RES
1650 INPUT "MODIFIER LE NOM D'UNE VILLE ? ";RES
1660 IF LEFTS IRES.l) < > "O" THEN PRINT : GOTO
1710
2 670 FOR 1=2 TO NR
2 680 RES = "": INVERSE : PRINT VSID;" " ■ NORMAL :
INPUT "NOUVEAU NOM I ENTER=OK ) ? ";RES
1690 IF LEN (RES) > THEN VSII) = RES
1700 PRINT : NEXT I
1 71 FOR I = 1 TO NR
1 720 IF VDS = VSII) THEN 1760
1730 NEXT I
56
Pom's n° 31
1740 PRINT : FLASH : PRINT "VILLE DE DEPART INCONN
UE": NORMAL
1750 FOR T - ! TO 1500: NEXT : GOTO 1600
1760 INPUT "MODIFIER UN TRAJET ? ";RE$
1 770 IF LEFTS (RES,lj < > "0" THEN PRINT : GOTO
1830
1 780 INPUT "MODIFICATION DU TRAJET NUMERO ? ";IS:I
= VAL (IS)
1 790 INPUT " AU TRAJET NUMERO ? ";JS:J
= VAL US)
1800 IF I > NR OR J > NR OR I = J THEN PRINT : PR
INT : FLASH : PRINT " ERREUR " : NORMAL
: FOR T = 1 TO 1000: NEXT : GOTO 15 60
1810 PRINT : PRINT "VALEUR ACTUELLE :";D(I,J)
1820 INPUT "NOUVELLE VALEUR :";D(I,J)
1830 PRINT : INPUT "UN AUTRE MODIFICATION ?";RES
1840 IF LEFTS (RES,1) = "0" THEN 1590
1850 PRINT : FLASH : PRINT TAB ( 5) ; "CALCUL EN COU
RS ": NORMAL
1860 RETURN
1870 REM
1880 POKE 36,0: VTAB 23: PRINT "APPUYEZ SUR UNE TO
UCHE POUR LA SUITE. " : GET CS
1890 RETURN
1900 REM
1910 REM SAUVEGARDE SUR DISQUE
1920 REM
1930 PRINT
1940 PRINT DS; "OPEN"; NES
1950 PRINT DS; "WRITE"; NES
1960 PRINT NR: PRINT VDS
1970 FOR I = 1 TO NR
1980 PRINT VS(I)
1990 NEXT I
2000 FOR 1=1 TO NR
2010 FOR J = 1 TO NF
2020 PRINT Da, J)
2030 NEXT J, I
2040 PRINT DS; "CLOSE"
2050 RETURN
2060 REM
2070 REM LECTURE ENREGI STREMENT
2080 REM
2090 VTAB 23: INPUT "NOM DE L 'ANALYSE I? POUR LE C
ATALOGUE) ?";NES
2100 IF NES = "?" OR LEN (NES) = THEN GOSUB 23
70: HOME : GOTO 2090
2110 HOME : INVERSE : POKE 36,8: VTAB 23: PRINT "A
NALYSE FICH1ER . . . ";NES: NORMAL
2120 PRINT
2130 PRINT DS; "OPEN"; NES
2140 PRINT DS; "READ"; NES
2150 INPUT NR: INPUT VDS
2160 GOSUB 330
2170 FOR 1 = 1 TO NR
2180 INPUT VS (I)
2190 NEXT I
2200 FOR 1=1 TO NR
2210 FOR J = 1 TO NR
2220 INPUT D(I,J)
2230 C(I,J) = D(I.J)
2240 NEXT J, I
2250 PRINT DS; "CLOSE"
2260 RETURN
2270 REM
2280 REM TRAITEMENT ERREUR
2290 REM
2300 IF PEEK (222) = 5 THEN VTAB 10: PRINT "ERRE
UR FICHIER " : PRINT DS; "DELETE"; NES : GOSUB 2370:
GOTO 2320
2310 PRINT "ERREUR": SPEED= 255
2320 FOR IT = 1 TO 1000: NEXT
2330 POKE 34,0: RUN
2340 REM
2350 REM LECTURE CATALOGUE
2360 REM
2370 PRINT DS; "CATALOG" : PRINT : PRINT "APPUYER SU
R UNE TOUCHE": GET RS: RETURN
2380 REM
2390 REM SP RESULTATS
2400 REM
2410 HOME
2420 PPINT : PRINT
2430 PRINT n * ************** * *** ******* "
2440 PRINT "" ARCS DE L'ARBORESCENCE '"
2450 PRINT "**************************"
2460 PRINT : PRINT
2470 NL =
2480 FOR 1=1 TO K
2490 PRINT "DEPART:"; LEFTS (VS (X (I) ) , 11) ; : POKE 3
6,20: PRINT "ARRIVEE: "; LEFTS (VS (Y (I ) ) , 1 1 ) : NL
= NL + 1
2500 NEXT I
2510 IF FIN = THEN 2540
2520 PRINT : PRINT "LE CIRCUIT NE PEUT ETRE DETERM
INE"
2530 PRINT " PLUS AVANT SANS ERREUR": RETURN
2540 IF LEFTS (RS,1) < > "O" THEN GOSUB 1880
2550 HOME : PRINT : PRINT
2560 PRINT "LE PLUS COURT CHEMIN EST:"
2570 PRINT "========================="
25S0 IF R < > 2 AND R < > 3 AND LEFTS (RS,1) <
> "0" THEN INPUT "VILLE DE DEPART ? ";VDS
2590 PRINT : PRINT "DEPART : ": PRINT
2600 FOR 1=1 TO NR
2610 FOR J = 1 TO NR
2620 IF VDS = VS(X(J)) THEN PRINT VS (X (J) ) :VD$ =
VS (Y(J) ) : GOTO 2660
2630 NEXT J
2640 PRINT : FLASH : PRINT "VILLE INCONNUE": NORMA
L
2650 FOR T = 1 TO 1500: NEXT : GOTO 2550
2660 NEXT I
2670 PRINT VDS
2680 PRINT : PRINT "ARRIVEE"
2690 RETURN
2700 REM
2 7J0 REM LISTING IMPRIMANTE
2 720 REM
2730 PRINT DS;"PRE3"
2740 PRINT : PRINT DS;"PRC1"
2750 PRINT CHRS (27); CHRS (64): REM INIT IMPRIM
ANTE
2760 PRINT TS;
2770 PRINT : PRINT CHRS (27); CHRS (14);: REM GR
OS CARACTERES
2780 PRINT "LE VOYAGEUR: ANALYSE DU FICHIER ";NES;
2790 REM PRINT CHRS (15): REM 132 COLONNES
2800 PRINT CHRS (20) : REM 80 COLONNES
2810 PRINT TS: PRINT : PRINT
2820 PRINT "•***•*******•■
2830 PRINT "*LES VILLES'"
2840 PRINT "•******-****"
2850 FOR 1=1 TO NR
Pom's n°31
57
2860
PRINT
2870
NEXT j
2880
PRINT
2890
PRINT
2900
PRINT
2910
PRINT
2920
PRINT
2930
PRINT
2940
FOR I
2950
POKE
2960
NEXT
2970
PRINT
2980
FOR I
2990
PRINT
3000
FOR J
3010
POKE
I;" = ";V$(I)
: PRINT
"*********************»
""MATRICE DES TRAJETS* "
: PRINT
"TR: ";
= 1 TO NR
PRINT LEFTS <T$,NR "
1 TO NR
5 + 4)
1 TO NR
- J THEN PRINT "0"; : GOT
PRINT CHRS (21) : PR
3030
3020 PRINT D(I,J);
3030 NEXT J
3040 PRINT : NEXT I
3050 PRINT LEFTS (TS, NR "5*4)
3060 GOSUB 2420
3070 PRINT : PRINT DS;"PRC3'
INT : POKE 34,0: RUN
3080 REM
REM MODE D'EMPLOI
REM
HOME : SPEED= 110
PRINT "Ce programme a ete developpe a partir
PRINT "du modele de LITTLE appele egalement"
3090
3100
3110
3120
3130
3140
3150
3160
PRINT "modele du voyageur de commerce . "
PRINT "II permet de determiner le Crajet"
PRINT "optimal a suivre, lorsque sur un graph
3170 PRINT "on veut passer par tous les reperes un
e"
3180 PRINT "seule £ois et une seule."
3190 PRINT "Ce modele correspond done exactement a
u"
"parcourir . "
"Pour poser le probleme, il faut "
"determiner la matrice des couts du
"voyage de ville a vi 1 le .Ces couts"
"peuvent etre exprimes en francs, en 1
"et au retour. ": PRINT
: PRINT "EXEMPLE: "
3200
PRINT
3210
PRINT
3220
PRINT
3230
PRINT
3240
PRINT
3250
PRINT
3260
PRINT
3270
PRINT
3280
PRINT
3290
PRINT
3300
PRINT
3310
PRINT
3320
PRINT
3330
PRINT
3340
PRINT
3350
If
PRINT
3360
PRINT
e
3370
PRINT
3380
PRINT
3390
PRINT
e
n
3400
PRINT
3410
PRINT
3420
PRINT
3380 PRINT "-rir le moins de kilometres possibles.
34 40 PRINT
5 42"
3450 PRINT
5 31"
3460 PRINT
13"
34 70 PRINT
9 0"
3480 PRINT
3490 PRINT
2 36 48 3
3 25 34 2
4 10 15 22
32 24 39 2
•Ce tableau indique
que le nombre de"
3500 PRINT "kilometres separan
t la ville 1 de la"
3510 PRINT "ville 2 est de 21
a 1 'allee, et de 36"
3520 PRINT "au retour etc.
3530 PRINT : PRINT : PRINT "Ce
programme a ete inspire
par le livre"
3540 PRINT " de JEAN PIERRE BL
ANGER edite aux"
3550 PRINT "editions P.S.I. MO
DELE PRATIQUE DE"
3560 PRINT "DECISION. ": PRINT
: PRINT
3570 SPEED= 255: GOSUB 1880
3580 POKE 34,0: GOTO 90
■a
S
c
o
S
B
5
PARIS
PARIS
MEAUX
SEZANNE
TROYES
MELUN
1E+30
44
139
107
54
47
1E+30
53
134
56
139
59
1E+30
64
93
112
139
68
1E+30
128
56
54
90
122
1E*30
3430 PRINT
1 21 35 19 14"
58
Pom's n°31
9\(tcoCas Martin & Micfid CrimouTC
a presentation de
Turbo-Pascal, de
Nicolas Montsarrat
dans Pom's 23,
nous avait donne un
avant-gout de l'utilisation du
graphisme sous ce langage.
Le programme graph. pas
illustrait une solution au
principal reproche adresse a
Turbo-Pascal : l'absence de
graphisme.
Nous avons repris a notre compte
l'objectif initial, c'est-a-dire
disposer d'un ensemble de
procedures Pascal dedides au
graphisme HGR, en proposant
d'exploiter la ROM du Basic
Applesoft, 6crite bien sur en
6502, sous le CP/M Z-80 du
Turbo-Pascal.
Pari gagne" ! La procedure hline
obtenue est beaucoup plus rapide.
De plus, nous avons inclus
d'autres procedures telles que
HCOLOR, HPOS, HPLOT_TO.
Utilisation
Le fichier diag.pas est un fichier
source Turbo-Pascal qui contient
la definition de l'ensemble des
procedures graphiques.
Rappelons qu'il n'est pas
possible de creer des
LIBRARIES ou des UNITS en
Turbo-Pascal ; il n'est done
possible que de cr£er des fichiers
inclus appel6s au moment de la
compilation.
Le source essai . pas est un petit
programme de demonstration qui,
en utilisant les definitions de
diag . pas, obtient la meme
animation graphique que le
programme graph, pas de Pom's
23.
essai . pas n'est, bien sur,
fourni qu'a titre d'illustration de
la methode. Pour le compiler :
transferer les fichiers diag.pas
et essai . pas de la disquette
Pom's vers une disquette
CP/M a l'aide de Universal
File Conversion (sinon, a vos
claviers!) ;
charger Turbo-Pascal (desole,
vous ne le trouverez pas sur la
disquette Pom's. . .) ;
dans le menu des Options du
compilateur, demandez une
compilation vers un fichier
. com et a partir de l'adresse
5000 (sinon...).
La compilation de essai. pas,
utilisant diag.pas, produira un
fichier essai . com directement
utilisable. Les habitues du Pascal
Apple apprecieront certainement
la rapidite" de la compilation. . .
Procedures
graphiques
Voici la liste des procedures
definies par diag.pas :
Hge passe en mode graphique en
effacant la page graphique
Hg idem mais sans effacer
Hplot (x,y) idem qu'en
Applesoft (x<280, y<192)
Hpos (x,y) place le curseur
sur le point indique sans rien
tracer
Hplot To (x,y) trace du
point courant vers le point
indique
Hline (xl , yl , x2 , y2)
trace une droite entre les deux
points indiqu^s
HgrlnitCercle procedure
d'initialisation du trace de
cercle ; a appeler obliga-
toirement, mais une seule fois
par programme
Cercle (cx,cy,r) trace
un cercle de centre cx,cy et de
rayon r
Hcolor (couleur) defi-
nit la couleur: noir, blanc,
ocre, bleu, vert ou rouge
BackGround (couleur)
deTinit la couleur du fond de
l'ecran
Touche attente d'une touche
clavier pour continuer le
programme
Reponse (rep) retourne le
code ASCII de la touche
frappee (rep est de type
char)
Text retourne au mode texte.
Ne pas utiliser Readln
Texte idem mais efface l'ecran
et autorise l'emploi de
Readln .
Tous les parametres numeriques
de ces procedures sont des
entiers.
Pendant l'activation du mode
graphique, il est interdit
d'effectuer des entrees/sorties (en
raison de l'architecture memoire
de CP/M), hormis Read
(Kbd, Variable) qui ne renvoie
pas d'6cho a l'ecran ; on peut
egalement ex6cuter un Readln
juste avant de revenir au mode
texte par Texte.
a
Pom's n° 31
59
Source DIAG.PAS
(Turbo-Pascal)
Type
Couleur = ( Noir,Ocre,Bleu,Blanc,Vert,Rouge ) ;
Var
Cosinus,Sinus : Array [0..90] of Real ;
Procedure Jsr ( Adh.Adl : Byte ) ;
Begin
Mem [ $F3D0 ] := Adl ; { Poids laible sous-programme }
Mem($F3D1 j := Adh ; { Poids fort " )
Inline ( $2A/$DE/$F3/ { LD HL, $F3DE }
$77); { LD (HL), A }
End;
Procedure Hge ;
Begin
Mem[$E000j:=0;
Mem[$F0E6]:=$4O;
Jsr ( $F3,$F2 ) ; { Efface I'ecran du moniteur )
Mem[$E055]:=0;
Mem[$E052]:=0;
Mem[$E0571:=0;
Mem[$E050j:=0;
End;
Procedure Hg ;
Begin
Mem[$F0E6]:=$40;
Mem[$E0O0]:=O;
Mem[$E0551:=0;
Mem[$E052]:=0;
Mem[$E057];=0;
Mem[$E050]:=0;
End;
Procedure Hplot ( x,y : Integer ) ;
Begin
Mem[$F045]:=y;
Mem[$F047]:=xDiv256;
Mem[$F046]:=xMod256;
Jsr ( $F4,$57 ) ; { Hplot du basic }
End;
Procedure Hpos ( x,y : Integer ) ;
Begin
Mem[$F045]:=y;
Mem[$F0471:=xdiv256;
Mem[$F046]:=xmod256;
Jsr($F4,$11);
End;
Procedure HplotTo (x,y : Integer ) ;
Begin
Mem[$F045j:=xMod256;
Mem [ $F046 ] .= x Div 256 ;
Meml$F047]:=y;
Jsr( $F5,$3A ) ;
Jsr( $F5,$CB ) ;
End;
Procedure Hline (x1,y1,x2,y2 : Integer) ;
Begin
Hpos(x1,y1);
HplotTo ( x2,y2 ) ;
End;
Procedure HglnitCercle ;
Var
i: Integer;
Begin
For i := to 90 do
Begin
Cosinus [ i] := Cos ( i/360'3. 14159 ) ;
Sinus [i] := Sin (i/360'3. 14159) ;
End;
End;
Procedure Cercle ( cx.cy.r : Integer ) ;
Var
n,Teta,x,y : Integer ;
Procedure Print ;
Begin
if((x>-1) and(x<280) and(y>-1) and(y<192)) then Hplot (x,y);
End;
Procedure Ex ( Var x,y : Integer ) ;
Var
i: Integer;
Begin
i*y;
y:=x-cx + cy;
x:=i-cy+cx;
End;
Procedure Exm ( Var x,y : Integer ) ;
Var
i: Integer;
Begin
\>y;
y:=cx-x + cy;
x:=cy-i+cx;
End;
Begin
n>f;
Case r of
U :n:=20;
5..10:n:=10;
10..18:n:= 6;
19.28 :n;= 3;
29..45 :n:= 2;
End;
Teta;=0;
Repeat
x := Trunc ( r ' Cosinus [ teta ]+cx) ;
y := Trunc ( r ' Sinus [ teta ] + cy) ;
Print;
Exm(x.y);
Print;
x±2'cx-x;
Print;
Ex(x,y);
Print;
y:=2'cy-y;
Print;
Exm(x.y);
Print;
x;=2'cx-x;
Print;
Ex(x.y);
Print;
60
Pom's n°31
Teta := Teta + n ;
Until Teta>= 90;
End;
Procedure Hcolor ( Coul : Couleur ) ;
Var
Valeur:Byte;
Begin
Case Coul of
Noir : Valeur := $00 ;
Ocre : Valeur := $2A ;
Bleu: Valeur := $55;
Blanc: Valeur := $7F ;
Vert : Valeur := $M ;
Rouge: Valeur :=$D5;
End;
Mem [ $F0E4 j := Valeur ; { Couleur de trace j
End;
Procedure BackGround ( Coul : Couleur ) ;
Var
Valeur: Byte;
Begin
Case Coul of
Noir: Valeur := $00;
Ocre: Valeur :=$2A;
Bleu: Valeur := $55;
Blanc: Valeur := $7F ;
Vert : Valeur := $AA ;
Rouge: Valeur := $D5 ;
End;
Mem [ $F045 ] := Valeur ; I Couleur de trace )
Jsr($F3,$F4) ;
End;
Procedure louche;
Var
Rep: Char;
Begin
Read(Kbd,Rep);
End;
Procedure Reponse ( Var Rep : Char ) ;
Begin
Read ( Kbd.Rep ) ;
End;
Procedure Text;
Begin
Mem[$E001]:=0;
Jsr ( $F3,$99 ) ;
End;
Procedure Texte ;
Mem[$E001]:=0;
Jsr($F3,$99);
ClrScr;
End;
Source ESSAI.PAS
(Programme de demonstration
Turbo-Pascal)
I Ce programme contient un exemple d'utilisation de certaines }
{ procedures graphiques. Elles ne sont pas toutes utilisees id. }
{ La liste complete est donnee dans I'article. II ne faut pas oublier }
( de le compiler avec une adresse de debut de 5000. }
Program Essai ;
Var
i :Real;
i,x,y. Integer;
Car: Char;
Caractere : Char ;
(Le fichier inclus Diag. Pas contient les instructions graphiques. }
{ II est possible de I'inclure directement au programme en le lisant }
I comme un bloc. Dans ce cas, la ligne ci-dessous doit disparaitre. }
($IDIAG.PAS )
Begin
ClrScr;
Writeln ( Texte avant passage en mode graphique') ;
Writeln ( Veuillez patienter' ) ;
{ HglnitCercle n'est necessaire que si I'on a I'intention d'utiliser la }
{ la procedure Cercle, dans ce cas elle est indispensable. Son }
{ executbn prend environ une dizaine de secondes, et permet un }
{ gain de temps dans le trace des cercles. Elle est necessaire. }
HglnitCercle ;
{ Hge fait passer en mode graphique, avec effacement
Hge;
{ Hcobr selectionne la couleur.
{ Les couleurs sont : Blanc,Noir,Ocre,Bleu, Vert et Rouge.
Hcolor (Blanc);
/>/;
{ Cercle trace un cercle de centre et de rayon donne.
Cercle (8'i+ 10, 5 */+ 10, 9);
/:=/+»;
Until i=30;
r:=0.0;
a:=0;
{ Hpos positionne le curseur graphique surl'ecran graphique.
Hpos(140,95);
Repeat
x:=Trunc(140 + r'Cos(a));
y:=Trunc( 95 + r'Sin (a)) ;
{ HplotTo trace une droite entre la position du curseur et la
{ position indiquee.
HplotTo (x,y );
r:=r+1.5;
a := a +1.553;
Until r>95;
I Text permet de revenir en mode texte sans effacer la }
{ page texte. Attention, si I'on emploie Text, il ne faut pas }
{ employer de Readln avant Text pour attendre qu'une louche j
{ soit frappee au clavier pour continues mais Reponse ou Touche }
{ qui permettent d'attendre qu'une touche du clavier soit frappee }
( pour continuer /"execution du programme. }
Pom's n°31
{ Leur utilisation est obligatoire si I'on veut take une pause.
Reponse ( Caractere j ;
Text;
Writeln ( le texte a bien ete conserve par Text') ;
Writeln ;
Writeln ( louche tapee : '.Caractere ) ;
} Writeln ;
Writeln ( Tapez une louche pour quitter le programme') ;
Touche;
ClrScr ;
End.
Impression sur graphisme
et mise en page sur
Macintosh, par Andreas
Pfeiffer, Cedic/Nathan.
Bon ouvrage qui represente un
renouvellement important par
rapport a la prec6dente edition
(Applications graphiques pour
Macintosh, 1985).
On garde les grands classiques :
en dessin, MacPaint et ses
satellites ClickArt et les planches
d'images, MacDraft, MacSpace,
Chart, SlideShow. Dans la mise
en pages, ReadySetGo,
MacEditeur et PageMaker. Et
aussi MacTablet, MacVision et
ThunderScan.
On trouve beaucoup de
nouveautes comme : en dessin,
ComicWorks, Fontastic,
FullPaint, MacBillBoard,
MacDraw, Stat Works (il manque
toutefois les Criket).
Particulierement en dessin 3D,
SpaceEdit, EZDraft, Mac3D,
MacArchitrion. Et aussi Excel,
JustText... II manque en
revanche 4 eme dimension, ainsi
que les nouveaux traitements de
textes Writer + et Word 3.
La mise en page est bonne,
l'auteur ayant conserve
l'astucieuse formule consistant a
mettre en relief ses remarques
importantes sous forme de
fac -simile* de calepins.
En revanche, on peut lui
reprocher, comme a son
predecesseur, d'etre positionne
un peu en porte a faux :
insuffisant, evidemment, pour
servir de mode d'emploi r6sume"
et, trop classique, ne laissant
guere de place a des trues ou
astuces d'utilisation.
La programmation en Basic
avec ProDOS, InterEditions,
265 pages. Traduit de l'anglais.
II s'agit d'un livre fort bien
presente (style manuel de
rimageWriter II, manuels de
reference) dont la reliure spirale
facilite la consultation.
L'ensemble des ordres ProDOS
accessibles en Basic est aborde de
fagon didactique a l'aide de
nombreux exemples. Le livre vise
en priority le nouvel acqu6reur
d'un Apple // demuni de
documentation.
L'index bien fait permet de
retrouver facile ment la syntaxe
oubliee, la signification de
l'erreur 20 ou les adresses
m^moires affectes par un
IN£1000parexemple.
L'ouvrage est accompagne" d'une
disquette comprenant de
nombreux exemples de
programmes, mais 6galement de
l'utilitaire APA qui a lui seul
justifierait l'achat. APA donne de
nouvelles fonctions a l'Apple // :
- numerotation automatique des
lignes en Basic ;
- renumerotation ;
- fusion de programmes ;
- suppression des REMs ;
- listage des variable ;
- conversions decimal/hexa. . .
Excel, La pratique, par Mary
Campbell, InterEditions, 512
pages. Traduit de l'anglais.
Voici un livre comme savent le
faire les americains : clair et bien
illustre\ mais 6crit pour des
lecteurs au ras des paquerettes ; la
traduction est bien faite, ce qui est
assez rare pour etre note\
Nous avons trouve dans cet
ouvrage une lacune de premiere
imponance : il n'y a pas de copie
d'ecran avec les formules.
Cela ne nous semble pas tres
sdrieux de former les gens a
l'utilisation d'un tableur sans que
les formules ne soient
fr6quemment present6es en
regard des feuilles de calcul.
Par ailleurs, l'auteur ne semble
avoir pas remarque" qu'il y avait
des bogues dans Excel et, par
consequent, n'indique pas la
facon de les contoumer.
En conclusion, nous conseillons
plutot le recours a d'autres
ouvrages d'initiation a Excel.
62
Pom's n°31
force de faire
"joujou" avec la
souris, nous avons
trouve qu'il pour-
rait etre interessant d'ecrire
un petit programme
"portable" et modulaire
pour exploiter la souplesse
de la souris. Ainsi, ce
programme vous permettra
de creer des menus
deroulants d'une maniere
simple, et sera a meme de
donner un nouveau 'look' a
vos programmes...
LEMOUSE a 6t6 ecrit pour les
Apple lie et utilise les instructions
du 65C02, ainsi que les
caracteres de la souris.
Fonctionnement
du programme
Ce programme donne un exemple
possible du travail en Basic, avec
les interruptions et dans un envi-
ronnement ProDOS. Une fois
cette routine lancee, 1'utilisateur
du programme Basic dispose
d'une ligne de commandes acces-
sible avec la souris.
Le programme est quasiment
transparent et, si par 'hasard'
vous perdiez l'interruption de la
souris (absence du curseur), vous
pourriez toujours le reconnecter
en passant par "&". Ce
programme est tres simple, nous
pouvons meme envisager de
placer la partie principale dans le
Basic puis les tables de menus...
en RAM et de cr£er une nouvelle
commande (MOUSE par exem-
ple).
Pour vous donner une idee de
"l'ambiance" creee , vous trouve-
rez ici une serie de menus dont
seules les fonctions de ProDOS et
MODE sont disponibles (le reste,
vous pouvez le completer suivant
votre machine... il suffit d'ins£rer
votre routine a I'emplacement
FnMENUx prevu).
Par le menu ProDOS : vous dis-
posez de :
• CATALOG, pour faire un
catalogue normal ;
• EXECUTE permet d'executer
le programme dont le nom est
WORKFILE ;
• CHARGE, charge en me-
moire le programme Basic dont
le nom est WORKFILE ;
• SAUVE sauvegarde sur dis-
quette le programme Basic en
memoire sous le nom
WORFILE.
Apres 'Execute' et 'Charge',
ProDOS deconnecte la souris ;
vous pouvez la reconnecter en
passant par "&"
Par le menu MODE : vous acce-
de/, a :
• VTBL ON (vertical blan-
king), active les interruptions
suivant le rafraichissement de
1'ecran ; ce mode est 'dyna-
mique' et permet d'avoir une
gestion souple et agreable de la
souris ;
• VTBL OFF, l'interruption ne
vient que si la souris a ete d6-
placee. Pour voir la difference
avec le premier mode, il vous
suffit de mettre sous mode
VTBL OFF, puis cliquer sur
un menu et lachez le bouton
tres doucement - si vous faites
cela correctement, le menu
devrait rester affiche" - puis
faites la meme chose avec
l'autre mode) ;
• MOUSE OFF desactive le
travail sous interruptions de la
souris (vous pouvez revenir
par"&").
Structure du
programme
104-112, les noms des menus
disponibles a afficher sur la ligne
de 1'ecran.
117-270, les tables des menus,
dont la structure est la suivante :
• les deux premiers octets desi-
gnent la marge gauche et droite
de la fenetre deroulante ;
• le troisieme octet represente le
nombre de fonctions (n) du
menu, plus deux ;
• le quatrieme octet n'est pas
utilise.
• les n couples d'octets suivants
contiennent les adresses (fai-
ble/fort) de la meme fonction
de ce menu (FnMENUx) ;
• viennent ensuite les caracteres
de la fenetre a afficher (verifiez
que les caracteres de chaque
ligne, plus les 'bornes' gauche
et droite, correspondent bien
au nombre de caracteres
MDMENU-MGMENU+1).
117-270, les cinq tables.
276-283, emplacement des
fonctions du premier menu.
286-334, les fonctions de
ProDOS.
335-389, emplacement des
fonctions des menus suivants.
392-469, les sous-programmes.
471-567, gestion de la carte 80
colonnes (cela assure la compati-
bilitee entre les //c les //e 65C02 ;
les possesseurs de //c pourront
remplacer READCAR par
PICKY et AFFCAR par COUT).
569-674, les sous-programmes.
676-706, affiche le 'marqueur'
a gauche de la fonction choisie (si
vous voulez avoir des caracteres
Pom's n°31
63
en inverse, il suffit de changer :
CMP I'D 1
votre routine
d' inversion des
caracteres
<normal>
BEQ
JSR
708-886, routine de traitement
des differents cas (bouton et de
souris).
888-906, sous-programmes de
calcul.
910-944, partie principale du
traitement des interruptions.
947-980, sous-programmes
pour initialiser la "fenetre" de la
souris.
985-1042, programme princi-
pal.
1047-1069, faire un catalogue
en passant par l'interprdteur
Basic.
Nous pensons que cet utilitaire,
du fait de sa structure modulaire,
est simple et assez ouvert ; il est
done envisageable d'ecrire des
"menus" afin de constituer une
sorte de "super boite a outils
fonctionnant avec des menus
deroulants.
A vous de jouer maintenant. . .
Programme 'START.MOUSE'
1 PRINT CHR$ (4); "-LEMOUSE3 .O.C"
20 HOME : PRINT " ASSUREZ QUE VOTRE SOURI
S EST EN PLACE "
60 PRINT : PRINT CHR$ (4) ; "CATALOG"
70 GET A$
Programme 'WORKFILE'
// s'agit du programme sur lequel vous travaillez
habituellement. II peut etre lance' de faqon directe
par le startup.
Source 'LEMOUSE 3.0'
Assemblage par ProCODE
1
*
2
*
3
*******************
4
*
5
• LEMOUSE 3.0
6
' par Le Pham
HIEP
7
*
8
*******************
9
*
10
11
ORG
S7000
12
IRQ
S3FE
13
14
COUT
$FDED
15
16
BASL
$28
17
IS
WNDTOP =
$22
19
20
INVFLG
$32
21
*
22
23
24
25
ETATM
$778
26
YH
$5F8
27
YL
$4F8
26
XH
$578
29
XL
$478
30
SETMOUSE =
$12
31
SERVEMOUSE =
$13
32
READMOUSE ■
$14
33
CLEARHOUSE =
$15
34
POSMOUSE =
$16
35
CLAMPMOUSE =
$17
36
HOMEMOUSE =
$18
37
INITHOUSE =
$19
39
39
*
40
41
JMP
DEBUT
42
43
44
45
46
SENSI
DFB
$03
;precxsion de la souris 1-
47
BASLM
DFB
S00,$01
48
BASLM2
DFB
S00,$00
49
MHORI
DFB
$00, $00
50
MVERTI
DFB
$00
51
MVERTI2
DFB
$00
52
OLD CAR
DFB
SAO
53
54
NFLAG
DFB
00
55
NFLAG2
DFB
00
56
MGMENU
DFB
00
57
MDMENU
DFB
00
58
NFCTN
DFB
00
59
60
XT AMP
DFB
00
61
62
*
63
MAXMENU
DFB
6
64
BREAKF
DFB
00
65
66
*
67
MAXFEH
DFB
79. 00
;lcl 80 col
68
MAXFEV
DFB
23
;et 24 llgne
69
*
70
CALCTAM
DFB
$00
71
TAMPON
DFB
SAO
72
73
74
75
76
INTMODE
DFB
S0F
.-mode d' interrupt ion de la
souris
77
N
DFB
$04
;n du slot souris
78
CN
DFB
$C4
;CN
79
NO
DFB
$40
;n0
80
********
*******************
81
*
82
TABMENU
DA
MENU1
; la pomme
83
DFB
1
84
DA
MENU 2
;prodos
85
DFB
5
86
DA
MENU 3
/basic
87
DFB
14
88
DA
MENU4
/monitor
89
DFB
22
90
DA
MENU5
; imprimant
91
DFB
32
92
DA
MENU6
/mode
93
DFB
44
94
DA
XXXX
95
DFB
51
96
97
98
99
100
101
102
103
104
105
• ETC
****************************************
TITRE
HEX 41
ASC "
PRODOS"
64
Pom's n°31
1 06
ASC
■*
BASIC
I Q
UtA
t HMttNUH
107
ASC
Mftfj T 7Y1D "
1 Q 1
1 yj
1 08
ASC
TMPR TMA WT "
lWr t\l rLH/V I
1 94
ASC
109
ASC
„
MODE"
1 95
ASC
LiSL.
110
DFB
00
196
ASC
'Z '
111
197
ASC
1 1
112
198
ASC
"tfexa "
113
199
ASC
'Z'
ProDOS
114
115
116
117 MENU1
■ ■ ' ' - < ■ • - * - - - ' < ' ' -
DFB 00, 1 6
7 7 o
1 1 a
ut a
119
120
DA
121
DA
122
DA
123
124
ASC
125
HEX
126
HEX
127
ASC
128
HEX
129
ASC
130
ASC
131
ASC
132
133
ASC
134
135
136 *
137
138
139 MENU2
DFB
140
DFB
141
142
DA
143
DA
144
DA
145
DA
146
;MGMENU MDMENU
;2 fctn+2
•tc> Le PiTAM 85"
ASC • LLLI.LLLLLLLLLLLL •
147
148
149
ISO
151
152
153
154
155
156
157
158
159
160
161
162
163
1 64 •
2 65
166
1 67 MENU3
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183 '
184
185
186 MENU4
187
188
189
190
191
F1MENU2
F2MENU2
F3MENU2
F 4MENU2
HEX 5F
ASC "Catalogue "
HEX 5A
HEX 5F
ASC "Execute "
HEX 5A
HEX 5F
ASC "Charge
HEX 5A
HEX 5F
ASC "Sauve
HEX 5A
ASC ' LLLLLLLLLLLL '
DFB 13,24
DFB 04, 00
DA
DA
F1MENU3
F 2 MENU 3
HEX 5F
ASC "RENUMBER "
HEX 5A
HEX 5F
ASC "SEARCH
HEX 5A
ASC ' LLLLLLLLLLL '
DFB 21 , 32
DFB 06, 00
DA F1MENU4
DA F2MENU4
DA F3MENU4
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
25 7
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
"RegLstre "
ASC
ASC
ASC
ASC •_ •
ASC "Execute "
ASC 'Z'
ASC 'LLLLLLLLLLL •
MENU5 DFB 31,41
DFB 08, 00
DA
DA
DA
DA
DA
DA
ASC
ASC
ASC
ASC
ASC
ASC
ASC
ASC
ASC
ASC
ASC
ASC
ASC
F1MENU5
F2MENU5
F3MENU5
F4MENU5
fbMENUb
F6MENU5
"Listing
•Z_ '
"Text 40
•Z_ •
"Text 80
•Z_'
"Hgr 1
<Z_<
"Hgr 2
•Z_>
"DHGR
•Z-
ASC 'LLLLLLLLLL '
MENU 6 DFB 43,57
DFB 05, 00
DA
DA
DA
F1MENU6
F2MENU6
F3MENU6
;prodos on
;prodos off
ASC '_ '
ASC "VTBL OFF
ASC <Z<
ASC
ASC
ASC
ASC
ASC
ASC
i •
"VTBL ON
•Z'
i i
"MOUSE OFF
ASC 'LLLLLLLLLLLLLL '
MENU 7 = »
**************************
XXXX EQU •
DFB $CC,$CS
DFB 00
DFB 00
**************************
F1MENU1 EQU •
RTS
Pom's n°31
65
278
364
RTS
279
F2MENU1
EQU
*
365
280
RTS
366
F4MENU5 =
*
281
367
RTS
282
F3MENU1
=
*
368
283
RTS
369
F5MENU5 =
*
284
370
RTS
285
371
286
Fl MENU2
EQU
*
372
F6MENU5 =
*
28 7
SEI
373
RTS
pOO
LDX
t<CATALOG
374
289
LDY
i>CATALOG
375
290
STX
COMMAND*!
376
F1MENU6 =
*
291
STY
COMMAND '2
377
LDA
l$07 ; 1' interrupt ion vlent du mo
292
JSR
CONT
uvement de la sour is
293
378
STA
INTMODE
p QA
RTS
379
RTS
295
380
296
F 2 MENU 2
EQU
*
381
F2MENU6 =
*
297
SEI
382
LDA
ISOF ;1' Interruption vient du ra
298
LDX
t<EXEC
ffraichisement d'ecran
LDY
t>EXEC
383
STA
INTMODE
300
STX
COMMAND* 1
384
RTS
301
STY
COMMAND+2
385
302
JSR
CONT
386
F3MENU6 =
* /desactlve la sourls
if) i
CLI
387
LDA
IS01 ; souris en mode passlt
304
RTS
388
STA
INTMODE
J t
ASC
"-N0RKF1LE"
389
RTS
306
HEX
8DO0
390
307
391
308
392
*************** **************** *********
"
*
393
* rout act i Mouse
310
SEI
394
• input : Y setmouse. servemouse A mode eventu
31 1
LDX
i<LOADH
lie
"lip
LDY
t>LOADW
395
* uti : X Y
31 3
STX
COMMAND+1
396
* output: rlen
314
STY
COMMAND+2
397
****************************************
31 5
JSR
CONT
398
31 6
CLI
399
LEMOUSE LDX
SC400, Y
31 7
RTS
400
STX
XXMOUSE-H
318
LOADW
ASC
"LOAD UORKFILE"
401
SMOUSE LDX
CN
J J y
HEX
8D0O
402
LDY
NO
320
403
XXMOUSE JSR
SC400
j pi
404
RTS
1PP
f HMtNU2
=
405
SEI
406
324
LDX
KSAVEW
407
**********************************
325
LDY
t>SAVEH
408
•rout uti prodos via MLI
326
STX
COMMAND +1
409
"encre :A fctn code
327
STY
COMMAND +2
410
:XY adr du parametre (faible fort)
328
JSR
CONT
411
'appel : JSR
LEPRODOS
329
CLI
412
*sortl :cf manuel
330
RTS
413
*************
*********************
331
414
332
SAVEW
ASC
"SAVE UORKFILE"
415
LEPRODOS STA
LEPR01 13
333
DFB
SSD, 00
416
STX
LEPR0H4
334
417
STY
LEPR0H-5
335
f: MENU J
~~
418
LEPR01 JSR
SBFOO
J JO
RTS
419
DFB
00
337
420
DA
SFFFF
338
F2MENU3
—
*
421
RTS
339
RTS
422
423
341
424
*********************************
OA p
425
•>a 7
426
ALLOCM
*
RTS
427
LDY
ISETMOUSE
428
LDA
INTMODE
346
429
JSR
LEMOUSE
347
RTS
430
348
431
RTS
349
f 3MLNU4
*
432
RTS
433
351
434
***********************************,
352
F4MENU4
=
*
435
*
353
RTS
436
'TFER calcul 16 bits
354
437
'ftnc : !AY)/(2'sensl) => (AY)
355
438
•entre:AY valeur cal
JDO
439
'uti .-tout
357
Fl MENUS
=
*
440
************************************
358
RTS
441
359
442
TFER LDX
SENSI
360
F 2 MENU 5
*
443
STY
CALCTAM
361
RTS
444
CLC
362
445
CLD
363
F3MENU5
*
446
TFER1 ROR
66
Pom's n°31
44 7
ROR
533
448
L/C/A
534
*40 col
A A Q
11 y
BNE
TFER1
535
} SCRN40 LDY
YSAVE1
450
LDY
536
BVS
1 STOR40
451
RTS
537
PLA
452
3 JO
LDA
( BASL) , Y
AKO
1 3 J
*************
************
********
539
PHA
454
*TFERINV
31U
BVC
1 EXIT
*fctn
: AY • 2"SENSI
=> AY
541
A c £
H 3
*
542
lolURlU PLA
90 /
********************* ************
543
PHA
458
CA A
311
STA
(BASL) , Y
A^Q
1 D y
TFERINV
LDX
SENS I
545
A Cf\
1 ou
STY
CALCTAM
54 6
I EXIT PLA
A £ J
1 Ol
CLC
547
LDY
YSAVE1
462
CLD
CAD
010
RTS
AC \
1 bJ
]XNV
ROL
CALCTAM
549
******************************
4 64
ROL
550
ACC.
H OJ
551
*
A CC
see
DEX
552
READCAR EQU
*
467
BNE
IINV
553
CLV
468
LDY
CALCTAM
554
JSR
SCREEN
469
RTS
c c c
333
RTS
4 70
33b
*
4 71
******* . - . ............. . . , , , , .
557
*
4 72
*
SCREEN
558
***********************
473
Text rait <te
la routine de 90 col)
33y
AFFCAR EQU
' ;afflche le caracteres ds
4 74
*
3oU
PHA
475
*fctn
:prend ou met le
car
3 bl
BIT
INVFLG ,-INVFLG = $ 32
476
*entre
:V=0
pr store
ECO
Db£
BMI
1 ST0RE2
477
*
V-l
pick
563
EOR
ISBO ;car inverse
478
*
A car a stocker
564
1ST0RE2 BIT
SEV ; (SEV) =$60
Ana
1 ly
#
Y pos hori
565
JSR
SCREEN
480
*sort
:A car eventuel
3 DO
PLA
a a j
101
*
567
SEV RTS
482
*******************************
568
483
RD80VID
SCO IF
3by
********************
484
YSAVE1
S1F
570
'AFCURM affl
curseur saugarde le car ds OI.DCAR
485
TXTPAGE1
SCO 5 4
571
*
486
TXTPAGE2
SC055
572
HOI
*
573
AFCURM EQU
HOO
*
574
JSR
SBASL
489
SCREEN
EQU
*
c 7 c
3 13
JSR
NEWXYM
A Qf]
h y\l
STY
YSAVE1
;YSAVE1 = S1F
576
TYA
A Q 7
1 yl
PHA
577
JSR
MBASCALC
492
•eviter
de changer V via
BIT
e no
3 iO
LDY
MHORI
A Q 9
1 yj
LDA
RD80VID
579
JSR
READCAR
494
BPL
1SCRNA0
;bra si 40
col
580
STA
OLDCAR
i yj
*
581
496
582
LDA
ISA2
h y /
583
AFCURM2 LDY
MHORI
498
LDA
YSAVE1
584
JSR
AFFCAR
nyy
LSR
585
JSR
RBASL
500
TAY
30b
501
BVS
ISTORBO
587
RTS
502
*
coo
300
503
'BO col pick
car
589
*********************************
504
*
590
* AFOLDCAR
3U3
PHP
591
' afflche le
caracteres qui se
50 6
SEI
;blocq IRQ pr screenholes
592
* trouvalt sous le curseur de la
50 7
LDA
TXTPAGE2
t TXTPAGE2=
SC055
593
* sour is
508
BCC
ISCRH2
594
*
509
LDA
TXTPACE1
; TXTPAGE1 =
SCO 54
3 y3
*
510
1 SCRN2
LDA
IBASL) , Y
; BASL = $28
3 yb
AFOLDCAR EQU
*
j j. i
TAY
597
JSR
SBASL
512
LDA
TXTPAGE1
598
LDA
MVERTI
513
PLP
599
JSR
MBASCALC
51 4
PLA
600
LDA
OLDCAR
31 3
TYA
601
JSR
AFCURM2
51 6
PHA
bK)£
51 7
BVC
I EXIT
603
RTS
518
604
51 9
1STORB0
PLA
bU3
520
PHA
an 6
bwb
*******************************
521
PHP
607
*
522
SEI
608
3£3
PHA
609
CBASLM EQU
*
524
LDA
TXTPAGE2
61
LDA
BASL
525
BCC
1SCRN3
611
STA
BASLM
526
LDA
TXTPAGE1
612
LDA
BASL+1
527
613
STA
BASLH+1
528
1 SCRN3
PLA
C \ A
bl 1
RTS
529
STA
IBASL) , Y
615
530
LDA
TXTPAGE1
616
531
PLP
617
*************
*********************
532
BVS
/EXIT
618
'SBASL sauvegarde la position actuelle du curseur
Pom's n°31
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
63 7
638
639
640
641
642
643
644
645
646
64 7
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
SBASL LDA BASL
STA BASLM2
LDA BASL'l
STA BASLM2+1
RTS
'RBASL recupere laposit ion du curseur
*
RBASL LDA BASLM2
STA BASL
LDA BASLH2H
STA BASL+1
RTS
*********************************
* NF.WXYM
* calcule la nouvelle position
* du curseur de la souris
NEWXYM EQU •
LDX IS04
LDA S5 78, X
LDX $478, X
JSR TFER
STA MHORItl
/prend le poids fort
/ puis falble de la posltlo
n horizontal
/ puis divlse par 2*sensl
,-mettez le resultat dans MH
ORI, +1
/ pour AFFCURM plus tard
/de meme pour la position
/ vertical
STY MHORI
LDX IS04
LDA $5F8,X
LDY S4F8.X
JSR TFER
STY MVERTI
RTS
*****************************************
"** remise a zero de tous le drapeaux
;sl //e remplace Ida #00
;sta nflag ....
ZERO EQU *
STZ NFLAG
STZ MVERTI2
RTS
****************************************
* PMENU S SCAR
* routines pour sauvergarder et charger
* les caracteres du menu a afflcher
*
PMENU LDA SFFOO, X
RTS
SCAR STA SFFOO, X
RTS
' MARQ
' afflche le marqueur a gauchea
* du fonctlon cholslt
MARQ
JSR SBASL
LDX 12
KK LDA MVERTI2
BNE 1 EFMARQ
LDX II
LDA MVERTI
I EFMARQ JSR MBASCALC
IMARQ2
IMARQ1
LDY MGMENU
JSR READCAR
CMP # '
BEQ IMARQ2
CMP t'D'
BNE IMARQ1
LDA I •_ '
BNE IMARQ1
LDA t 'D •
JSR AFFCAR
LDA MVERTI
STA MVERTI2
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
74 7
748
74 9
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
DEX
BNE I EFMARQ
JSR RBASL
RTS
******************************************
* LETT IRQ
* routines de detect Ion et analyse les dlfferentes
* cas vlent du click du bouton
LETTIRQ EQU "
LDX 104
LDA $778, X
ROL
ROL
ROL
AND #J
EOR 13
BEQ BIT 61
DEA
BEQ BIT71
DEA
BEQ BIT70
BIT 6
BIT61
IFOK
BIT70
BIT71
RTS
EQU •
LDA NFLAG
BEQ IFOK
LDA MVERTI
BEQ IFOK
JSR MARQ
RTS
EQU '
LDA NFLAG
BEQ F
JSR BIT70X
LDA MVERTI
BEQ F
INA
CMP NFCTN
BPL F
ASL
TAX
JSR PMENU
STA TOTO+1
INX
JSR PMENU
STA T0T0*2
TOTO JSR SO00O
RTS
BIT70X JSR AFFMENU
JSR ZERO
RTS
EQU -
LDA NFLAG
BNE NOMENU
1C0NTI LDA MVERTI
BEQ BIP1
SNOMENU JSR ZERO
NOMENU RTS
;on arrange d'abord les
I bit du reglstre d'etat
; de la souris
;Bouton est encore appulee
;Bouton vlent etre appulee
;Bouton vlent etre relache
/Bouton est encore relache
; pas d'ut lllsat Ion
Bouton reste appule
si le menu pas afflche
alors fin
si non regarde est on sur
la premiere llgne
; si c'est le cas pas de "m
arqueur"
/Bouton vlent etre relache
/teste si un menu afflche
; ou non
fsi oui recuperes 1 'ecran s
ous le menu
/puis prepare le vecteur du
/ JSR FnMENUx en TOTO
; charge le polds falble de
FnMENUx
/ charge le poids fort de F
nMENUx
/ sa ut a FnMENUx
/puis retourne au prog, pri
nclpal
/afflche 1 'ancien ecran sou
s le menu
/ remet les drapeaux a zero
/Bouton vlent d'etre appuie
BIP1
LDX I $00
/menu deja aff
/on est pas a la llgne do
nc pas de menu a afflcher
/recherche quel est le Menu
a afflcher puis l'afflche
/ en sauvegardant les carac
teres qui se trouvent
68
Pom's n° 31
779
LDA
MHORI
; sous le Menu
854
7B0
LDY
MAXMENU
855
LDX
XTAMP
781
INY
856
LDA
to J
782
IBOU
*
! Boucle de recherche le num
ero du menu (dans NFLAG)
857
858
XO PHA
783
DEY
; a afflcher
859
JSR
MBASCALC
784
BMI
SNOMENU
860
LDY
MGMENU
785
INX
861
786
INX
862
XI JSR
READCAR
787
INX
863
CMP
I 'D '
/cas particulier ou le cara
788
INC
NFLAG
ctere est le marqueur
789
864
BNE
X2
790
CMP
TABMENU-1 ,
X; A- (TABMENU-1, X)
865
LDA
t ' '
r axfia rcmpidcc par ie car
791
artff* rif la hnrno /rani— h\a
at- ». c » c Uc Id ill) I lit: yduCflc
792
BEQ
IF1
; cas part iculier le curseu
r pointe sur le premier
866
X2 PHA
! "?^> lll/l/7iJ frit* } f* r~f tn
r 1 'ecran ds la pile
793
; caracteres du nom du menu
867
JSR
PMENU
794
BPL
IBOU
icher
795
*
868
JSR
AFFCAR
/ on 1 'affiche
796
JSR
SBASL
: sauveciarde la noiition Act
uelle du curseur
869
870
PLA
797
871
JSR
SCAR
/ sauvegarde le cara ctere de
798
LDA
too
1 'ecran a la place du menu
799
JSR
MBASCALC
800
LDY
MHORI
873
INX
801
JSR
READCAR
! orend le caracteres sous 1
e curseur
874
875
INY
CPY
t i LSI ' - ' '
802
PHA
876
BMI
XI
803
877
804
JSR
RBASL .
878
PLA
805
PLA
879
INA
806
CMP
f "
•si c'est I'espace alors pa
5 de menu a afficher
880
881
CMP
BMI
NFCTN
XO
/a-t-on affiche les lignes
807
BEQ
SNOMENU
882
808
»
883
JSR
RBASL
; « i /in 1 rftr*! mp r~f> I a ni^i'r in
809
DEC
NFLAG
L" .1 i fifin 3 ifllfp ) ft nu mt> rn rl > i
menu
884
n current du curseur
810
DEX
c o c
RTS
/et revlent au programme pr
811
DEX
incipal
812
DEX
886
813
887
814
1F1
EQU
*
888
****************************
815
LDA
NFLAG
889
* calcule 1
addresse de
la ligne A
816
STA
BREAKF
890
*
817
891
MBASCALC PHA
818
1 CONTI
=
*
992
LSR
819
AFFO
LDY
TABMENU-3,
X
893
AND
IS03
820
894
ORA
IS04
821
LDA
TABMENU-2,
X
895
STA
BASL+1
822
BEQ
SNOMENU
896
PLA
823
897
AND
t$18
824
1 SUITE
*
898
BCC
MBASC2
825
STA
SCARi2
/ici on charge pointeurs
899
ADC
t$7F
826
STA
PMENU*2
/ recuperet ion et affichage
900
827
STY
SCAR+1
/ des car du menu et sous 1
e menu
901
902
MBASC2 STA
ASL
BASL
828
STY
PMENUtl
903
ASL
829
904
ORA
BASL
830
ASL
NFLAG
905
STA
BASL
831
ASL
NFLAG
906
RTS
832
ASL
NFLAG
907
**********************************
833
ASL
NFLAG
;n( menu du premier niveau
908
834
;possibilite de creer des m
909
**********************************
enu deroulant de 2 niveaux
910
TRAITIRQ EQU
*
835
LDX
too
911
836
JSR
PMENU
912
PHA
/pour les 6502
83 7
STA
MGMENU
/on charge la marge gauche
, droite ,
913
914
PHX
PHY
/sauvegarde des registres
838
INX
915
839
JSR
PMENU
916
CLD
840
STA
MDMENU
91 7
LDY
t SERVEMOUSE; regarde si 1 • lnterupt ion v
841
INX
lent bien de
842
JSR
PMENU
/ puis le nombre de lignes
du menu 843
918
91 9
JSR
BCS
LEMOUSE
1FIN
; la sourls
844
BEQ
SNOMENU
/assure ie cote droite ( ca
920
s particulier )
921
LDY
tSETMOUSE
•si c'est le cas
845
922
LDA
IS01
846
1 CONTI
STA
NFCTN
923
JSR
LEMOUSE
/ alors desact ive 1 'interru
847
ption
848
ASL
924
849
TAX
925
850
STX
XTAMP
;et maintenant index X poin
te sur le premier
926
JSR
AFOLDCAR
/affiche le caractere qui a
ete sous ie curseur
851
; caracteres a afflcher
927
852
853
AFFMENU
JSR
•
SBASL
928
LDY
IREADMOUSE
/a jour l'etat et position
de la souris
Pom's n°31
69
929
JSR LEMOUSE
1011
930
1012
LDA
t$0F
931
JSR
LETTIRQ
;traltement des "cllcques"
1013
STA
INTMODE
932
JSR
AFCURM
;a[Ciche la nouvelle posltl
on du curse ur
1014
1015
LDA
STA
I" "
OLDCAR
933
1016
934
1017
935
CLC
1018
LDY
UNITMOUSE
.■active la souris
93 €
IFIN
LDY
ISETMOUSE
,-remet mode d'interuption
1019
JSR
LEMOUSE
937
LDA
INTMODE
1020
938
JSR
LEMOUSE
1021
JSR
INITPOSM
.■declare la tallle de la fe
939
net re a travalller
940
PLY
1022
941
PLX
1023
LDY
t CLEARMOUSE
942
PLA
,-recupere les registres a
la sortie
1024
1025
JSR
LEMOUSE
943
1026
LDY
tSETMOUSE
944
RTI
1027
LDA
INTMODE
945
1 028
JSR
LEMOUSE
946
1029
947
1030
LDX
KTRAITIRQ
948
*
1031
LDY
l>TRAITIRQ
949
*
INITPOSM Initialise la fenetre de la souris
1032
STX
$3FE
950
« la
tenet re
de la souris sera calculee par
1033
STY
$3FF
951
' la
potsition maximum horizontale (puis verticale)
1034
7090- F4 ES AO AO AO AO AO AO
952
* en
multlpllant par 2'
SENSI
1035
LDA
l$4C
7093- AO AO AO AO SA 4C 4C 4C
953
*
1036
STA
$3F5
70A0- 4C 4C 4C 4C 4C 4C 4C 4C
954
INITPOSM EQU
#
1037
LDA
t$00
70AB- 4C 4C 4C 4C 4C 04 10 06
955
LDA
too
1 038
STA
$3F6
70B0- 00 00 72 10 72 2B 72 4A
956
STA
S478
1039
LDA
l$70
70B8 - 72 5F C3 El F4 El EC EF
957
STA
$578
1040
STA
$3F7
70C0- E7 FS ES AO SA SF CS FB
958
LDY
MAXFEH
1041
70C8- ES E3 FS F4 E5 AO AO AO
959
LDA
MAXFEHtl
1 042
RTS
70D0- SA SF C3 EB El F2 E7 ES
70DB- AO AO AO AO 5A SF D3 El
960
JSR
TFERINV
1043
70E0- FS F6 ES AO AO AO AO AO
961
STA
S5F8
1044
70EB- 5A 4C 4C 4C 4C 4C 4C 4C
962
STY
S4F8
1045
70F0- 4C 4C 4C 4C 4C OD IB 04
963
TXA
1046
70FB- 00 69 72 6 A 72 SF 02 CS
964
LDY
ICLAMPMOUSE
1047
CONT EQU
*
7100- CE DS CD C2 CS D2 AO 5 A
965
JSR
LEMOUSE
1048
7108- SF D3 CS CI 02 C3 C8 AO
966
■
1049
* CATALOG SOUS PRODOS
7110- AO AO SA 4C 4C 4C 4C 4C
967
TXA
1050
*
7118- 4C 4C 4C 4C 4C 4C 15 20
968
STA
$478
1051
*
7120- 06 00 6B 72 6C 72 6D 72
969
STA
$578
I fI<T9
1 UD£
LDX
too
7128- 6E 72 SF CC E9 F3 F4 AO
970
LDY
MAXFEV
1 053
COMMAND LDA
CATALOG, X
7130- AO AO AO AO SA SF CS ES
971
972
973
TXA
1 054
STA
$200, X
7 1 38- F8 El AO AO AO AO AO 5A
JSR
STA
TFERINV
$5F8
1055
1056
CMP
BEQ
l$8D
COMFIN
7140- SF 02 ES E7 ES F3 F4 F2
7148- E5 AO SA SF CS FB E5 E3
7 ISO- FS F4 ES AO AO SA 4C 4C
974
STY
S4F8
1057
INX
715B- 4C 4C 4C 4C 4C 4C 4C 4C
975
TXA
1058
BRA
COMMAND
7160- 4C IF 29 08 00 6F 72 70
976
INA
1059
*
716B- 72 71 72 72 72 73 72 74
977
LDY
ICLAMPMOUSE
1060
COMFIN JSR
$BE03
7170- 72 SF CC E9 F3 F4 E9 BE
978
JSR
LEMOUSE
1061
rts
7178- E7 AO SA SF D4 ES FB F4
979
1062
71B0- AO B4 BO AO SA SF 04 ES
980
RTS
1063
7188- FS F4 AO B8 BO AO 5A SF
981
1064
MESEROR LDA SBEOF
7190- C8 E7 F2 AO Bl AO AO AO
982
*
1065
JSR
SBEOC
7198- 5A SF CS E7 F2 AO B2 AO
983
*
DEBUT du programme
1066
RTS
71A0- AO AO 5A SF C4 CB C7 02
984
*
1067
*
71AS- AO AO AO AO SA 4C 4C 4C
985
DEBUT
EQU
*
1068
CATALOG ASC "CATALOG-
71B0- 4C 4C 4C 4C 4C 4C 4C 2B
986
JSR
$C300
/active la 80 col
1069
HEX 8D
71BB- 39 05 00 75 72 78 72 Bl
987
JSR
SFB39
; fenetre standard
71C0- 72 SF 06 D4 C2 CC AO CF
988
989
71C8- C6 C6 AO AO AO AO SA SF
JSR
SFC58
.■HOME
Recapitulation
71D0- D6 D4 C2 CC AO CF CE AO
71D8- AO AO AO AO SA SF CD CF
990
LDA
12
;flxe marge haute de ecran
LEMOUSE3. 0.C
71B0- DS 03 CS AO CF C6 C6 AO
991
STA
WNDTOP
71E8- AO AO SA 4C 4C 4C 4C 4C
992
Apres avoir saisi ce code
71F0- 4C 4C 4C 4C 4C 4C 4C 4C
993
LDA
too
sous moniteut, vous le
71F8- 4C CC CS 00 00 60 60 60
994
JSR
MBASCALC
;affiche la premiere ligne
sa uvegarderez par
7200- 78 A2 F9 AO 75 SB B2 75
de comma nde
BSA VE L EMOUSE3. 0. C.
7208- 8C E3 75 20 DF 75 SB 60
995
AS7000,LS601
7210- 78 A2 20 AO 72 BE E2 75
qq(:
LDY
101
7000-
4C 75 75 03 00
04 00 00
721B- 8C E3 75 20 DF 75 SB 60
997
1B0U
LDA
TITRE-l.Y
7008-
00 00 00 00 AO
00 00 00
7220- AD D7 CF D2 CB C6 C9 CC
998
BEO
IFIN
7010-
00 00 00 06 00
4F 00 17
722S- CS BD 00 78 A2 38 AO 72
7018-
00 AO OF 01 C4
40 63 70
7230- BE E2 75 BC E3 75 20 DF
999
JSR
AFFCAR
7020-
01 AD 70 OS F5
70 OE IE
7238- 75 58 60 CC CF CI C4 AO
1000
INY
IBOU
7028-
71 16 61 71 20
B7 71 2C
7240- D7 CF 02 CB C6 C9 CC CS
1001
BNE
7030-
F9 71 33 41 AO
AO AO DO
724B- BD 00 78 A2 SA AO 72 BE
1002
7038-
02 CF C4 CF D3
AO AO AO
7250- E2 75 SC E3 75 20 DF 75
1003
IFIN
LDA
§01
7040-
C2 CI 03 C9 C3
AO AO AO
7258- 58 60 D3 CI D6 C5 AO D7
1004
JSR
MBASCALC
7048-
CO CF CE C9 D4
CF D2 AO
7260- CF 02 CB C6 C9 CC CS BD
1005
LDA
t'S'
;af(iche le grand trait
7050-
AO AO C9 CD 00
D2 C9 CD
7268- 00 60 60 60 60 60 60 60
1006
LDY
179
7058-
CI CE 04 AO AO
AO CD CF
7270- 60 60 60 60 60 A9 07 8D
1007
ICON
JSR
AFFCAR
7060-
C4 CS 00 00 10
05 00 FD
7278- 1A 70 60 A9 OF BD 1A 70
1008
DEY
7068-
71 FB 71 FF 71
AB E3 A9
72B0- 60 A9 01 SO 1A 70 60 BE
1009
1010
BPL
ICON
SFC58
7070-
AO CC E5 AO DO
A6 D4 CI
7288- 00 C4 BE 94 72 AE 1C 70
JSR
7078-
70B0-
70BB-
CD AO BS 85 5A
EC B3 F5 EC ES
AO AO AO AO 5A
SF C3 El
F4 F4 ES
SF C4 El
Suite de la recapitulation
page 73...
70
Pom's n° 31
Decm-Micfid Qourevitcfi
ans un univers
micro-informa-
tique bouleverse
par les annonces
et les nouveautes d'IBM,
Apple est curieusement
devenu un symbole de
stabilite.
R6sultat : la clientele se
transforme. Ainsi, en France,
plus de 20% des Macintosh sont
actuellement vendus a des
societes figurant parmi les 100
premieres entreprises du pays. Et
ce changement de profil des
utilisateurs ne manquera pas de se
repercuter sur les futurs produits
de la firme de Cupertino.
L'interchangeabilite' des fichiers
avec le monde IBM 6tant devenue
une priorite, Apple sortira des
septembre un lecteur (Apple 5 '25
PC) capable de lire des
disquettes IBM, ainsi qu'un
systeme de recuperation sur le
Mac des fichiers de 1'IBM,
baptise" Apple File Exchange.
Les autres annonces a venir
d' Apple concernent des logiciels
de telecommunication ainsi
qu'un programme baptise Wild
Card et ecrit par Bill Atkinson,
l'auteur de MacPaint, qui serait a
la fois un generateur d'application
et un instrument d'intelligence
artificielle. Du cote des
imprimantes, on eludie a
Cupertino un modele couleurs
ainsi qu'une LaserWriter de bas
de gamme (ne comportant pas le
langage PostScript). A propos de
PostScript, il faut signaler la
sortie d'un livre en francais sur ce
langage de programmation
particulier. L'ouvrage de 164
pages distribue par BIP est divise'
en deux parties : une introduction
a PostScript et un recueil de
programmes. Livre seul
285,00 F. Livre et disquette
d'accompagnement : 550,00 F.
LaserPaint de DOS Ltd, aussi
distribue par BIP, est un logiciel
de pilotage pour la LaserWriter
Apple et les photocomposeuses
PostScript. 6 300,00 F, en
francais.
Le logiciel de lecture optique
automatique et reconnaissance de
caracteres dactylographies
READSTAR ][+ d'lNOVA-
TIC est maintenant disponible
pour Macintosh Plus.
43 000,00 F H.T. avec un
scanner Microtek 300A.
Dans son demier numero, Pom's
annoncait la creation de lecteurs
employ ant des disquettes de 10
ou 20 M6gas. lis n'auront pas
mis longtemps a deferler sur le
marche. Jasmine, qui fabriquait
deja des disques durs parmi les
moins chers du marche, propose
desormais un lecteur employant
des disquettes de 10 M6gas de
format 5' 1/4 (comme les
anciennes disquettes de 1' Apple
][, mais conditionnees dans un
etui plastique analogue aux
disquettes 3,5 pouces du Mac).
Prix pour le "Mega Drive" : 999
dollars et, pour chaque disquette :
40 dollars.
Cette meme firme propose un tres
ing6nieux disque dur de 40
m6gas, le MacBack, qui se fixe
simplement au dos du Macintosh.
Prix : 1300 dollars.
Pour les logiciels, c'est a la
rentr^e, et particulierement pour
1' Apple Expo d'octobre, qu'il
faut s'attendre a des nouveautes.
En attendant, voici des renditions
et des V.F.
Nouvelles versions
Une nouvelle version du tableur
Trapeze (distribue en France par
Alpha Systemes). La 2.0
integre en plus des possibilitds de
se construire son tableur 'en kit',
un grapheur sophistique, qui
mettent encore davantage ce
tableur a part, et le rapprochent
d'un programme de mise en
page.
Une nouvelle Edition de
Sidekick, l'ensemble
d'accessoires de bureau de
Borland, contient plusieurs
accessoires de bureau s'installant
dans le menu # , et ajoute
notamment un mini-tableur, un
mini-traitement d'idees, aux
accessoires precedents.
Nouvelle version aussi, la 2.1
d'OverVUE, 'Gestionnaire
Relationnel Multifichier' francisee
et distribu6 par Soulat Freres
S.A., plus rapide que la version
precedente.
Publication
electronique
C'est toujours le 'must'. Target
Software met la derniere main a
Scoop, un logiciel de PAO
permettant d'entourer le texte
autour d'objets irrdguliers, de
remplir une image de textes, de
pratiquer un cranage fractionnel
entre les lettres, de require les
espaces entre les lignes ou entre
les mots, d'allonger un caractere,
de faire pivoter une image, etc.
Pom's n°31
71
Letraset se prepare a sortir la
version 3.1 (encore am£lior6e!)
de Ready Set Go, Mindscape
pr£sente Graphics Works
1.1, un outil permettant de
peindre, dessiner, £crire, editer
des documents professionnels.
Italsoft vend en France
Ragtime, un traitement de textes
evolue, avec un tableur (tres
complet) et des fonctions de
micro-edition.
Microsoft a sorti avant les
vacances, en France et dans notre
langue, Works son logiciel
int6gr6 (traitement de textes,
gestion de fichiers, tableur) ainsi
que Word 3.0, la toute nouvelle
version du celebre traitement de
textes comprenant cesure
automatique et correcteur
orthographique integre\ qui en
font un des plus puissants outils
du marche, en concurrence
directe avec Writer Plus, sur
lequel il a l'avantage d'une
parfaite fiabilite.
Education
II manquait au Macintosh un
systeme auteur. C'est une
omission r£par6e avec Dr Leo
d'Apigraph, qui permet aux
enseignants de produire eux
memes des didacticiels adapted a
leurs eleves, reposant notamment
sur 1'utilisation d'un livre
interactif, de livres annexes, et
d'un cahier de 1'eleve.
Materiel
Du cote des mate>iels,
P-Ingenierie vend un boitier
miracle baptise Multi Talk. Ce
boitier permet de bancher et de
rendre partageable sous le r6seau
Apple Talk des peripheriques qui
n'etaient pas etudi6s pour cela.
Ainsi, plusieurs utilisateurs nantis
chacun d'un Mac peuvent
desormais se partager une
ImageWriter, ou un modem.
Puisque la vogue de la
publication electronique ne faiblit
pas, International Computer
propose des dcrans pleine page
parmi les moins ondreux et
s'installant par 'clipage' et done
sans dommage au Mac :
Dimension 15 (vertical A4
resolution 720 x 900 : 17 671 F),
Dimension 17 (vertical A4
resolution 768 x 1024: 23 600 F)
et Dimension 19 (horizontal A3
resolution 1024 x 915 : 24 800
F).
Transformer son Mac en
puissante station de travail ? C'est
possible avec Workstation
vendu par Abvent. Pour 25 a
50 000,00 Francs, ces cartes
ajoutent un processeur Motorola
68020 tournant a 12 ou 16
megahertz et un coprocesseur
mathematique
Autre periph6rique inte>essant :
l'Organizer II de Psion,
vendu par KA. II s'agit d'un
veritable micro-ordinateur
miniature de la taille d'une grosse
calculette, disposant d'un
langage de programmation,
permettant de saisir sur le terrain
des informations, puis de les
transmettre et de les r£cup£rer sur
le Macintosh. Un logiciel File
Pak permet de creer des fichiers
et de les manipuler, sans
connaitre la programmation.
Quant a Thunderscan, le
numeriseur s'installant dans
rimprimante ImageWriter a la
place du ruban, il a 6te"
serieusement perfectionn6 et
permet notamment d'entourer les
images dans des formes varies,
de realiser des degrades, de
sauvegarder les images en
Postscript ou en TIFF, ce qui le
rend parfaitement compatible avec
PageMaker. A remarquer que ce
meme Thunderscan est desormais
aussi disponible pour l'Apple // et
le IIgs.
Ada sur le Mac
Alsys, createur du langage Ada,
vient de signer un accord avec
Apple Computer pour le
developpement d'un compilateur
Ada destine au Macintosh II.
Rappelons que ce langage,
developpe principalement par
Jean D. Ichbiah, president
d'Alsys, a recu l'agr^ment du
gouvernement am6ricain et a
aussi 6te adopte" par la NASA.
L'Apple // ?
Les programmes- destines au GS
de Version Soft (et
particulierement GSWrite) ont
connu quelques problemes de
mise au point, epuisant parfois la
patience des utilisateurs...
Pour l'Apple //, voici un nouveau
disque dur de... 320 m£gas, le
Data Exchange de CMS
Enhancements. Une nouveaute
importante permettant de se relier
egalement au Mac et de partager
des dossiers entre les deux
families Apple.
On peut en ce moment trouver,
chez les revendeurs Apple, une
plaquette publicitaire donnant une
liste de quelques programmes qui
'tournent' sur le GS :
• Graphique
° GS/Paint
° VS/Draw
° GraphicWriter
° De Luxe Paint
° Slide Show
Chairman
° Visualizer
° Demo QuickDraw
• Son
° Digitalisation sonore
° Synthe
o Music Construction Set
° Demo QuickDraw
• Education &
Productivite personnelle
o AppleWorks
° GS/Paint
o GS/Write
° VS/Com
o VS/Draw
o GraphicWriter
° Visualizer
o De Luxe Paint
• Education &
Loisirs
° G6ographie
° Logo
° Color Mind
o Digitalisation sonore
° Synth6
o Slide Show
° Music constmction set
72
Pom's n° 31
° Demo QuickDraw
° Chairman
• Utilitaires &
Outils de developpement
° MouseDesk
° Chooser
° Memsoft
° Basic Applesoft
° Digital isation sonore
° Logo
° Slide Show
• Gestion
° Senior
° Memsoft Comptabilite
° Memsoft Ventes
° Memsoft Paye
° Memsoft Microbase
Jeux
Sur le front des jeux, voici un
nouveau simulateur de vol,
Falcon deSpectrume
Holobyte, qui repr6sente le
poste de commande d'un F16,
avec son viseur tete haute, ses
bruits de reacteurs numeris6s, la
detection radar, etc. Le meme
editeur propose un simulateur de
vedette lance torpille baptise PT
109 (du nom de la vedette ou
s'illustra pendant la guerre le
defunt president Kennedy).
On termine ces micro-
informations dans le luxe avec un
sac de transport pour Macintosh
baptise MACROCO. L'objet,
fabrique" en sdrie limitee, est en
cuir ler choix et crocodile.
8 302,00 F (quand meme !),
chez Kangourou services.
Adresses
Jasmine Technologies
555 de Haro St San Francisco
CA 94107
Alpha Systemes
18, avenue d Alsace Lorraine
38000 Grenoble
» 76 43 19 97
P-Ingenierie
226, bd Raspail
75014 Paris
« 43 21 93 36
International Computer
26, me du Renard
75004 Paris
w 42 72 26 26
KA
14, me Magellan
75008 Paris
« 47 23 72 00
Borland
Les Postilions des Bruyeres
65, me de la Garenne
92318 Sevres
Mindscape
P.O. Box 1167
Northbrook IL 60065
Italsoft
114, bd Blanqui
75013 Paris
« 47 07 35 65
CMS Enhancements
3080 A Airway Av.
Costa Mesa CA USA
Apigraph
32 bis, quai JB Simon
69270 Fontaines s/ Saone
Abvent
53, avenue de Breteuil
75007 Paris
» 47 34 43 98
BIP
13, me Due
75018 Paris
w 42 55 44 63
Alsys
29, avenue de Versailles
78170 La Celle St Cloud
INOVATIC
Immeuble Les Quadrants
3, avenue du Centre
78180 Montigny le Bretonneux
« 30 57 22 1 1
Soulat Freres S.A.
Departement micro-informatique
45-47, me de la Division Leclerc
94259 Gentilly
w 47 40 00 20
Kangourou services
B.P. 19
54130 Saint Max Cedex
w 83 21 25 33
. . suite de la page 70
7290-
AC
ID
70
20
00
C4
60
8D
7298-
A3
72
8E
A4
72
8C
A5
72
72A0-
20
00
6 1
00
FF
FF
60
AO
72A8-
12
AL
1A
70
20
87
72
60
72B0-
AE
03
70
8C
18
70
18
DB
72B8-
6A
6E
18
70
CA
DO
F9
AC
72C0-
18
70
60
AE
03
70
8C
18
72C8-
70
18
D8
2E
18
70
2A
CA
72D0-
DO
F9 AC 18
70
60
84
IF
72D8-
48
AD
IF
CO
10
32
A5
IF
72E0-
4A
A8
70
16
08
78
AD
55
72E8-
CO
90
03 AD
54
CO
Bl
28
72F0-
A8
AC
54
CO
28
68
98
48
72F8-
50
24
68
48
08
78
48
AD
7300-
55
cc
90
03
AO
54
CO
68
7308-
91
28 AD 54
CO
28
70
0E
7310-
A4
IF
70
06
68
Bl
28
48
7318-
50
04
68
48
91
28
68
A4
7320-
IF
60
BS
20
D6
72
60
48
7328-
24
32
30
02
49
80
2C
35
7330-
73
20
D6
72
68
60
70
7338-
73
20
86
73
98
20
F7
74
7340-
AC
08
70
20
22
73
8D
OC
7348-
70
A9
42
AC
08
70
20
27
7350- 73 20 7B 73 60 20 70 73
7358- AD OA 70 20 F7 74 AD OC
7360- 70 20 4B 73 60 A5 28 80
7368- 04 70 A5 29 8D 05 70 60
7370- A5 28 8D 06 70 A5 29 8D
7378- 07 70 60 AD 06 70 85 28
7380- AD 07 70 85 29 60 A2 04
7388- BD 78 05 BC 78 04 20 B0
7390- 72 8D 09 70 8C 08 70 A2
7398- 04 BD F8 05 BC F8 04 20
73A0- B0 72 8C OA 70 60 9C 0D
73A8- 70 9C 0B 70 60 BD 00 FF
73B0- 60 9D 00 FF 60 20 70 73
73B8- A2 02 AD 0B 70 DO 05 A2
73C0- 01 AD OA 70 20 F7 74 AC
73C8- OF 70 20 22 73 C9 5F F0
73D0- 08 C9 44 DO 06 A9 5F DO
73D8- 02 A9 44 20 27 73 AD OA
73E0- 70 8D 0B 70 CA DO DO 20
73E8- 7B 73 60 A2 04 BD 78 07
73F0- 2 A 2 A 2A 29 03 4 9 03 F0
73F8- 07 3A F0 3F 3A F0 OF 60
7400- AD 0D 70 F0 08 AD OA 70
7408- F0 03 20 B5 73 60 AD 0D
7410- 70 F0 27 20 34 74 AD OA
7418- 70 F0 IF 1A CD 11 70 10
7420- 19 OA AA 20 AD 73 8D 31
7428- 74 E8 20 AD 73 8D 32 74
7430- 20 00 00 60 20 C2 74 20
7438-
A6
73
60
AD
no
70
DO
08
7440-
AD
OA
70
F0
04
20
A6
73
7448-
60
A2
00
AD
08
70
AC
13
7450-
70
C8
88
.19
F0
E8
E8
E8
7458-
EE
0D
70
DD
ID
10
F0
IF
7460-
10
F0
20
70
73
A9
00
20
7468-
F7
74
AC
08
70
20
22
73
7470-
48
20
7B
73
68
C9
AO
F0
7478-
CC
CE
0D
70
CA
CA
CA
AD
7480-
0D
70
8D
14
70
BC
IB
70
7488-
BD
1C
70
F0
B8
8D
B3
73
7490-
8D
AF
73
8C
B2
73
8C
AE
7498-
73
0E
0D
70
0E
0D
70
0E
74A0-
0D
70
0E
0D
70
A2
00
20
74A8-
AD
73
BD
OF
70
E8
20
AD
74B0-
73
BD
10
70
t.e
2
AD
73
7468-
F0
8B
8D
11
70
OA
AA
8E
74C0-
12
70
20
70
73
AE
12
70
74C8-
A9
01
48
20
F7
74
AC
OF
74D0-
70
20
22
73
C9
44
DO
02
74D8-
A9
5F
48
■j::,
AD
73
20
27
74E0-
73
68
20
Bl
73
E8
C8
CC
74E8-
10
70
30
E5
68
1A
CD
11
74F0-
70
30
D7
20
7B
73
60
48
74F8-
4A
29
03
09
04
85
29
68
7500-
29
18
90
02
69
7F
85
28
7508-
OA
OA
05 28
85
28
60
48
7510-
DA
5A
D8
AO
13
20
87
72
7518-
BO
16
AO
12
A9
01
20
87
7520-
72
2
55
73
AO
14
20
87
7528-
72
20
EB
73
20
36
73
18
7530-
AO
12
AD
1A
70
2
87
72
7538-
7A
FA
68
40
A9
00
80
78
7540-
04
8D
78
05
AC
15
70
AD
7548-
16
70
20
C3
72
8D
F8
05
7550-
8C
F8
04
8A
AO
17
20
87
7558-
72
8A
s:.
78
04
BD
78
OS
75«0-
AC
17
70
8A
20
C3
72
8D
7568-
F8
05
8C F8
04
8A
1A
AO
7570-
17
20
S 1
72
60
20
00
C3
7S78-
20
39
FB
20
58
FC
A9
02
7580-
85
22
A9
00
20
F7
74
AO
7588-
01
B9
32
70
F0
06
20
27
7590-
73
C8
DO
F5
A9
01
20
F7
7598-
74
A9
53
AO
4F
20
27
73
75A0-
88
10
FA
20
58
FC
A9
OF
75A8-
8D
1A
70
A9
AO
8D
OC
70
75B0-
AO
19
20
87
72
20
3C
75
7538-
AO
15
20
87
72
AO
12
AD
75C0-
1A
70
20
87
72
A2
OF
AO
75C8-
75
8E
FE
03
8C
FF
03
A9
75D0-
4C
80
F5
03
A9
00
80
F6
7508-
03
A9
70
80
F7
03
60
A2
75E0-
00
BD
F9
75
9D
00
02
C9
75E8-
8D
F0
03
E8
80
F3
20
03
75F0-
BE
60
AD
OF
BE
20
OC
75F8-
60
C3
CI
D4
CI
CC
CF
C7
7600-
8D
Pom's n°31
73
Disquettes Apple ][ Macintosh Accompagnement
L/LV_KOm S - l4(Jr\0 OU oUUKO
oaa aa c
1 — 1
l_l
l/LV_H0m S
OAA AA P
LJ
A U
1 AC\Vr\ O
fin nn f
du,uu r
1 —
baiteur videotex - i4uko
oaa c
zUU.UU r
1 — 1
mac Haccourci
OAA AA P
zUu.UU r
i — i
l_J
A Jl
1 4UI\0 4
fin nn F
bU,UU r
i —
b.K.t. O.I - l4Ur\0
OAA AA C
^UU,UU r
1 — 1
MacAstuces
OAA AA C
i — i
LJ
a ir
A Jl
1 A(\Vn C
cn nn P
bU,UU r
LJ
E o c e 1 ar\r\i/r.
c.r.c. 3.1 - oUUKO
OAA AA C
1 — 1
l_J
1 lit
Mac A
OA AA C
oU.UU r
i — i
LJ
A U
A Jl
1 4UI\0 D
cn nn F
bU.UU r
1
LJ
wiax (moniieur etenou) - i4Ur\o
1 CA AA P
1 — 1
Mil- 'D'
Mac b
OA AA P
OU,UU r
i — i
LJ
A If
A Jl
iAC\l(n 7
Rn nn f
bu,uu r
n
DananabOn - 14UI\0
OAA AA C
zUU.UU r
1 — 1
Mac u
OA AA P
ou,uu r
I — i
LJ
a ir
A Jl
1 4U(\0
Rn nn f
bu,uu r
—
1 1
nascai - i4ui\o
OA AA C
oU.UU r
1 — 1
Mia TV
Mac u
OA AA P
oU.UU r
I — i
LJ
a ir
A Jl
■1 Ar\Vr\
1 4uiso y
Rn nn f
bu,uu r
n
. .
Max (moniieur eienau) - i4ui\o
1 ka aa F
1 — 1
LJ
p'
Mac t
OA AA P
C3U,UU r
i i
a ir
a Jl
1 4nKA in
IturvU IU
Rn nn f
DU.UU r
r~|
UOmlnOS - 14Ur\0
OA AA P
1 — 1
LJ
Mar 'P'
M3C r
OA AA P
oU.UU r
i — i
LJ
a ir
a Jl
!4Ur\0 1 1
Rn nn f
bu,uu r
1 1
t/UuVJ - 1 4Ur\0
AAA AA C
zUU.UU r
1 — 1
1 1
Mar '<^'
Mac \3
OA AA p
OU,UU r
i — |
LJ
a ir
a Jl
1 AnKA 1
Rn nn f
du,uu r
n
L .
Luaoiogic - i4Ui\o
OA AA C
oU.UU r
1 — 1
LJ
Mac n
QA AA P
oU,UU r
I — i
LJ
a ir
A Jl
1 AC\Vr\ 1
Rn nn f
bU.UU r
i- 1
f^rrlirr. I^Al/rv
uraico - i4Ui\o
OAA AA P
zUU,UU r
LJ
Mac 1
QA AA P
oU,UU r
i — i
LJ
a ir
A Jl
14UIS0 14
Rn nn F
bu,uu r
LJ
a ir
14Uf\0 10
Rn nn f
L.J
A Jl
bu,uu r
nGCUGIlS rOm S
M3C 1 4/ 10/ ID
1 CA aa p
10U,UU r
I — i
I — I
a ir
A Jl
IfUrxO ID
Rn nn f
bu,uu r
1 1
1 1
Mor 17
Mac 1 /
OA AA P
CSU.UU r
LJ
a ir
A Jl
1 A (\Vr\ 1 7
fin nn f
bu,uu r
rn
I 1
rjumero i (nevues i a 4j
1 A A AA f
14U.UU r
1 — 1
1 1
Mir 1 Q
Mac 1
OA AA p
i — i
a ir
A Jl
\M\Vn IR
I'tUrxO 10
Rn nn f
bu,uu r
n
1 1
uisqueiiGS 13 4
OAA AA p
ZUU,UU r
LJ
Mar 1Q
MdC 13
sn nn f
ou,uu r
i i
a ir
A Jl
14n^A 1Q
IhUi\U I 3
Rn nn f
du.uu r
1 1
iMumero l (nevues o a oj
1 /in aa p
I4U,UU r
Mar OH
OA AA p
i i
a ir
A Jl
lAn^A on
Rn nn f
du.uu r
n
1 — 1
uisqueiies o a o
OAA AA P
1 — 1
Mor 01
Mac / 1
OA AA P
OU,UU r
LJ
a ir
a Jl
\A(\\(r\ 01
Rn nn f
ou,uu r
n
Numero o (nevues y a \c)
1 /in nn p
T4U,uu r
1 — 1
LJ
Mar 00
Mac
OA AA P
C)U,UU r
n
i_i
a ir
A Jl
14n^A 00
Rn nn f
bu,uu r
n
uisqueiies y a iz
OAA AA p
ZUU.UU r
LJ
Mar 0"*
mdC l J
OA AA p
r~|
a ir
A Jl
1 AnKn 0"?
fin nn f
ou,uu r
n
Mar OA
MaC Z4
OA AA P
0U,UU r
i i
i i
a ir
a Jl
i4n^A Od
Rn nn f
du,uu r
n
rnlii ifno Iai IAa i-»
renures 10 1 lees
Mar OC
Mac a
on nn P
i — i
a ir
a Jl
1 AC\Vr\ 0<?
l4Uf\0 CJ
fin nn f
n
pour d numeros, son un an
fin nn F
bU,UU r
1 — 1
LJ
Mar OR
Mac ZD
OA AA p
oU,UU r
i — i
a ir
A Jl
1dnKA OR
1 'tUrxU ZD
Rn nn f
du,uu r
n
1 1
KAor 07
Mac z/
QA AA P
oU,UU r
i — i
LJ
a ir
A Jl
l/MkA 07
Rn nn F
bu,uu r
1 1
Mar OR
rd nn F
n
i i
A If
H Jl
14nKn Oft
fin on f
n
Apple ][ 800Ko 3'5 numero 29
80,00 F
□
Mac 29
80,00 F
□
AJ[
140Ko 29
60,00 F
□
Apple ][800Ko3'5 numero 30
80,00 F
□
Mac 30
80,00 F
□
A][
140Ko 30
60,00 F
□
Apple ][ 8OOK0 3'5 numero 31
80,00 F
□
Mac 31
80,00 F
□
A][
140KO31
60,00 F
□
Revue n° 7
35,00 F
□
Revue n° 8
35,00 F
□
Revue n°10
40,00 F
□
Revue n°11
40,00 F
□
Revue n°12
40,00 F
□
Revue n°13
40,00 F
r~ 1
Revue n° 14
40,00 F
□
Revue n°15
40,00 F
□
Revue n°16
40,00 F
□
Revue n°17
40,00 F
□
Revue n°18
40,00 F
□
Revue n°19
40,00 F
□
Revue n° 20
40,00 F
□
Revue n° 21
40,00 F
□
Revue n° 22
40,00 F
□
Revue n° 23
40,00 F
□
Revue n° 24
40,00 F
□
Revue n° 25
40,00 F
□
Revue n° 26
40,00 F
□
Revue n° 27
45,00 F
□
Revue n° 28
45,00 F
□
Revue n° 29
45,00 F
□
Revue n° 30
45,00 F
□
Revue n° 31
45,00 F
□
Abonnements pour six numeros a partir du , a :
la revue seule 225,00 F □
la revue etles disquettes Apple ][140Ko- 5' 1/4 525,00 F □
la revue etles disquettes Apple ][800Ko- 3' 1/2 625,00 F □
la revue et les disquettes Macintosh 625,00 F □
la revue, les disquettes Apple ][ 140Ko -5' 1/4 et les disquettes Mac 925,00 F □
la revue, les disquettes Apple ][ 8OOK0 -3' 1/2 et les disquettes Mac 1 025,00 F □
• pour les envois par avion, ajoutez 15 F par numero et/ou par disquette soit, par exemple, 90 F pour un abonnement avec ou sans disquettes.
Envoyez ce bon et votre reglement a : Editions MEV - 12, rue d'Anjou - 78000 Versailles
Norn : .
Adresse : .
Reglement par : Carte Bleue/VISA □ ** Cheque bancaire □ Cheque postal □ Mandat □
numero de la carte date d'expiration
Montant , _ _ F Signature :
Cable-interface de communication Apple/Minitel
Cette liaison - decrite dans les numeros 27 et 28 de Pom's - est indispensable pour faire fonctionner les programmes suivants :
• MinBas pour Apple ][+, He, lie*, lie et //GS* : programme permettant I'enregistrement des ecrans Minitel, la restitution a loisir
hors reseau, le stockage et/ou I'impression de copies d'ecran du Minitel, et aussi I'envoide textes ou messages sur un serveur, ces
messages etant prepares a I'avance avec n'importe quel programme de traitement de textes. Programme publie dans le numero 27
de Pom's.
• Minitel/1 pour Macintosh : programme identique a MinBas pour Apple ][, avec en plus un mini-editeur de texte pour la preparation
et le stockage des messages sans sortir du programme. Programme publie dansle numero 27 de Pom's.
• InterPom's pour Apple )[+, He, //e+, //c et //GS* : programme de telechargement entre Apple ][ et/ou Apple ][ et Macintosh. Ce
logiciel autorise la transmission de n'importe quel type de fichier (systeme, texte, binaire, Basic.) en utilisant le Modem du Minitel.
Programme publie dans le numero 28 de Pom's.
• InterPom's pour Macintosh : meme programme, mais version Macintosh. Programme publie dans le numero 28 de Pom's.
• TPom's pour Apple ][+, He, He*, He et //GS" : programme de recuperation de I'annuaire telephonique sous la forme de fichiers
texte. Voir page 53 du numero 30.
• TPom's pour Macintosh : Identique a la version Apple ][. Voir page 42 du numero 30.
• ce programme est prevu pour fonctionner avec une carte Super Serie Apple ; le port serie integre de I'Apple IIGS ne convient pas.
Toutefois, si vous desirez utiliser le port integre afin d'y connecter le Minitel pour d'autres applications, commandez un cable pour
Macintosh Plus.
" sur un Apple IIGS, TPom's fonctionne indifferemment avec le port serie integre ou la carte Super Serie Apple. Pour connecter le
port integre du IIGS, utilisez un cable pour Macintosh Plus.
Je desire recevoir : cable Minitel/Apple ][+, lie, //e+, lies avec SSC a 225,00 F
cable Minitel/Apple //c a 225,00 F
cable Minitel/Macintosh 128 & 51 2Ko a 225,00 F
cable Minitel/Macintosh Plus, Hgs port integre a 225,00 F
cable Minitel/IBM PC™ a 225,00 F
cable de liaison locale Apple ll/Mac/IBM™ * m a 225,00 F
'(preciser le type des deux machines a relier : Mac 51 2, Mac Plus, Apple He He, IIGS, IBM PC )
' pour les envois par avion, ajoutez 15 F par cable.
Envoyez ce bon et votre reglement a : Editions MEV - 12, rue d'Anjou - 78000 Versailles
Nom :
Adresse : fa
Reglement par: Carte Bleue/VISA □ Cheque bancaire □ Cheque postal □ Mandat □
numero de la carte date d'expiration
Montant ,__F Signature:
Programme de transmission InterPom's
Ce programme decrit pages 53 et 54 vous donne la possibility d'echanger a distance via Minitel et en local des fichiers de texte entre
Apple //, Macintosh et IBM PC . Entre deux machines de meme type, tous les fichiers sont transferases : Applications, polices de
caracteres, accessoires de bureau, commandes, documents graphiques etc.
Je desire recevoir: InterPom's pour Apple //, disquette 140Ko, 5'25 a 450,00 F
InterPom's pour Apple //, disquette 800Ko, 3'25 a 450,00 F
InterPom's pour Macintosh, disquette 3'25 a 450,00 F
InterPom's pour IBM PC ,M a 450,00 F
• pour les envois par avion, ajoutez 15 F par disquette.
Envoyez ce bon et votre reglement a : Editions MEV - 1 2, rue d'Anjou - 780O0 Versailles
Nom :
Adresse : fa
Reglement par: Carte Bleue/VISA □ Cheque bancaire □ Cheque postal □ Mandat □
num6ro de la carte date d'expiration
Montant ,__F Signature:
: B
ig |£ |,
i
^ it
•ja i.
■J 3 »
'0 "
is™ ! is™ ■£
■
(_, iUIJ HI JO ISOdiiU lUk UIJ
mt mm omomis ^p,
87151200021-1^
Je desire recevoir - sans engagement - votre
documentation sur les cartes Speedisk
Norn
Adresse
Lanti-disque
Speedisk,
la RAM Card a memoire permanente
Rapidite Temps d'acces d I'information : 0,2 ms
(TOO fois plus rapide que les disques
durs...).
Par exemple :
demarrage sur Basic.System en 3 s,
AppleWriter disponible en d peine 1 s.
Fiabilite Constituee de circuit CMOS d tres
faible consommation, Speedisk est
aussi fiable que Tordinateur lui-meme.
Elle est insensible d I'environnement.
Capacite Speedisk est proposee en quatre
versions :
1 Mod 048 576 octets)
384Ko extensible d IMo
avec horloge compatible ProDOS
(pour les Apple )(+, //e) ou sans (IIGS)
Compatibilite 100% compatible avec ProDOS (c'est
un volume), Speedisk fonctionne sur
Apple )(+*, sur Apple //e et sur Apple
IIGS.
Prix
Lecteur de Pom's, vous beneficiez
d'une remise de 10 % :
SP400
384Ko
SP1000
1 Mo
CO
3591,00
5391,00
SP400H -
384Ko horloge 4^80X0 4 122,00
SP1000H
1 Mo horloge 6£80tfO* 5922,00
Garantie Speedisk est une fabrication frangaise
garantie un an par echange de la
carte.
" Sur Apple )(+, ProDOS necessite la carte langage.
Vente par correspondance, LOGMA S.A.
documentation, 12, rue d'Anjou
renseignements 78000 Versailles
Tel: (1)3951 2443
Speedisk