Skip to main content

Full text of "magazine poms31"

See other formats


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