;se
La revue francophone indépendante pour les utilisateurs des Apple ][+, Ile, //e+, //C™ et Macintosh™
li Comparateur de disquettes 16 secteurs " Un nouvel accessoire pour Macintosh " Le formateur ProDOS désassemblé " Les ascenseurs en MSBasic ,
•
" " " " "
Courbes fractales en Pascal Editeur de blocs ProDOS Effets de miroir en HGR Hyper-espace et Basic Le Disk ][ sur le Ile Un micro-finder
" Temps anglais " Tri de chaînes
NUMERO 25
-
PRIX 40 F
ISSN
:
0294-6068
Le chemin des écoliers, tel est souvent le pas sage par le Bureau. Pour changer d'application, il suffit aujourd'hui d'appeler J'accessoire ''Raccourci'', Après avoir confinné votre intention de quitter le programme en cours, une fenêtre de sêlection appar
9JO
FOR J .. l TO 191
RIT.
940
PRINT OK/J);"
440
HTAB 8:
950
NITT J
960
GOTO 890
970
VTAB 23: PRINT "VOULEZ-VOUS
�80
PRINT "
INPUT "";R2S
450
IF R2S
VERBES IJ,4) AlID R4S
> VERBES IJ, 5) GOTO 760
BEGIN,BECAN,BECUN, COHHENC
ER,COMM ENCER 1222
(TRADU
CTlON) --------
DATA DATA
BEHOLD,BEHELD,BEHELD,CONTE
MPLER,CONTEMPLER 1224
DATA
BEND,BENT,BENT,COURBER,COU
1226
DATA
BEREAVE,BEREIT,BEREIT,PRIV
710 B4 .. B4 + 1
7201'4 .. T4 + 1
280
HeRE
2�0
PRINT "INFIN
300
P!lINT "
PRETERIT PARTICIPE
-TRAf){}CTION" /TO)
FRANCAISE"
6
9�0
_ OK/J) +
2.ARRETER
",
500
PASSE----
50
"VERBESIJ,l),
1.UNE NOUVELLE SERIE
ŒI
550
60
(' OS" GOTO 970
920
-_BE:LGIQUE__H
REM -------- TEST ANGLAlS-------
QUELCONOUE. "
REM -------QUESTION SUR LE PRETE
1984 .....
WOUTERS y•••••
S .�
420 OK/J) .. 0
540 5
8LE DE VOS SUCCES, TAPEZ
430
4801'2 _ T2 + l
Programme 'TPS PRIMITIFS ANGLAIS'
PRINT 82J"/",EXJ
840
PRINT VERSES/J,l);
400 PV 410
�
!�:
EX:EX _
- 958
PASSE
7JO OKIJ)
_
ER,PRIVER
OK/J) + 1
740
IF OKIJI
750
COTO 800
760
REM
.. 3 THEN TB .. TB + 1
----ERREUR (TRADUCTION)-----
1228
DATA
BESEECH,BESOUGHT,BESOUGHT,
SUPPLIER,SUPPLIER 1229
DATA
BID,BID,BID,ORDONNER,OilI!ON
Porn's n' 25
1230
H"
14(4
DArA
BIND,BOUND,BOUND,LIER,NOUE.
,
1232 1234
BITE,BIT, BIM'EN,HORDRE,MOR
,� DATA
1236 1240
DATA
DATA
1245
DATA
J250
DATA
1260
DATA
BUILD,BIJILf',BtlILT,BAf'IR,CO
DATA
BURN,BURNT,BURNT,BRIJLER,8R
AAAl.2
JMP
SPACE
CHF
1581
BNE
XXX.5
JHF
C.A.
CHF
1582
BNE
XXX.6
BIT
ICONE
SMI
AllAIl
LDA LOY JSR
STROUT80
LDA
,AAA2
JSR
STROUT80
LDA
I H . A . ·
·
.
. . . . . . . ! .
LDA BNE
AOC
LB
STA
LB
BNE
SOUND4
LDA
#$00
SBC
1$01
AOC
RB
BEO
SOUNDl
STA
RB
BIT
SPKR
SOUND4
DE'f
RTS STR . 4 0 .
JHP
SOUND2 COUT. 4 0
U•
•
I$SD
BEO
RET40
••
STA
CAR
STROUT. ' . COUT . . . ..
JSR
COL.LIG
tNC
COL COL
. . . . . . .
."
. . . . . . .. . . .. . .
. .. . . . . . . . . . . . . . . . . . . .
IHC
LB.
RTS
1$58
ST'f
HB.
ISlB
LD'f
,SOO
LDX
1 $FF
SOUNDI
LM
SOUND2
LDY
SOUND3
DEY
STR.40
BNE
. . . . . ..
STROUT40 STA
SOUND
SOUND3
6E48- 06 C5 BA AD 31
RET40
T'fA PHA
AF B2 AD
6EC8- 69
73 71
75
65 74 74
6E58- A4
6ED8- AO A D AD
ISOI
SfA
COL
LB.
STY
HB.
LDY
ISOO
STR . SO
6EED- 05 D9 C5 DA A D D3 DS D2
6E68- 03 F7 E9 F4 E3 E8 E5 F2
6EE8- AO 00 4D AO AD
6E7D- A D CJ
EJ F4 ES
6EFO- AO SF 8D 00 D2 CS D4 DS
6E78- F2 ES F3 AD AD SF AD AD
6EF8- 02 CE AD SF 80 00 AD 4C
AD
LDA BNE
AD AO
6E80- SA 80 00 A D OF OF OF OF
6FOO- 4C 4C 4C 4C 4C 4C 4C 4C
6E88- OF OF OF OF OF OF OF OF
6F08- 4C 4C 4C 4C 4C 4C 4C 4C
6E90- DF OF OF OF OF OF OF OF
6F10- 4C 4C 4C 4C 4C 4C 4C AO
6E98- OF OF OF DF A D 80 00 SA
6F18- 00 C9 cc AD C6 Cl OS 04
6EAO- AO AO AO AO AO AO AO AO
6F20- AO os CE cs AO C3 Cl D2
T'fA PHA
AD A D Cl DO DO
6E60- AD AD 5F DE D8 AD BA AD
F2 El
LtG
STROUTSO STA
65
6EOO- BC BC BC AD SF 80 00 5A
El
tNC LDA RTS
6E50- AD CF C3 04 C5 D4 BA AD AD AD AD AD AD AD AD
STR . 40
CHP
.. . . . . . . . . . . .
. . . . ..
" . . SOUND . . • •
COUT. 40
TAY
RTS
". . . . . . . . . . ..
JSR PLA rHY
BNE
BOUCLE
(LB . J , 'f STR . 40 .
PLA
DEX
BNE
. . .
·
SPKR
#$80
.
B . , BAS I C . SYSTEM. . . >&.U. . < . . . . . . . ! . . . . .B. .R.S.P. D . SOURCE. 0; . ) . . P . . . . . . . ! . . . . . .B. -R . S . P . D . OBJET. . Fd. I . E O . T, . . . . ' . , . . . . 8 . I..JSTARTUP . . . . . . . . C.I . A . J . . . . . . . . cAH . . . . 8 . . S . . . . . . . . . . . . . . Dn . ) . .P. . . . . . .c. . . . .B. . . . . . . . . . . .
TAY
LDA
RTS
..
52 3B 00 42
00 00 OO)� "
ERROR 4 . 2 ASC
DFB
AM2.1
$5F, 580, 500
DFB
DFB
6, W ..
24, " �
ASC
EnCrer un BI
OS
S80, SOO
OFB
DS
ock "
sur Disquettes P
ASC
ERROR . J
24, "_ ..
OFB DS
DFB
� :
ASC
DFB ERROR. l
7, W
cture "
ERROR . O
: Entrer c,rac
S5F, S8D
DFB
W�x : S",itcher Car
DF8
��A
S"
acteres
�rleches"
OFB
DS
OCTET:
$00
teres�
$5F, $80
DRIVE:
"($
$31
DFB
OS
DFB
W BLOCK: "
5, "
ASC
ASC
AMI . l
•
SSF, SAO, SAO, SSA, $8D
DFB
" •
Sauver sur 0
isquette
�R . S . P. O . :
ASC
•
��S :
23, " �
ASC
Change
r de Page"
DS
Dos)
20
S5F, SAO, SAO
OFB
$SA
ASC
PRES. 3
500
3, � ..
OFB
MAO
Changer de L
OFB
DFB
DS
PRES. 2
DS �
PRES. 4 2 ASC
�
1, "
·�C
ecteur�
15, · �
OS
OS
�
DFB
SBF, 519, 504
SAVE
DS
4
TABLE
DS
7
TABLEI
EOU
Porn's n' 25
Roland Jost
Vl
ici un programme qui permet de manipuler des images graphiques en donnant des effets de miroir. Il est aussi le prétexte à une étude de l'organisation des pages graphiques de Apple. Il permet aussi d'illustrer le difficile compromis entre gain de temps et gain de place.
La page graphique de l'Apple La haute résolution de l'Apple est
de 280 x 192 - 53760 points. Or
une page HGR ne mobilise que 8192 octets. Ceci est obtenu en stockant l'état de 7 points consécutifs d'une ligne dans les bits 0 à 6 d'un octet, le bit 7 contenant le mode couleur. On réduit ainsi de 8 fois la taille mémoire nécessaire pour la page graphique. L'inconvénient est que cela ne facilite pas l'adressage point par point. Le problème serait assez simple à résoudre, mais l'écran HGR est divisé en 3 zones de 8 groupes de 8 lignes. En mémoire, les 192 lignes de 40 octets ne se suivent donc pas de facon séquentielle (cf les adresses des lignes dans POM'S n'I). Ces adresses peuvent se calculer, par exemp le par la formule utilisée dans Edigraph (POM'S n'21). Mais même en assembleur, ce calcul prend du temps, surtout s'il doit être répété de nombreuses fois. Une méthode plus rapide, utilisée dans de nombreux jeux est l'utilisation d'une table d'adresses, en fait de deux tables. la première contenant l'octet bas, la seconde l'octet haut. Cette méthode a l'inconvénient de prendre beaucoup de place (384 octets). On peut trouver un compromis entre ces deux méthodes en utilisant la régularité de la table pour huit lignes successives. La table est alors huit fois moins importante (seulement 48 octets). Il faudrait également
Porn's n' 25
une table des octets hauts différente pour la page HGR et pour la page HGR2. Une table unique suffit, à condition de rajouter la valeur contenue dans $E6 ($20 pour la page HGR, $40 pour la page HGR2). JANUS sera donc actif sur la page en cours, sans qu'il soit nécessaire de spécifier son numéro. Au prix d'un léger ralentissement du programme (environ un centième de seconde), on parvient donc à réduire l'encombrement de la table des adresses de 476 octets à seulement 48 octets.
quand on a calculé les adresses des lignes. Pour un miroir horizontal, il suffit de permuter la première ligne avec la dernière, la deuxième avec l'avant-dernière, etc. Pour un miroir vertical, le principe est de permuter la colonne 0 (192 octets) avec la colonne 39. la colonne 1 avec la colonne 38, etc. Mais il faut de plus prendre l'image dans un miroir des bits 0 à 6 de chaque octet sans toucher au bit 7, c'est-à-dire passer par exemple de 01101000 à 00001011.
Miroirs
Là encore ce travail peut être effectué soit par un sous programme comme celui qui est
Obtenir l'image dans un miroir d'une page graphique est facile
C omm e n t .;fa ire ? ,. ..... -:::::1 •... : ....; c:;· ;.....' .!::: �::::;: : � . !:!;:; .
....; • ..:
:::
.. ., .
..:::,
'
Saisir puis sauvegarder la récapitulation 'JANUS', Dans un programme Basic, il faut, pour bénéficier des effets de miroirs, charger la routine par BLOAD JANUS (se reporter au programme de démonstration), Les possibilités de la routine sont les suivantes : CALL
36864, H, 0
CALL
36864, V, 0
CALL
36864, V, l
CALL
36864, R, l
Retoumement honzontal gauche droite Moitié supérieure réfléchie dans moitié inférieure Moitié gauche réfléchis dans moitié droite
De plus, on dispose des combinaisons suivantes : CALL
CALL
36864 , H , O 36864, V, O
CALL
36864,H, 1
Moitié gauche dans partie droite CALL
Rotation
36864, R, O
180', combinaison des 2 symétries
21
r
Récapitulation 'JANUS'
présenté ci-dessous, soit à l'aide d'une table. ROU
STA
.. saillit l'octet à
$08
ill\lt!rsu
.. le bit 7 est mis
ROL A
moniteur,
Après avoir saisi ce code sous
vous le sauvegarderez par BSAVE JANUS,
A$9000,
L$200
dam l a rdt�
" décale A à gauche II
ROL A
rdt1l� dOJu bit 0
LDr 1$07
LSR $08
; le bit 0 eSI mis
; rtltfllu dmts bit 0
li dlcalt d gaucM
9020- 05 C9 56 FO 3E 60 E6 EC
9120- 02 42 22 62 12 52 32
9028- A6 ED 8 6 0 6 A6 EE 8 6 0 7
9128- DA 4A 2A 6A lA 5A 3A 7A
[
'0
22
72
9130- 06 4 6 26 66 16 5 6 36 76
19 A6 07 20 AD 90 85 lA
9138- DE 4E 2E 6E lE 5E 3E 7E
BNE ROLLI
9040-
84 lB A4 EB Bl
RTS
9048- DO 06 48 BI
10
REM
DEMO. JANUS
12
REM
R . JOST 2985
15
PRINT
CHRS
20
TEXT
HCME
1 8 A6 lE
lA 91
18
68
lA C8 C4 EC DO ED E6
51
31
71
65 15 55 35
75
73
9168- OB 48 2B 6B lB SB 38
7B
9070-
84
0 6 A4 EC 84
0 7 A4 06
9078- Bl 1 8 A8 B9 00 91 A4 lE 9080- DO OC 4 8 A4 0 7 B1 9088- B9 00 91 9090-
91
1 8 A8
85 l C 68 A4
0l
18 A4 lE DO 06 A5 l C
9170-
07 4 7 2 7 67 1 7 5 7 3 7 7 7
9178- OF 4F 2F 6F lF 5F 3F 7F 9180- 80 CO AO EO 90 D O Ba FO 9188- 88 C8 A8 E8 98 D8 B8 F8 9190-
84 C4 A4 E4 94 D4 B4 F4
9098- A 4 06 9 1 1 8 E6 06 C6 0 7
9198- 8C CC AC EC 9C DC BC FC
90AO- 38 A S 0 7 E 5 06 B D CF E8
91AO- 82 C2 A2 E2 92 02 B2 F2
90A8- E4 EE DO BB 60 8A 4A 4A
9lA8- 8A CA AA EA 9A DA BA FA
90BO- 4A A8 B9 C4
90 48 8A 29
9180'" 8 6 C 6 A 6 E6 96 D 6 B6 F6
9088- 07 DA DA 18
79 DC 90 65
91B8- 8E CE AE EE 9E DE BE FE
90CO- E6 A8 68
60 00 80
00 80
90C8- 00 80 00 80 28 A8 28 A8
91CO-
81
Cl Al
El
91
Dl BI Fl
91C8- 89 C9 A9 E9 99 09 B9 F9
90DO- 28 A8 28 A8 50 DO 50 DO
91DO- 85 cs AS ES 95 05 85 F5
90D8- 50 DO 50 DO 00 00 01
01
91D8- 8D CD AD ED 9D DD 80 FD
90EO-
02 02 03 03 00 00
01
01
91EO-
90E8-
02 02 03 03 00 00 01
al
91E8- 8B CB AB EB 9B DB BB FB
90FO-
02 02 03 03 00 00
90F8-
00
00
00
170
GOSUB 500
180
TEXT : END
500
FOR
00
00 00
91FO- 8 7 C7 A 7 E 7 97 0 7 8 7 Fl
00 00 00 00
91F8- 8F CF AF EF 9F OF BF FF
10 • REFLET D ' UNE PAGE HGR
T - l Ta 2000: NEXT :ZZ +
36) : RETURN 600
PRINT
CHR$
83 C3 A3 E3 93 03 83 F3
PEEK
(4} 8BLOAD
( - 1 63
8N$8,A$2
0 0 0 · : RETURN
n
12
Syn taxe
17
14
:
CALL
36864, MODE, OPT
MODE-H :MIROIR HORIZONTAL -V:MIROIR VERTICAL
15
16 'OPTION-O:IMAGE DE TOUT L ' ECRAN -1 :MOITIE ECRAN REFLECHI E DANS L 'AUTRE
60
GOSUB 600
65
GOSUB 500
70
CALL A , H , O :
80
CALL A , H,O :
GOSUB 500
90
CALL A , V , O :
GOSUB 500
1 8 'SUPERIEURE: -> INFERIEURE
- 16302,0
CALL A, V, 0:
110
CALL A,V, 2 : GOSUB SOO CALL A,H,l
'JANUS.S'
126
GOSUB 500:
130
CALL A , V , O :
GOSUB 600 GOSUB 500
140
CALL A , V, l :
GOSUB 500
144
CALL A,H, O : CALL A , H , l
146
GOSUB 500
150
GOSUB 600
, , ,
21
• • • • • • • • • Ok . . . ... . . . • • • " . . . . . . . .
" 24 ZI
EOU
25 Z2
EQU
507
. . . . . . . . . . . . . . . . . . . . ..........
26 DEPART
EQU
$18
.
2 7 ARRIVEE
EQU
51A
28 TAMPON
EaU
SIC
29 OPTION
EOU
SIE
30 PAGE
E:OU
5E6
31 Xl
EOU
SEB
32 X2
EOU
33 YI
EOU
34
Eau
.
JANUS
.
, .
7 • R. JOST
B
'GAUCHE -> DROITE:
"
Assembleur MERLIN
GOSUB 500
1.\l
"
Source
GOSUB 500
'"
GOSUB 600
11
69 19 59 39 79
9160- 03 43 23 63 1 3 53 33
17 "
HGR
CALL A , H , O :
91S0- 05 45 25
61
9068- AD 90 85 1 8 84 19 A4 EB
(4) 8BLOAD JANUS ·
50
124
21
9060- Ba CE 60 E6 EE A6 ED 20
40 NS - �IMAGt:-
120
41
09 49 29
9158- 00 40 2D 6D lD 5D 3D 7D
30 A .. 36864 : POKE
9140- 01 9148-
9058- 06 C 6 07 38 A5 07 E5 06
PEEK ( - 1 5336)
� :::l
64 1 4 5 4 34
9030- A6 06 20 AD 9 0 85 1 8 84
Programme 'JANUS. DEMO ,
E • c , •
44 24
9038-
JANUS permet encore d'obtenir dans la moitié inférieure de l'écran, le reflet de la partie supérieure. De même pour les parties gauche et droite. Il s'agit dans les deux cas d'arrêter la recopie au milieu de l'écran.
Iii'
74
9110- 04
9118- OC 4C 2C 6C lC SC 3C 7C
9050- 91
oc (9 :I: •
70 78
9018- BF 86 EE A5 EF C9 48 FO
A vec la première solution l'inversion se fait en plus d'une seconde ' ; avec la seconde le programme va trois fois plus vite. Ceci s'expliquç facilement par le fait que chacun des octets doit être permuté, soit 8192 permutations. Le moindre gain de vitesse à ce niveau est donc plus qu'appréciable. C'est pourquoi nous choisirons cette dernière méthode.
g
9100-
9010- EB 86 ED A2 27 86 EC A2
DIT
• � E E
00 40 20 60 1 0 50 30
9108- 08 48 28 68 18 5 8 38
.. ilfaw lt faire 7
dam la rtttlZ�
ROL A
00
9008- 20 F5 E6 86 lE A2 00 86
[ois ROLLI
9000- 20 BE DE 85 EF 20 BI
• Assembleur HERLIN
, .
•
Y2
$06
SEC
SEO
SEE
Pom's n' 25
35 MODE
Eau
" 37 CHRGET
EW
S0081
38 CHKCOM
SDEBE
39 GETBYTC
SEEF5
40 • '1 ORG
"
59000
" "
45
"
SAISIE DES PARANETRES .
"
,)SR
CHKCOM
"
STA
MODE
"
,JSR
CHRGET
50
JSR
GETBYTC
51
STX
OPTION
"
LDX
10
53
STX
Xl
54
STX
YI
55
LDX
139
"
STX
.112
"
LDX
1191
"
STX
r2
"
LDA
MODE
"
CMF
1$48
'1
BEO
Il
CMP
1$56
" " " 65
BEO
12
'"
MIROIR HORIZONTAL
" "
68 Il
INe
"
WX
.112 rl
"
STX
Zl
LDX
Y2
STX
Z2
'"
STA
DEPART
1
Pom's
fl'
DFS
SOO, S80, SOO, $80, $ 00,580, 500, $80
DFS
(DEPART), '1
$28, SA8, S28, SA8, 28, SA8, $28, SA8
DFS
S50, SDO, 550, SDO,
S S
50, SDO, 550, 500 1'3 TABLES DES ADRESSES HGR OCTET HAUT
1 7 6 * RAJOUTER 520 POUR PAGE
'12
143
CPX
'12
1?7
'11
JH
BNE
BOl
178 *
H5
'"
25
ADRESSES HGR
OCTET BAS
170 TABIL
INC
CALCADR
TABLES DES
II
LDX JSR
1 0 8 BOl
'"
1
�" IIf
,�
,
'" ,
,7JfP SfI>JlT CHI' ,ue
_ ..
,�
UI III
l'/IOLOC
.,
ors 2
,,� ro"
Il
1Il1
JSII
STA
(l'Til! , r
Dt! BI SUIVANT
IlICtil
CHF SVNJ_l
,CHEllCHi: Ra«JLO
2
".
;SO/fTIIi IESSAGl:
,,'
;PISTE IUISIlII.J:
-,
W, _
,�
JS1I COUT
BlR LIllCPl
l.
TII.8I.11D1t+1
; n ' du ...ct.ur l u
l:SSIIIN8
3j
SECTSUR
Jf
COHPTO
«XI
SDJ
J1
COHPrl
«XI
SOlI
JI
rNfPONI
U/f.I
SDI
,re.-pon pour Je cheelsWi
"
COHPrt:Vl! &OU
SOC
'a
tAW'OH2
&011
$00
,E;ud. d. leet..r. Il,,1. . _ SE'CI
JI
'1
"
fJ "
"
TABI.IIOII
IIOU/!'Œ
roll
[QU
SD€
--------------------------------
S()IJ E;IJU
U
DIIVDN
EOU
SCOU
IMar�he
DIIVStl
EOU
SCO'A
tlJU
SCOIS
:Od..,. 1
EOII
SCOIC
scola SCOII
52
DRVliIl
EOII
SCO'O
;Ecrleur.
53
DIIVRM
EOU
SCO'&
;Had. leeeu...
5'
DIIVWM
&OU
sCOlr
,lfOd. 'crltur.
"
....CROS . d. J.ct..... .t d'kd ture
SI
-----------------------
" fI
U
fI&II1)
"
..
l5
00
,
UM
DRVIID,II
.. wctur. d'u" oc t...
0-)
.. tic tent que po.tUf
�, Ut
!mIrs
.. "
..
�
;&erHur• •ur , cyel..
�,
,
STA
D1tVW/l. Il
CHI'
D1tVRD. Il
,
rrLI:JI
d.
ProVOS
Nuu&IIble'1.
•
8r..,,0 r'''.t"!
1
DRVWII, II
,Ch.''1. 1 ·oct., ' kr1...
/5/
D1t\lJl!D, Il
:,,'jcrH sur 1. dIsqu.
(91
"
1011
,�
75
"
,&cd t Je l ' oc••t
"
DU en SU15.SUN pour l '.,,cle,,,,. v.ulon
!.ft ecpl. du boot /bloc. I) .t II .e '.."uve en S'503.SU02
'1J
D€I.IITZ
""'C
,1'1" du ..,de d'ktltu...
t/lol
DIIVRM.II
J.L\o\
DIIVRD, Il
�
/5/
'"
;Nhl d. f cycles
""'C
�
I«C �
""'C
�
..
"
ŒI.IIYJ
� I«C
"
erreur
S"Nt. : Srreur
"
..
"
OCUY7
'"
"
ORC
"
$11.00
'"
'"
"
" "
"
OCUTf ŒI.IIl'f
"
"
cbU9. oct.,
,� JIflDiD
U
"
s'qu.".,. 0
l 'AccLJftu).o.eur sur 1. düque
DR\lltD ,X
"
,..,r••t.9" phy.lqu. I f ••ct.uu DIS/( 11 ." $1.00
en
;Djbut. l 'jcri tu,.. •• kr1, ,
17
Po..r 1. r/l.E:I' de SU IJ Je djbut u t
et po.1 Tc"" npIde
EJlJ!EIJ1I
Sfillu,
,Puu". du 1'."",,,\,,,. .. du """,4"0 de vol"...
III
WA
I UA
'"
'"
.sTA
CST.A..
PIST"c:rv _ pl at. ectu.lle " 2
'"
DI'/AI'DN
'"
Sorti.,
'"
Ver1ebl••, SWT"RH..rI.n'OfaT, PISTACTU,PlSTPIIEC,PlSTDIET
,�H un oct.t
'"
UU
; do1< Itc.
nulle
'"
1fNOGOtlD
,0...,1d••
: chee}.... mil chee}eu.
BNE:
IJ2
"
$dkode
110
'"
"
;Jol' "" oct.t
ST"
$d.t.
CNP
/codeve • e. '}
rAWON1
'"
CDHProAT
sn
; 1C 1
11110
WI'
..
/lOt
flEAD
SIlE
,�
; Clle,,}.ua In'....IdJ.Jr. :Llt un oc••,
IlE.AD
'"
..
fd.tu
;lnl'. pour Ja cheelfOC
lO "
,P.r d'!eu. Cocry ut
, T... •• Inltlsllu J '.cdtur.
'"
8If1
$Iln
,51 pco.."tlon d"..s l1n
'"
WA
ISfi"
.-Oct.t de synch.o.
'"
�
lU
OCI.AY1 f'ync"ro OCt.AYI2A DCt.ArJ2A
,E:crü
IIU
WA
1I111r1:
'"
WA
'"
DCUU
'"
,�
""
'"
BIlE
$" roa
'"
JS,.,
IItIATAJ
'"
WA
'$N:
'"
JS1I
IItIArA'
'"
WA
'"
JS1I
IS......
"'o.o.TA9
BNE
f.ynchro
'"
WA
UV,
HO
JS,.,
'"
WA
'"
JS/I.
\lt!L. /lB
'"
JS/I.
"',0,011 . f.
{20}
'"
WA
pISr.I32< , >32< cycl••
JtAD1I . f . � SECT.NS
'" '"
\lt!L. /lB
'"
plST./I!I
(lS}
'"
SECT. liB
(11}
'"
,Pr...rv. 1 .. r'$uH_'
(27}
'"
,N".l.g.
12'}
(21/
IlS} (J1} (2J} (2f} (30}
�it
130}
>32< >32< l'}
('}
(111
/lI}
I!JI
Ill}
DM
'"
'"
O/IA
JS1I
(21) (24) ("od.,. f .t fi
, Df(A #$...... ..ls • 1 cycl. >32< '"
115} B • f • JJ
•
>31" "l'cl ..
'ln$cdt 1 "p.Hogu. 11 • ,
'" '"
•
IlS} (H/
, _ >31< cycl ..
'" '" '"
JS/I.
Sll1l 1I.rsl
>32< >32
32
�O
31
ur e.porls... 1
DEY
'" s.e.
LDJC
'SO�
:Ncobr.
de
oyne. bye••
(CAPJ) - ,
.." ...n •• proportlonn"H. eu gap'
"
(
+
" "
, S".1 egap
+
(0 cycl..
J
_
1 .yne byte
SLOT
'"
.1$11.
m
'"
IJCS
Serrg.p
Hf
'"
SECŒUR
, n ' du •.ct.ur lu
'"
UM BElO
§ok••ctO
,S.ct«lr z....o ?
'"
œc
,",,"3
,Sln"" co.P3 ••t trop gnnd
C1W'
GAPNIN
, GAP' n' ••t-Il PlI> trop ecur, ?
lt1
ŒL.U il
'"
HIl
BNf:
S2
�
"
INe
'" HO
IHe
'" 351
WX
�
SJ
,Souel. I f toJ..
CVHPN
'IncrO.". N Cl»l'TJ
CVHPTI
,No.br. 1 H f de. OClAh tot.","
tout••
, 1 ... 15' Œ I .. . \rs - 2l,' ".
_œ
'" '"
BCS
'"
_re
lUS
sac
1$01
fJ,
'"
/WE
DELlI!'
'"
""
'"
'"
1f1
1 Il
'"
�
'"
S•.." ... LDX .1SR
'"
Hl
ses
'"
lU
Soh..,.O LDX
'" HO '" lU ,fJ
�hh p..._tt.nt un_ .",,'lfrHlon .ot une
ŒUrOH
JI? lU
on!
DPB
lIE'8
Jft
lfS ".
.. ,
1$10
�11
WY
ISOr
(jJ
sn
SECT. NB
." ." '" ."
...
4J 1
r"E51"1IIJ
OS
HI
S.f;CTNI&P
os
$00
SLOTARIf
:de tentotlvu d" 1.c'ur.
SOI
PlSTOIFF os
,ln1thl.l u .N cert• • $10
502
PlSTPREC DS
'"
(/ (
J
31 cyc1.. _ 1 bye.
...
." ...
+
...
IIRITAD"
'" �O,
1
l ' ,.nt••1vu d. loctur.
r"ESTNB .f..etut
."
lU
.. pht.. ..t d.!aJnu. (;APJ en lone.lon �. ......
'"
.",' .uro •.,nt v.rJfJh
.10... 0/1:
BNE
'"
'"
'"
S••.,'.rr DEC
...
'"
H
.t .,'ut tJn1
'"
'"
....-JIU 1
:s1 0111 ....,'.ur .uJv.nt
'"
$W,SIC,SIC
un
:n· du •.ct.ur voiritloi
SEC1"€W!
m'a
371
ilEItllAT"
LOl'
Df"1l
JH
JSiI
LDA
HO
.....
S."" err
SLOT
'"
lU
J7J
SLOT /leADRES
...
SU.SU',5lE
",
Serrg.p
on 1. dl.lnu.
$01,$10. $)I,Jo"".1"..... I"" f dk'l'r.. tlOil
WB
'"
�,
...
'" Œ.(.AYOf'r DF'1l
/leADU:S
.!.lM
41'
ST"
(If
SlnH••p 51""
Porn's n' 25
TES"f"KI.X
TESTNB SECf"HAP, Y
:_b.... ••",.la... O H
'U
plSroEST os os
.1..J..... :_r• ... d· ....:. de for'.'.g.
:Ncob... ••> Hexadécimal CcdeHexa CMPLB
'9,00
BGT
@1
ORLS
#$30,00
RTS @1
AOOLB
#55,DO
RTS
; Pour police Chicago 12 points PoliceChicagc CLR -(SPI _TextFont '12,·(SP) MOVE _TextSize RTS
00,@2
.- Constantes
Chaine2,A2
RectFenetre
PaintMover et MacPlus PaintMover nécessite plus de 128Ko pour fonctionner ; aussi, si vous avez réservé 768 Ka de cache mémoire, le programme se 'plantera', hélas sans mes· sage. . .
D7,·(SP)
; AffIChe le code ASCII (décima!) du .- caractère sélectionné
-100
TST
SUSO.l MOVE MOVE
RTS
MenuPolices SET
RectBouton
2,2,271,390
'18,D7
BSR.S
_Re8lFont TST (SP)+
ATS
46
AeclCode
TailieValide
_TEActivate BSA Invalide Boulon
@2
Buffer(A6),DO
: Pour dBterrriner si la police
_TElnsert MOVE.L HandIText(A3),-(SP)
@1
AOO.B
: sBlectionnée existe en taille N (07)
Inserer
Bulfer
'1 6,00
suse
_TE New aSA
RectOestText OC
MOVEQ
PEA
OC
RectVisTexte OC
DO,@3
BNE.S 14,SP
RectTexle
DBRA
MOVEO
@4
d'un nouvel 9nreglsfrement
SUBQ.L
(A2)+,(A 1)+
-GetFNum
" 79XtEdit'
NouveauTexte
#8,00
-SetCTitie
: 'Déréférenœ'/e 'Hancle' de ; l'enregistrement Tex/Edit MOVEA.L
MOVEO MOVE.B
OC
41,4,336,396
Et pourtant, il fonctionne ! B,-P, Eminet et É. Vernier dans un livre consacré au Basic Microsoft sur Macintosh, publié aux éditions McGraw-HiII font référence au programme de J. L. Bazanegue paru dans Pom's 16 ('personnalisez vos dis quettes Macintosh'), pro gramme qui ne fonctionnerait pas . . . Doit-on rappeler ici que : • ce programme était conçu pour le Basic 1.0 ; • à l'époque, le Basic 2.0 n'était pas diffusé j • l'adaptation au Basic 2.0 a été publiée dans le numéro 17 ; • même ainsi adapté, ce pro gramme a toutes les chances de ne pas fonctionner avee une hypothétique version 4.12 ou 6.0 de ce même Basic, Moralité, quand on ne sait pas . . .
Pom's n' 25
III ftJcÇJ@)!fI}ftJ@){fjJ((ftJ @)!fI) Nous vous présentons ici un sous-programme à variables locales, donc 'transparent' qui vous permettra d'initialiser, afficher et gérer un ascenseur. Comme il est inutile de présenter cette élément important de l" interface utilisateur', nous passeront immédiatement à la méthode d'utilisation du sous-programme, baptisé "GF", Le sous-programme "GF". tel qu'il est présenté ici, est essentiellement destiné à gérer une fenêtre de texte. Le programme de démonstration met ceci en évidence en affichant des lignes de texte avec différentes polices et en différentes tailles, les déplacements verticaux de ces lignes suite aux actions sur J'ascenseur étant proportionnels aux caractères utilisés. Vous pourrez toutefois utiliser "GF" pour autre chose que du texte en remplaçant la routine ' Afficher' par la routine de votre choix.
Arguments d'appel de GF Il s'agit d'une valeur permettant d'indiquer au sous-programme la tâche à accomplir, ceci en fonction des message passés par le système (ON D1ALOO) :
1 · I n i t ia l isa ti o n . Prise en
compte des paramètres et de la taille de la fenêtre. Cet appel est nécessaire chaque fois que les paramètres ou que la taille de la fenêtre à gérer sont modifiés. 2 - Rafraîc hissement de la fenêtre. 3 - Défilement de la fenêtre sur événement souris.
Paramètres d ' i n itia Iisatio n (pour argument
=
1)
GFlim : numéro de la dernière
Porn's n' 25
1EJfff1ftJOcÇJ
Bernard Baz
ligne affichable. (La numéro tation des lignes commence à 0). Une valeur négative indique qu'il ny a rien à afficher. GFtfont : police de caractères. Chicago par défaut. GFtsiz : taille des caractères. 1 2 par défaut. GFtface : style des caractères. Standard par défaut. GFtitre$ : Titre. Pas de titre par défaut. GFpas : nombre de lignes Ç?:O) en recouvrement lors de l'affichage d'écrans successifs. Généralement 0 ou 1 . 0 par défaut.
GFxI, GFyl, GFx2, G Fy2 : coordonnées (coin
supérieur gauche, coin inférieur droit) de la sous-fenêtre gérée par GF. Les informations affichées à l'extérieur de cette sous-fenêtre ne sont pas affectées par le défùement. incorrectes Les valeurs sont automatiquement rame nées aux valeurs par défaut, soit : 0, 1 8 , largeur de la fenêtre- 1 6. hauteur de la fenêtre.
Variable disponible après chaque appel à GF sur événement souris (argument = 3) G Fmouse : 0 si l'événement a
été pris en compte par GF, - 1 si l'événement ne concerne pas GF et peut être traité par le programme appelant.
Sous-programme utilisateur appelé par GF : Afficher(x,y) L'appel de ce sous-programme correspond au traitement d'une action sur l'ascenseur. Il pourrait être remplacé par un autre sous-programme pour, par exemple, faire défiler du graphisme.
x : numéro de la première ligne afficher (commence à 0). Y : nombre de lignes à afficher (le curseur est positionné par GF)
Remarques : la fenêtre à gérer doit être active et être la fenêtre courante d'affichage. Elle doit être ouverte avant l'appel d'initialisation. Enfin, pour que la présentation soit plus agréable, utilisez plutôt les types 3 ou 4. Un bouton invisible (N. 255) est déclaré par O F afin d'inhiber le mode " scrolling" automatique. Toutes les variables de OF sont de type entier implicite (DEFINT a-z). Si les événements souris sont traités de façon asynchrone (ON MOUSE...) et non par "polling" (IF MOUSE(O)O . . . ) , ils doivent être inhibés (MOUSE STOP) pendant un rafraîchis sement puis autorisés à nouveau (MOUSE ON) lorsque celui-ci est tenniné. Ceci évite le risque d'appeler OF sur événement souris alors qu'il est en train d'effectuer un rafraîchissement. Au retour de OF 3 le programme peut examiner la variable GFmouse pour savoir s i l'événement a été traité par O F (GFmouse=O) o u s i l'utilisateur n'avait pas cliqué dans la bande de défilement (OFmouse=-l). Dans c e dernier cas, le programme appelant peut traiter lui-même l'événement. Les DATA de OF sont lues une fois pour toutes lors du premier appel d'initialisation. S i le programme appelant a lui-même des DATA à lire, il devra les placer avant ou après celles de OF selon quelles �,nnt lues avant ou après le pn,m,er appel à GF(I).
47
w , O , l : O N w-5
GOSUS Car , S
tyle IF
fIin ( 1 ) -1 6 : fIin ( 2 ) -1 6 :FOR i3 TO l 8 : f l i n ( i ) - f l s n ( 2 1 - i )
aff
THEN aff-O : GF
l : CL S :
GOSUS MajFen
:NEXT FOR i-1
RETURN Car:
Démonstration du sous-programme 'GF' Note
.-
WHILE MENU
FNmin (x , y) -xx AND y GFtfont-3 d ' utilisat
ion"
actères" : MENU
6 , O , 1 , "Car
6 , 1 , 1 , "Chica
6 , 2 , 1 , "New York " :
6 , 4 , 1 , "Monaco " : MENO
7,0,1,
7 , l , 2 , "Standa
7 , 2 , 1 , "Gras " ; MEN
o 7 , 3 , 1 , " Italique"
7 , 4 , l , "Souligné " : MENO
7 , 5 , 1 , "Relief " : MENU 7 , 6 , 1 , "Ombre " ; MENU 7,8,1,"9
7 , 7 , 0 , " - " : ME
Point s " : MENU
7 , 9 , 1 , " 1 0 Points " :MENO 0 , 2 , "12 GOSOB
7,1
p o i nt s " : ON MOtlSE
E v t S o u : MOOSE
ON
IF
DIALOG ( 0 ) -5
THEN
GOSUB
GOSUB
T
TBEN
TO
X T : MENO
6 : MENO
MENU ( l »
l
THEN
si
XOR 2 � (MENO ( 1 ) -2 )
7 , MENO ( 1 ) , 1- {w>GFtf 7,1,2
ELSE
M
MENO { l ) < l O
1 ) +1
THEN
w-MENO {
ELSE w-12
IF w GFtsiz
3 : TEXTFACE
9 : TEX
O : MOVE
TO
7 , i , 1 : NEXT : MENO
1 7
,MENU { l ) , 2 : GFtsiz-w : aff-l : WEND : RETORN SOB Afficher ( l i , nl i ) FOR i - O
STATIC
TO n l i - 1 : PRINT"Lign
e " ; l i + i : NEXT
SUB GF { w )
1985
STATIC GFini t , GFma j , G, s
SOB
init : init--1
GF1im, GFtfon t , G F t s i z
x1, GFx2 , GFyl, GFy2, GFmous e
GF 2 :
'Rafrl!!chissement
MOOSE
ON : RETORN
GF 3 : 'Gestion souris IF
GFmou s e THEN BEEP
RETURN EvtMen ; w-MENO ( O ) : IF
D I M f 1 s (1 8 ) , f l i ( 1 8 ) , f1sn ( 1 8 )
THEN MENO
GFyl-18
n-l
THEN GFy2-hfen-1
xli-GFxl+xl i : yli-GFyl+y l i : l i l i ) :pas-FNmin (FNmax ( O , GFpa s ) , lipg-l) : l i 1 m-FNmax ( 0 , li m-lipg+l ) : x 1 rol-GFx1 : x2rol -GFx 2 : y 1 rol-GFy 1 : y2rol-ylr ol+hli*lipg- 1 : RETORN GFma j : TEXTFONT
O : TEXTSIZE
lin (I)
O : PENPAT : PENSIZE
1 , 1 2 ; MOV
1 , 2 : LINETO xtit - 6 , 2 : M
OVE
7 , 1 1 : PRINT
E
6,-11:
t i t $ ; : MOV
LINETO
Ifen-2 , 2 :
yfl i ) , fl i { l ) , PSET : IF l i m > -lipg THEN WHILE
i-1
TO
l 8 : READ
fIs { i ) : N
, VARPTR ( g ri s (
: ERASERECT
VARPTR ( a s r
: FRAMERECT VARPTR ( a s
r (1»
:WEND
TEXTFONT
f l i ( 1 ) -1 6 : fl i ( 2 ) -1 6 : FOR i-3
si-1
s i : s i - O : FILLRECT VA
RPTR (bde ( l » (1»
EXT
G F t f o n t : TEXTSIZE
t s i z : TEXTFACE
GFt f a c e ; MO
TO 1 8 : fl i ( i ) -f l s ( 2 1-i) :NE
VETO x li , yl i : IF
XT
EN Afficher TO
l 4 : READ
flsn ( i ) :
(xil
, 1 7 ) , f I s ( 1 ) , PSET:PUT ( x f l ,
i s ( 4 ) , lin { 4 )
NEXT
l 2 : TE
VARPTR (
ETO
1»
FOR i-1 w>O
THEN GFx2-lfen-16
, flin ( 1 8 ) , bde ( 4 ) , a s r ( 4 ) , gr FOR
EvtSou:
IF GFx2lfen-1
fl , l 7 ) - (xfl, hfen) :PUT
WHILE NOT
RINT"GF VI . 8 1986"
OR GFxl>- l f e n - 1 6
GFx1-0
LINE ( a , 1 7 ) - ( lf e n , 1 7 ) : LlNE (x
, GFtface,GFtitre$, GFp a s , GF
Z,
GFxlO
WEND
TFONT
THEN
a i ll e : RETORN
ON w GOSOB
GOSOB EvtMen
MOUSE
7
' GF V1 . 8 e Bernard BAZ,
1
MajFen
48
MENU ( 1 »
END
Attente : WHILE
( 3 ) -4 9 : asr ( 4 ) -1fen TEXTFONT
ace) : GFtface-w : I F GFtface
6 , 3 , 2 , "Geneva" : MENO
"Style" : MENO
( 3 ) -hfen - 1 5 : bde { 4 ) -1fen a s r ( I ) -3 3 : as r ( 2 ) -lfen-1 4 : as r
: MENO
GF 1 : 'Initialisa tion I : MENO
bde ( 1 ) -3 3 : b d e ( 2 ) -lfen- 1 4 : bde
6 , MENU ( 1 ) , 2 : GFtfont-w
w-GFtface
GFy2-WINDOW ( 3 ) - l O
NU
6 , FNmax(GFtfont , 1 ) , 1 : M
WEND : IF
rd" : MENO
(3) xfl-Ifen-1 5 : yfli-hfen-IS
ff-1
GFLirn-IOO
MENU
IF IF
Fonctions appelées par GF
go" : MENO
Ifen-WINDOW ( 2 ) : h f e n -WINDOW
Style:
GFtitre$-"Exemple
WEND
WEND: RETORN
3
MENO
si-1
: aff-l
A-Z
TEXTMODE
THEN
ELSE
s i : si-O
ENU
WINDOW 1 " ( 2 , 2 3 ) - ( 5 0 8 , 3 30 ) ,
DEF
w-O
w-MENU ( 1 )
CLEA R , 1 1 000, 1 024
,
THEN
IF wGFtfont
placez en début de programm e :
DEFINT
BOTTON 2 5 5 , 0 , " " , ( 0 , 0 ) - ( 0 , 0 )
IF MENU ( 1 ) -1
pour u n Mac 128Ko,
TO 4 : gri s ( i ) - & h l I 4 4
: lin ( i ) -2 5 5 : NEXT
lim>-O
TH
l i l , FNmin (lim,
Hpg- l ) + l RETURN
Pom's n' 25
GFsou:
) -y2+l6
w-MOOSE ( Q ) : s i _MQOS� ( 3 » AND MOOSE ( 4 »
_xfl
- 1 7 : GFmouse
-NOT s i zon-l- (MOOSE ( 4 » 4»
-asr { 1 »
s i : s i - O : FRAMERECT VA
RPTR (asr { l ) ) : a s r ( l ) -y2 :
as
r ( 3 ) -y 2 + 1 6 : FRAMERECT VAR
WHILE s i AND lim>-lipg : si-O
r (3»
WHILE
3 2 ) - (KOOSE {
- {MOOSE ( 4 »
-as
PTR { a s r ( l ) ) WEND IF ABS (lfen-8-MOOSE ( S »
>30
AND a c t THEN act-O : FRAM
- (MOOSE ( 4 ) >-yfl i )
ON zon GOSOB Zonl , Zon2 , Zon3
POT (xfl , y f l i ) , f l i n ( l ) :RETOR N
ERECT VARPTR { a s r ( l » IF ABS {lfen- 8-MOOSE ( S » ) O THEN
li
IF act
THEN 51-1 ELSt a s !
( 1 ) -yl : a s r ( 3 ) -yl+16
l-li l - l : GOSOB af! a c t -KOOSE ( O ) < O AND KOOSE ( 6
WHILE
lilwlil
) 0 OR yl-hten-3l AND I i I
Affl :
POT ( x f l , 1 7 ) , f l s n ( 1 ) :RETORN
< l i l m : I F w THEN l i l - l i l w :
SCROLL (xlrol , ylrol ) - (x2rol,
Zon2 :
PENNORMAL:GOSOB
mou-HOOSE ( 4 ) :act-l
E FRAMERECT
WHILE act : IF
l i l > O THEN
li
1»
aff
ELS
VARPTR ( a s r (
y2rol ) , O , hl i : MOVETO x l i , y l i : Af f i cher l i l , l : RtTORN Aff2:
I-FNma x ( l i l-lipq+pas , O ) :GO
WENO : PENNORMAL : RETORN
SOB a f !
Zon 4 :
o l ) , 30 , bf : MOVETO xli , yl i :
mou-MOOSE ( 4 ) : act-l
Afficher l i l , l ipg: RETORN
act-MOOSE ( O ) alIble atlaldue.
11tInkTank : problèm::s avec le cacho �. L'� peul p:>SCr des problàre.s a1œto!ICS lDll réDlus.
rea:mn:il pas le pavê acceple les chiffres du clavier principal Nouvelle verxiœ inces samment. Le glossaire doit i!Ue dans le d0s sierde l'appb::.a1ioo.
Word 1.02
nurrtrique,
ne
mais
Hervi Thiriez
49
Clavier, clavier Plus ?
Touches spéciales
Si vous écrivez une application qui doit pouvoir fonctionner indifféremment sur
Mac Plus
un Mac ou sur un Mac Plus, il peut être intéressant de savoir à quel type de clavier on a affaire. Pour cela, on peut lire le contenu de l'adresse $21E, qui est égal à I l en cas de présence d'un clavier "Mac Plus". En Basic : IF
PEEK ( & h 2 1 E ) =11
THEN
Le Mac Plus est arrivé avec quelques touches en Plus par rapport au Macintosh (sans parler des touches 'doublées' du pavé numérique). On notera que les touches communes aux deux appareils om fort heureusement gardé les mêmes codes ASCTI. Voici ces codes :
Mac Plus
MacPlus ELSE Mac
En assembleur :
Jean Damiènes Alain Guillard Pal/le Jade Philippe Meslin Hervé Thiriez
insérer ce petit segment de code à la place du classique RTS de fin de programme : LEA
Param,AO
LEA
Program,AI
MOVE . L
A l , (AO)
Launch
0
4 , ' Edit ' , O
Ceci proveque le lancement de l'éditeur.
Si vous êtes passé du Mac au MacP[us, vous avez certainement perdu le caractère ""Ë", que l'on obtenait avec la séquence de touche : '
Qui a retrouvé la puce "." 1 le
'Mega·truc'
intelligemment, ne fait p a s la distinction entre les formats et les encadrements.
1 25 1 25 1 25 1 25 1
pour effectuer un collage spécial des valeurs seules et avec soustraction vers le vecteur :
30
0
on obtient l e résultat :
1 - 8 1 -25 1 2 5
27
5
où la troisième valeur est erronée, car la cellule récipiendaire était vide.
. ······ Miië7Miië pius ······_,
D � 9 8
o iJ
� ......
13
3
ROM 64Ko ou 128Ko ? Le Macintosh Plus ne sera bientÔt plus seul à disposer d'une ROM de 128Ko. En effec, le Macintosh 5121800 arrive . . . avec l28Ko de ROM. Les programmes qui aiment savoir où ils sont peuvent tester le contenu du mot de 16 bits situé à l'adresse $28E, qui est égal à $7FFF (32767) si l'on est en présence d'une ROM de l28Ko. Exemple : IF PEEK ( & h 2 8 E ) * 2 5 6+ PEEK ( & h2 8 F ) =3 2 7 6 7 ROM128
ELSE
THEN
û
ROM6 4
spécial associé à une opération. ert
la
matière, c'est l'accessoire "ad litteram" publié dans ce numéro (dommage pour l'accessoire "clavier", qui a quasiment disparu. des disquettes de tous ceux qui ont essayé "ad IiUeram" ).
seulement les valeurs, les formules ou mais, moins les formats
1
EJ
31
grave, mais ils sont quelque peu énervants. Un des plus originaux touche Spécial, qui - très le Collage intelligemment - permet de copier
17
30
EJ
Le seul remède que nous pouvons vous consei!1er est de mettre des 0 au lieu de blancs dans les cellules appelées à recevoir des informations par collage
E
Sur le Mac Plus. il faut faire : Option 1 E N.D.L.R.
2
Nous avons déjà constaté plusieurs bugs dans Excel; aucun d'entre eux n'est
1
Un caractère retrouvé
Option
EJ8 EJ [] 29
Le bug est le suivant. Quand on copie le vecteur :
$A9F2
0
OC Program DC . B
MacPlus
Le collage dans Excel
Des essais rapides
DC . L
tll, $2lE
SEQ Mac
Lors de la mise au point d'un programme en assembleur, le passage par le 'Finder', au retour, fait perdre du temps. Pour éviter cene étape, on peut
Param
CMPI . B
la d'
\ e Au
sommaire en
Basic,
: li
Finder,
Systeme
Ad
ette IIlIeram,
version
3 2c
M a ' 2� ,) les et
ascenseurs Fmder
5,3
Francophonisme . . . Suite,
Suite à la question métaphysique posée dallS le numéro 24
�
rappelons qu'il s'agissait de trouver un exemple de texte
français comportant tout l'alphahet en une phrase aussi courte que possible -, Georges Boyer, un lecteur d'Annecy nous propose : "Porlez ce bol de viellX whisky auxjuges quifument" Il nous suggère de le traduire pour les américains par "Bring this cup of old whisky. . . " ! Les habitués des connexions Transpac cOllJUlissen! certainemEnt le : "Voyez le brick géant que j'examine près du wharf'.
50
Porn's n' 25
J..LFINDER
Gagner S6 Ko ? : Jean-Luc Bazanegue
Le Finder du Macintosh est une application sophistiquée qui autorise une gestion complète des fichiers placés sur nos disquettes. A l'usage, on s'aperçoit que la plupan des fonctions sont rarement utilisées lorsqu'on emploie, par exemple, des utilitaires (PaintMover, REdit. . . ). De plus, le passage par le Finder prend du temps et, dans le cas de programme réclamant beaucoup de place sur la disquette (comme MacPaint), il peut être intéressant de récupérer la place qu'il occupe. Nous vous proposons donc un "micro-Finder", qui ne conserve que les fonctions essentielles de son grand frère (sélection d'une application et éjection/redémarrage). On utilise pOUf cela la fenêtre de sélection du système (dont l'aspect peut varier d'un système à l'autre), ce qui nous penn et de gagner 56Ko sur chaque disquette et, du même coup, beaucoup de temps lors du passage d'une application à l'autre.
Fichier 'j1Finder.Job' """ U..
""""'
..F....'.A$m .
"K
..F....'.FI .
"-
..F..-.Lft
Eue
Fichier 'j1Finder.Link'
[
IIFif1d&r
iOu\pJI IIFinder.Code !Type 'TEMP'
$
Fichier 'j1 Finder.R'
l'Finder
APPllIFNO
Type Ilf'ND .. STR "
l'find&r ' Porn·s· Juin 86 Typa 8NOL ,128(32) Ilf'ND O .,.. 0 1 28
08100810 08000010
00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000
00000000 00000000
00000000
.1""
_'r'IiIlhatogs
.1""
.128(32)
,ppt , Type ICNt .. GNRL ,128(32)
00000000 00000000 00000000 00000000 00000000 00000000 07FFFfEO 08FFFF 10 09024090 09366C90 090C3090
08FFFFtO
Pom's n' 25
.1""
.T,..,
.T•..,
.T'all .Trall
.T'all .Trap .1""
.Trap
incIG,al
SM"
-
_ntM.nus _IrÎtW-..-s
...", $.0\912 $A9F2 .,,'" .""
-
""�
_Pack3 _S«CU'SOf
_s.tH.ndIeSizI "".
_SIIVoi
""" ""'"
_TElnii
; Eqt.OVII.fICdI :
""'"
rVoIu"",,
��
""" "'''' .,,,,
",InoIFol'IIs
SFGetF,,. IcNamePl, IoVONNum AppParmHandll watehCurao,
eau eau
eau
"TU ",J 'OJ eau
'00
, , '" , ." ." ...'" •
291 K
FlNDER
dans disqueo lOOK disponib1
e .
..
[Iftll
FindE'r
SYSTEM
lM AGE'w'R ITER
� �
Milc"a'r-ib
ioVOElSiz,
eau
MacPaint
.'"
MlO.·(SP) (SP).·(SP) �SP) ;SP) '1,·(SP)
''''
''''
...-'" .sFGetF_.·(SP)
MOYE
;SP)
Puk3
;C_ ... _ do morrr..
MOVE lrwalChCu'SOf.'(SP) _GIICur.or MOVEA.L (SP).,.A2 MOVE.L (A2).;SP)
:,IWparw s. 1&o7llOI'l ; d_'-'-1;' LEA IO.AO CUH
TST BNE.S
ioNamePl'(AO)
RBPOI'ls"IGood{AS)
.1
SI"" ...... ........ _
diequMf_ SOrIII .� " "" ..a6mItr1 ".IJ'SIIIrrMOVE _E}ecl MOVE _E}eel
JM'
''''
CLR.L
$A''''
e
SYSTEM
�
M''''
""" """
_'IW1CursOl'
élém�n1s
CLR.L
Source .'j1Finder.Asm' ]k4hE-o.nlS _GlIICul$Ol'
:5
CLR.L
OFFFFFFO OFFFFFfO OFfFFFFO 07FFF FEO 07FFFFEO 07FFfFEO INCLUOE llf'inder.COde
IQ
-
D i s q u e t t e B u e e /l F i n d e r
"""
OFFFFFFO
_EjICI
IMAGE'w'RITER
;1/l1ndItd """
OFFFFFFO
.Tf.., .Tf.., .T'all
e
.
; Midrage r» .. fln4jlf.. IfIIIIcI/orl
OffFffFO OFFFFFFO
OFFFFFFO
� .
InllMlnu. �SP) _lnIlOI.lolI· _TEinte _rnIICur.or
OFFFffFO
OFFFFFFO
347K dans disque' 44K disponibl@s
CUU
OFFFFFFO
OffFFfFO OFfFFfFO OFfFFFFO
5 ilime'ni.s
InIIC ..1 _lnIlFonl. MOVE.L IISOOCOFFfF.OO _Flu.hEv.nl. _lnteWlndow.
07FfFFEO
OFFFFfFO
.1""
Typa FREf
ô
07FfffEO 07FffFEO
; Rou_ t,IIMsMs:
>REf 0 1 28
2 00000000 00000000 00000000 00000000 00000000 00000000 00000000 08000010 09000090 091E7890 095E7A90 09000090
'" '" '"
08000010 082ff.10 08000010 0.000020
-D� D i s q u e t t e Huee Finder
..1,ioVOrvNum(AQ)
"2.ioVOIVNum(AO)
""""'"
; tdiQuI ,. ""AIme 0 H 110.,... ; f.,:Jp/icltion MItc1ionntM .,.,."",. ;4/1/"t" � PI' PAH (JJ.CJ..I.l l GO�UI ,ro
lOlO � , .
1
B_I�i"'e�.
E"'ie41.�4
C """"........
0.1000
Si... ALORS ù.t...... SINON dICtJI�
�
10SQ N U, J 10 6 0 h'U !
1
2000 �" lnout lQ 2010 P1IJo!)
2030 ,
- ,
2010 RU"IQI
. 1
JOOO "� eUeolo;.. J020 n(J
500
111.: �(J 6/ 7J 7] 10 f1 Il 1) 11 le 11_ ' a y o - I • • • " _
VJd.
flI lu11e
11
pragramml)
1101: 1' 71 f/ fC f9 U 11 1C 11 _ 1 t a i l • • . _
00 00 CO '10
Of
H01:
V.leur 0
flé.Oht 10: Veleur CI
U.c, (1) 00
DATAs du
1:
flO 6ec.
REM
-- TABLE DES HE5SJ1GE5
-_
READ HS lM}
430
NEXT
If
450
RUt
-- AFFICHAGE LISTE A TRIER
UO ,
P1/.INT COL.
4110
CHRS
12J } : REM
raT , HOHF;
53
HO
GOSU9 1330: Rf:.'f
V . 1:
III AFFJC
1230
500
PO/(E: 34,12
1240
510
RETURN , Rf.:M
'" 530
PRINT
CHR$
I(I; -BRUN TRI.DOS. INI
HJMEM: 3B400
lUO
RETUR.'I
CHRS
1310
III INIT i'RODOS III
1330
REM
III FIN PRODOS III
REM
5'0
CALL 4BBBB: REH RE:TURN : REM
1730
1770
1080 Y
PRINT
'"
1750
HOHE
A,FICnAGE: LIS'!'E A TRIE:R
'"
, "GS"
AFFICHAGE LISTE TRlEE --
REM
COL.
-Luxembourg", "LuxembO urg", "
, "D-
1/1 TRI 11/
10'0
1150
DATA '"
1710
ReH
410
450 V .. 1 : GOSUB 1410: REM
ON CAS GOSUS '90,990," 0,1150,115
1040
1100
"H.I1e", -R""",", "1"
DATA
' N,PAY$(1, CLEI ,PI/11
FOII. M .. ° 1'0 5
NEXT M
DATA "Be1g1que", "BroxelIe,,", "B"
REM
DIM MS 151
'"
1680
RETURN : REM
TA9LE DES MESSAGES --
390
1'70 -- TRAITEMENTS
REM
RU.D MS l/'f)
'"
REM
REAl) PAYS 1l, JI
380
DATA "P.y,,-B.,,", -;.. H.ye", "NL-
1030 TRIE . 1
1070
-- NeR DES PAYS --
1640
1010 CL!: _ CAS - 1
1050
REM
370
DATA
1000 1020
360 la
FOR J _ O ro 2
'"
1650
'" 990
340
16'0
, 970
III
4 + CS ' S
'" 960
1 '30
" , DONNEES FIXES
IF CAS - 0 THEM 810
'" 940
1580 Rf.:M
(R$
cs
"l'")
1590
"p. OR R$
8'0 Cl
HO
171;
PRIm'
1500
: : : REPETER : : :
REM
"
170
1490
INIT CHOIX --
50
'"
1440
14BO
REM
760
III TOOCHE III
1470
HEXT M
740
REH
1450
lUO
III INIT PROGRAMME
'"
1430
'"
GOSUB ISO: REM
"
130
1410
'90
...
'"
,1);
."
30
'"
13'0
PRINT OS: "PREF"lX CODE. MACHINE "
'"
TRI. CnAINE . 1 . 1
" \!TAB V: NTAB 1
'20
r
1ŒM ' "
;//
1320
'"
54
10 "
ZONES ALLO/JE:ES
141
RETURN : REH
570
CHlI$
+
1131
REM
1290 1300
T.C5'0 D$ -
III F'IN DOS III
1250
12BO
'" 550
Rf.:M
1270
III LNIT DOS III
REM
Programme 'TRI. CHAINE. 1 . l '
1220
HAGE: LISTE: III
"7"
PRINT R$;B$;
Pom's 0" 25
"m")
_
710 C4 .. (11.$
"H" OJI. R$
720 CS _ (11.$
-S- OR RS _ "."1
130 CAS _ Cl . C2 ' 2 + C3
1450 J .. Pt tl)
1 4 60
I410 1490
IF CAS _ 0 THt:N flO
n,
REM
1500
-- TAAITI:Ht:HTS
ON CAS GOSUS 810,810,810,1340,134
790
RE'NJIIN : RI.:If
,
BIO ."
B30
REM
1520 I!>30
2fO
DIM NS/SOO I , lXt(!>OOJ
270
lI.EIt/) HS,IIOS, rS,:rs,s$
290
-- MASOUE D ·EClUJI
II.EIf
1!>80 1590
'60 PlO} .. 1
1600
RCAJ) HS
310
1610
fOICE 34,0
320
1620
lITAS 1: nUNT
330 L - 5
ON 2 - PRO GOTO 1650,1660
350 :
1 650
PRINT OS; "RUN 8.o\SIC/";IIS
J60
1660
PRINT OS; "RUN";IIS
no
."
900
'" 920
-- SOUCLE EXTERNE
1630 PRO .. 1640
FOII. 1 _ 2 l'a il -- EXTJI.Jlr:::rION
REM
'" _
H80
fAYI (l, CLE)
980
II.EIf
-- SOOCLE INTl:RJlE
1700 1710
''''
1010 1020 1030
REM
-- CCHPARAlSOII
ON 2 - /fAYS /J.1, CLEI 1120,l1BO
" XI!
l Of0
10!>0
REM
IHO P t (.1 + II 1160
Jl.E1'URN : Jl.EM
Il 70 11BO
Jl.EIf
1190 1200 Pt 1210 1220 1230
III DECALAGE III
(.1 •
RETURN :
�
"DECUAGt:>
�
--
A'lTDlTE T'OOCHE
-
llOO 1310 1320
GOSUS 1500: II.EH III rouCHE III
II.ETURN : REM
"
!lATA -TII.1. CHAI/1f:.HENU"
Programme 'TRI. CHAINE. 1 . 2 ' REM
... TR1.CHAINE . L 2 •••
30
casus 150: REM
III INIT III
" "
FOR l - l TO /I
1370
"
GOSUB !>80; REM
III Lf:CTURE III
"
CDSUB 640: REM
Il AFFICHAGE. Il
80
NEXT 1
1380
lITAS 23 Jl.t:TfJRN :
II.l.:1f
1400
IHO
REM
III ArnCHAGE LlSTf: III
1430 1440
lITAS V: NTAS l roll. 1 • 1
Porn's n' 25
:ra N
(fJ
RI:H
"INI1' PROOOS>
III LEr:::rURE III
PRIN:!' DS; -RCAJ)";rl
610
INPUT NSII!
620
Rt:TURN : REM
'" REH
III AFFICHAGE III
'" 660 670 HO 710
IITAl! J2:
HTAB L: CALL 64668
PR!NT NS/I!
lITAS I f : NTAB L: fRIN'l' l
REnJRN : JI.EH REH
III nu III
730
HOHf:
140
HTAB 21
750
IITAB 12: PRlIIT TS
-
LW (TSI 1 Z
760
' 1I,/I$/ll,IxtUI
770
RETUfl.N : REM
190
RDf
'"'
." BIO
"nu>
III L IS!'E TRIEE III
SPE.ED- 220: NONE PRINT - NO"; TMl I 9!; -NCHS-;
"
1420
REM
'"
ID
CHII.$
'DO
ll50
1390
_
PJl.INT DI; "PREFIX CODE.HACHINE
600
680
J360 FINI . l fO/(f: 34,0
SBO
HO
1920
RDf III INIT PROVOS III
RE'lT./RJI :
DATA "Tr1 p.r
e"u. -
CHRS (fI
"INIT DOS>
560
1900
DATA "R"tour .u . . .
t
U JI
PRINT DI; "BR!JN 1I1.I. PRO.INl1'.C-
DATA -Tr1 p.r
hrévl.t10
CHRS
AETURN : RDf
fRINT DS;-PREFIX 1"
1890
.p1t.I • . •
a l ; "S'WN TRl.DOS.INl
550
"Tr1 pAr
"P>.y• • "
CHRS
HO
DA!'A
" Jl.EH
P'UNT
520 DI
IB80
III Arn
CHAGt: L1$71: III
500
'"
1970 RDf
1280 1290
DA!'A "GrA"d", Br",eA,,"e-, -Lo"dre�" , "CS"
III INIT DOS III
'"
-- HESSAGf:S --
1960
OO$US 1(10:
REM
T.C"
REIf
Ha€
1270 v .. 13:
460
'"
lUO
"INIT>
'"
DATA -lrl."d,,", "Duhl1"", "lU"
RI:H 1 AFFICHAGf: LISTE TJl.lf:E 1
1260 TRIE _
f40
530
••
12(0 1250
DATA "A11"""'11"" EI"I'r.l.", "So"" " , "D-
1910
- JJ
RETURN : REM
'"
o
II
INPUT N
DATA "Selglque-, -SrtlX"JJ,,�-, -B-
1870
115 0 .1 _ 0
fl0 f20
DATA -Lulre.o>bourç'", -LwrUlbourç'", "
1 860
_ I
fRINT D$, -OPEN-,FS fRINT DS;-READ-;FS
J800
1850
1130
-
NOT DOS THEN FS .. "FICHlf:RS/"
400
f?O OS -
lS40
III IIISEJl.TION III
- FICHlf:1I. EN ENTREE
3'0
fBO
1820
HTAB 5: PRINT NOS
' "
DATA "FrA"c",", "PArJ�", ·F"
1830
REM
IF
DATA ·D."..... rlO
//1 TRI 1//
H' m 1 10
RETUJI..� : REM
IHO
780
""
Nl:XT 1
1490
'" 760
ilOT TII.If:
, l i ; TAB I 3(},PAYSIJ,21
' 3 + C4 "
f + CS ' S 140
• TII.If: • l '
PRlN'l' PAYS (J, O ) ; TAB r 201;fAYS/J
TAB (
2BI; "HO DE FICHl:PRINT ": : : : : : : : : ; ; : : : : : : : : : : : : : : : : : : : : , , , : : , , : : ";
840
fO/(E 3(,2, lITAS 3
JOO
GOSUS 710: REIf
/II !'Jl.I III
850
FOR l • 1 TO N
1I0
GOSUS 7'JO, II.EM
LISTE TII.IEt:
860
liTAS ( -
120
GOSUS 920, REIf
III FIN III
1JO
END
LEN ( STRS
(1) ! : PRINT
" 870
NTAIJ 7: PII.I/IT NS /IXt/II J ;
55
BBO
HTAB 34 -
LEN
/ STRS
250
/Ixt/II ) ) :
B90
NEXT 1
1100
RI;7VRN : Il!:H
1130 REM
470
III BRUITAGE /1/
RE."f
FOR T .. A TO B STEP 5: POKE 768, T
490
RE."f
III
TAAITEMEm'
III
600
REM
III
AN11'.ATION
"FICHE NO
1240
DATA -TRl.LISTE-
'"
1250
DATA "TRI EN COURS"
630
DATA -ESC: SORTIE 1 AUTRE TOUCHE
'"
III
1190
GOSUB 100
1210
NUNERO EN INVERSE ---
"
INVERSE : PRINT l
_
l : H _ 200: GOSUB
680
NORMAL
HO
700
/!TAB
MIOS
780
INveRSE : PRINT XS;
80
eND
HTA8 1 9 -
LEN
/MS /M) )
1 2: PRINT
850
RETURN
'" B10
RE."I
III PAUSE 1/1
REM
LECTURE CLAVIER
220 X _
240 :
PEEK
- l : H .. 80: GOS
VTAB 5 + 2 • J: lITAS 4:
PRINT PR
RETURN
1400
REM
/// IN5ERTl� //1
REM
III
REM
--- MESSAGE BAS ECRAN
ANIMATION 1#1
GOSUB 42
1420 1430
NEXT K
1440 14 . 4: GOSUB 100 1450
REM
--- ARRET A DROITe
RETURN
1 4 60
REM
GLISSEHENT VERS LE BAS
1470
HO
1480 DP • 75, GOSUB HO IHO
VTAB 3 + 2
• J:
HTAS 22:
CALL
'" REM
11/ CŒPAFAISON 11/
1500
REM
#11 GLISSEMENT veRS LE HAUT
INveRSE
VTAB 4 + 2
�
1510 A _ 15,s
1520 OP .. 75: FOR L • 5 10 4 STEP
- l
l , H - 80:
l:S
UB 420 GOSUB
J: PRINT
GOS
HO
VTAB 4 + 2
J: HTAB 22: CALL
'"
1540
VTAB S t 2
J: PRINT XS;
930
INVERSE
1550 A .. 15:B .. 1: 5 _
940
VTAB L - l
- 1 6384)
IF X < 128 T�N 390
l:S _
1530
920
m 230
910
_
1410
'" REM
1390
'"
MO(JIF. DUPEE DES PAUSE
HO 200
1380 SPC/
'" 890
PO 180
�
840 DP .. 500: GOSUB
MS/M) '" HO
1360
o
820
SPC/ 20)
1370
790 A - l : B .. 5:S - I : H _ 40:
130
140
56
GLISSEMENT 2 ---
REM
GOSUB 1870: REM
'"
SPC( 20)
S ( J + 1)
70
- 868: NORHAL
2 ' J: HTAB f
UB 420
1350
f'OR K - 1 T0 22 - L)( - 4
CALL
VTAB 4
1340 OP - 1000: GOSUB HO
NEXT K
NORHAL : HTAB LX + . : PRINT
VTAB 23:
GOS
VTAB S t 2 • J: /!TAB 4: INveRSE
GOSUB 42
'"
120
80,
1320
1330 A _ 10:8
770
800
INVERSE
lm'
l/WERSE : PRlNT XS;
GOSUB 1770: REM 1/1 TRI PAR INSERT
'"
l:H
VTAB 4 t 2 • J: HTAS 4 : NORliAL :
/XS, l , K ) ;
60
Rf:."f / AFFICHAGE DES MESSAGES /
_
l : S ..
1310
no
ION III
1O:B
: PRlNT PRSIJ t 1)
,
'"
•
UB 420
: PRINT PRS (J t 1 ) ; : NORHAL : PR
4 : PRINT
'"
HO
AFFICHAGE DU DECALAGE
PRINT
FOR K - O TO L)(
/1/ INITIAL15ATlO
100
GOSUB 100
500: GOSUB 160
REM
1280 A
LEN /XS)
GOSUB 2200: REM
"
•
1300 OP _ 150: GOSU8 160
50
M'fE /1/
1260
1290
670
720
11/ FIN DE PROGAA
1240 OP
GLISSEMENT 1 ---
REM
660 LX -
N ///
MESSAGe BAS ECRAN
REM
1250 VTAB 3 + 2 • 1:
650 OP .. 500: GOSUB 1 60
CORPS DU PROGRAMME 11#
#11 AN1MAT1�' #11
REM
1230 M .. 3: REM
�
REM ••• TR1. CHAlNE.DEMO ...
III
- PR$(J)
1220
710 A .. l : B .. 5:S " l : H " 40:
REM
TRAITEMENT 11#
1200
610 A .. l : B .. 5:S
"LECTURE DU NOM
DATA
30
III
1270
DATA
10
REM
1150
'"
1220
"
1/1 DeCALAGE 1/1
1180
1230
Programme 'TRI. CHAINE.DEMO'
GOSUB 230
REM
1140
1210
: HENU
100:
1170 PR$(J .. 1)
'"
1260
_
'"
580
PR1NT PR
RETURN
510 X$ .. PRS/I)
PRINT DSt -RUN BIISICITRI .CHAINE.M
III
VTAII 3 + 2 • J: HTA8 4: $/J)
1160
560 OP _ 500: GOSUB 16 0
DONNEES FIXES
NOF 4 THEIl CP .. 4
'"
980
960
300
ON 2 - DOS GOSUB 1040,1090
�
'"
8 TIIEII CP .. CP • 2
310 PRIN'T D$; -CLOSE ";F$
- l:H
B 420
128
950
1000
950 A .. 1 0 : 8 .. I : S "
270 X .. X
940
-
' "'
REM PRESSION D ' UNE '!'OUCHE
'"
l'RINT IXI (1)
VTAS L t 2 • J: /!TAB 22:
CALL
t 2 • J: /!TAB 22: PRIN
'"
- 1 ;H _ 80:
DB 420
Porn's n' 25
1560 DP
_
1000:
lS80
1lU!
HOJl.l:CINTAL
GLISSU!CPT
1590 _
2110
GruUB 160
1570
21
1'0 4 STCP
POP : POP
2610 A _ 19 -
2140
TEXT , VTAB
26'0
NTAS A: PJI.1NT AS
2700
VTAS J
FOI!. L
1610
INVtRSE , HTAB L, PJl.INf XS;
2160
1620
NO�L
2170
PIlINT
'"
1640
SPC( 11
l,H "
100,
GaSUB
PJl.lNT
2720
CHIIS
(41; -IlON BASIC/TJl.I.C ((1; -IlUN TIlI. CHAIIIE.
/// !NITIALlSATION ///
�
2210
1680 OP .. 1000, .::cSUB 160
2220
PUN!'
CHU
2230
TEXT
HOHE , SPECO" 255
NT.\!!
NORJ.fA.L ,
1690 1710
Jl.EM
4, PRINT ,/CS
2250
�
--
(21/
1730 PRS (J
11
22S0 N ..
1750
2290
1 no
1lEJoj
1780
- TABLE DES PAYS
LECTUJl.E PAYS --
IlEM
IlEAD PliS _
F01l 1 _ 2 TO N
2JJO
GOSUB HO
2340 loi .. N � l:PJl.S(N) .. PliS 2350
FaJl. J .. 1 - 1 1'0 0 STEP
1830
1 GOSUB IJ80,
ON (,/Cs < PJI.$(JII
2850
-F- THEN 2370
2S70
GOTO 2300
0: GOSUB 100
'"
10:5
l:H
100: Gruus
10:S
l:H
50:
IIm ATTENTE D ' UNE TOOCHE liAIT
16384,128:
2190
liEN
2370
LECTUIlE DES MESSAGES
Il�
2910
IlEM
PAYS ---
2920
HS (5)
2390
DIM
IlETURII
2400
FOR Il _ O ro 5
2940
READ HHIl)
2950
DArA
"PASCAL"
2"0
DATA
-FORTRAN-
2410
III f'lN DU PJl.OCAAHŒ III
IlEM
MESSAGE BAS DE L ' ECRAN
2930
NUT Il
2420 200
J880 1890
2440
�
---
COEFFICl�T PAUSE ---
DAT/I
2970
DATA
-COBOL"
2980
DATA
-AA51C-
1900 ,
2450
2990
DATA
-/ISSEHBLEUII"
1910 M _ 5: GO.5UB 100
24'0 CP .. 1
3000
DArA
-MOCXJLA 2 -
1920 A _ l :B
10 :5
l:N
100: GOSUB
H30 A _ l ,B H(O 1950 1960 1970
l:H
10:5
50: GOSUB
: Ilm
ATTENTE D ' UNE TOIJCHE
PO/(E 49168, 0 : fiAIT 49152, 128: PO
TEST Jl.ETOUIl TIl1. CHAINE,Mf;HU
2010 TC
_
..
CN
PEE/(
(TC
�
(TC
13)
' 2
OH CH GOSUB 2060, 2110 GOTO 1950
2050 IlEM
III SOIITIE III
2070 2080
TEXT , Na.!E
2090
POP : IlETUIlN
2100
---
1lE.'f
---
2590
VLIN 0 , 4 7 AT
D,
�
-- MESSAGES
-
VLIN 0 , 4 1 AT J 9
1' 11 1-
DATA "D E B U T
3120 3130
D U
DArA -C 0 M P A Il A I S 0 101-
DAT/I
-0 E
DATA
"FIN:
C
A L Il G E
DATA -1 loi S E li T 1 0 101-
.. SOII.T1E
.. HENU3140
2610
VTAB 24, PIIINT
2620
POKE 33,37: POIlE 32,2
LEFT$
REM
PIlOC, MUSlOl.JE ---
3160
ILS, J91;
3110
DATA 113, 4S, 192, 1 73, 0, 3, 32, 168, 2 52, 17J,l, J, 20B, S, 206, 28, 3, 240, 6,
2630 REM
206, l , 3, 76, 2, 3 , "
TITRE ---
2650 2660
VTAB
Jf •
15 •
-
D.m dtl cr4i1tlon, 12 ilout lUS
IWrIJn-Pro 1.43 - !I••• ""'I.ur: 16 . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . "
» > TJl.I,l'RO,INIT """
"
" 20 21
,
rt!:�erve 1 ""'/lOJre-tempo" d 'uIltl pdg" "ntre
22
,
le BIISIC, SYSTEH .t Iii Nmo!u-tilmpon
"
(Gefleul Purpo.e Butter) .
le pr(}Olre -t.ampon
'"
STA IN, y
:d'en e rl:e IN 1$20 0 ) .
m
'" HO
C:"P 1$10
'"
BN./; COPIE
. pon d' ... ' tr�e : :1. �moJ re - t •"'
HO
';SR OOSCHD
:,lI.lyse et ex"cutlon
'"
acc RETOUR
:51 pu d ' erreur
'"
'"
1.. code ASCII des
est live" le bit 7 mis � 1 .
"
:eltr,
"
:Au "..tou,.-,
C - l s1 erreur.
121 .-------------------______________________ ____ • 122 • - Erreur d'e�"cuelon de 1. c�nde
:G.uUon .on C,ts d ' erreur
123 .----------------------_______________________ •
"
:d.. "s "n" co"",."d.. PreGos .
'"
..
;Le code d'erreur e n plac 09
" "
JSII. cotWERT
., "
DIM
,�
..
MI CO/'IVt'flTl
;11 A ",onU"n! de SOO • SOJI
..
ADC 1S0f
;.lnon A c_ A • 7
;$00 • $09
CliP ISOA
" CONVERTI
"
Ou
A$(5)
;e,., $13 --> SC3
FOR
l
-
l
TO
1 0 1 �DE
ASC �8LCADTRI .CHAINE . C, AS "
102 MUSSE
"
'"
DFB $ID
-
Tt (6)
6
:
PRINT A $ ( T t ( I ) )
:
Les programmes de démol/stration
.
sous DOS fonctionneront directement et d'autant plus simplement que vous disposez de la disquette
Source 'TRI. CHAINE'
d'accompagnement.
assembleur Procode ,
LST OFF
Sous ProDOS, apros saisie au clavier ou transfert depuis
TAB 03,JS,2J.3J,3f.f9
la disquette Pom'S, vous devrez menre les programmes
3 •••••••••••••••••••••••••••••••••••••••••••••••
Basic dans un sous-catalogue nommé :
» > TRI. CHAINE ccc ------------________________________________•
.-
-
6
td. lin t.bl..... de chelnel
BASIC
de c.r.ct"re�
et les routines dans un sous·catalogue nommé .' CODE . MACHINE
3.n• .oditier J 'ordre Inltl.J.
7
- �d.e l 'ordre elph.bft1que 'u moyen
8 9
d 'une t.bJe d'Inde. (typ• •ntl.r}
quI e1ft
lnltl.lld. p.r 1 . preau...... lul ...."'e. ...
.----------------_____________________________ •
"
Syne.."e : , N,
A$(ll,
" .01$ (1) .. �l $13
.. "
A$(l)
A$(3)
DIM
.. ��n "
: :
JI faut dimensionner un tableau pour recevoir les clefs
;tl" de h routi"" ASCII
"
A$(6)
"PAUL"
"YANN "
:conve .... · lon qu.rt"t de ;pold3 ton
..
?
Un exempl6 simple :
;lluveqlrde de A d.nl X ;""..queqe deI bltl f � 7
JSR COHVERT
"
5
TRI . P R O . INIT. C "
s'iI s'agit d'une disquette ProDOS.
cOllve,..,,!on d" J '.dr•••• 4/1 ASCII
..
•
TRI . D O S . INI T . C �
s'if s'agit d'une disquette DOS, o u :
'"
68
TRI. CRAINE . C
Au début du programme Basic, il y aura une instruction :
:rln de cOJmI.Illde?
.. 67
et
s'il s'agit d'une disquette ProDOS.
"
"
TRI. CRAINE. C
et
s'il s'agit d'une disquette DOS, ou : TRI . PRO . INIT.C
59 COPIE
?
•
-
DOS • Appluoft
ou
ProfX)S • 8.3J c . SY.fCe", • Apple.fott
Porn's n" 25
l'
.--------------------------------------------_.
2a 21
•
-
22
•
-
23
.
Aut.ur
LAHBILLON Sern.rd
D.te de cr4. tlon : AUl!mblellr
1 0 • .,lIt 1"5
: ProCede 1. 23
. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . .
"
25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 27
• ADil�SSeS D� REreil�Nce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
59
-=-----
:LINNI./M ($50,$51!
,. 2f
.-____________________________________________•
30
•
31
33 TABLEOB Jf TABLEOH
J6 TABLEI H JI TABLE2H
41
42
•
:..dresse de 1 'tl
"
:.rdr...se de 1 'tH_nt
116
.-----------------------+---------------------.
117
•
'"
:"",cr.Jc de 1. C.bl ..
:.rdr"!J"" de ! '
"
3 7 TABU2B
fO
113 " "
35 T'ABtElS
0 dO! 1 .. c.hl..
118
d.ons 1. t..bl ..
'"
.---.-------------------------________________ •
'"
•
m
; cOJ:lp.rr
1.. ,abl" o ' inoex
PoJnteun ven
.--------
-----________________________________ •
44 INOf:XIB
".
f(j INOEX28
tde
l · �l�"'''nt
f9
50
51
Nombre o ' i1��n�" A
54 N8f:LH
:1. routine GETADR �crH un
'"
; "n U"r A ""n.. ..da""..
.----------------------------_________________ •
58
.---
•
60 WNG1
'"
61 CHAINEIB
".
62 CHAINEIH 6f
65 66
GETADR
PAG
:e� ,,�oc�..qe en fAC (S9D• • SiJ,2) ;fAC --> NBLf: ($50 et S�1)
1 24
.-------------------------
125
•
-------------_______ •
In1tl..11"uJon pointeun TA8LEO et
TABLE1
'"
JSR
CHKCOM
Hu�e pré"en"e d'une
'"
JSR
PTRGET
;pl"c" .oresse oe la
v!rgul" variable
'"
;poJn��e Pdr TXTPTR d.ns A
'"
: (fU n ! e Musel JSR
'"
e, r (fUrU"
CHKSTR
;teHe
".ri.ble typ" ch.ille
;initiat ion "ous,r.ction
'"
'"
STA
TA8LEl8
S8C
IS03
: t rallst"a de A --> TABLE18 t3 octet,. p.r : t .ble..u du
'"
'"
HO
�l� .."nt d'ull
'ype ch.. in"
STA
T....BLE08
t t ransfert d" A --> TAlJL!:OB
STr
TA8LEIH
: , rIMs!er'
,TABLEOH TABLEOH
:longu"ur ch..!ne e"trdIte
'"
S8C:
1$00
;.oaue de stock..g"
'"
ST....
TABLEOH
d"
Y --> TABL!:lH
1. chaine "x,...i ' e
'" 144
.---------------------------------------------.
.----------___________________________________ •
145
•
m
:d"
'"
In1 ,1.. 1i,.,!on du poin'''ur JNOEXI
146 .---------------------------------------------.
•
De scrip,eur de la chaine c�ar�e .---------------------------------------------.
'" '"
,JSR
CHKCOM
:'''st" pr�sence d'une
U WNG2
'"
:longueur chain" c�..,.-�"
W
,JSR
PTRGf:T
;pl�ce adeu"e de 1 '�l�me"t
69 CHAINE28
'"
:adre"se de " tockag"
'"
70 CHAINE2H
'"
tde
"
la
chaine c�..r�..
7J 7(
•
154
.----------------
---------------______________ •
155 156
76 ENTJER1H
:partl e haute de l ' index
77 ENTIER18
'"
;parU" ba,s" de l 'inde"
" 19
.---------------------------------------------.
10
• Index de l '�H"",nt comp.l"� .---------------------------------------------.
" 83 ENTIER2H
'"
If DlT'IEFI.2B
'"
,JSR
:parti e haute d" l 'ind�"
:part1e bau·e de l ' 1nd""
wr
1500
sn
ENTIER1H
'"
'"
'"
STA
'"
",
'"
STr
'"
'"
'"
STA
'"
CLC
169
lU
170
" SDD67
: v..1ue 1. formu.!" pointé:
"
;pa,.- TXTPTR (588 e t $891
"
:et place le c�suH.'
"
;FAC
9f CHKCOM
EaU
$DE8E
en
tt"s'" présence d'un"
"irgule
ENTlER18
•
BOUCLE eXTeRNE
(FOR l . 2 1'0 N)
•••••••••••••••••••••••••••••••••••••••••••••••
172 .---------------------------------------------. 173
Répét er N8EL
TABLE2H
: TABLEH .. -- TAHLEH'l
'"
INC
tNTIERIB
;ENTIEIUB "_ ENTIERIB_I
'" 275 INTERNEI
'CO
'" '"
SNE
IN5ERTl
'"
;.1 poo. d" ch",t. d" P"""
mc
EN1'1t1U H
:ENTIEIUH "- ENTIE/UH'l
;10 cOll U"nt ]'ENTIER2B
'"
2 76
ADC
TABLEOB
;A conel..n t ]·ENTIER2B.TAHLEOB
STA
TABLEIB
;olt pour TAHLE2B
'" 1 97 .--------------------------------------------.
271
LOA
TABLUH
;A conti..n t 2·EJlTIEII.2H.r"port
no
ADe
ENT'IER1H
:A contI ..nt J'I;NTI!!R2H
Ill•
• CopJ. d. ElJ'I'lERl ....n. 1 " l'_n. poln.' POO'
'"
lllll • INDEX2 _ 2
'"
.----------------------------------------------.
'"
ADC
TA8LEOH
:A conti.ne J·ENTIER2H.TABLEOH
200
'"
STA
TABLE2H
..olt pour TABLE2H
'"
'"
202 INSERTI
LDA
E/ M
'"
._-------------------------------------------_.
J20 J21
• C.. r..ct.!r.... identIque.. •-------------.-------------------------------.
'"
•
• dotn. 1 '�l�ment .xtr. ] t . .---------------------------__________________ • 102
/CHAINE2B} . Y;A_l'�me car.
OU :INDt:XIH -.
L
, . 0 • c c 0 o
10
-
9
8
7
6
JI Connl'ctl'ur du
l
S
'1 � � . '= = � 1� ! � 1� 1 != 1� 1! � � 1= ! 1� �= 11 � � 1= , '� != .!J •
•
•
•
•
•
ll'cteur l'xtl'rnl' (facl' arri@r'l' du l lc)
Pris. mÔI.
"
0819
à sertir
Matériel Connecteur mâle rype DB19 à sertir, Connecteur mâle Berg 2XIO à sertir, Câble plat 19 fils.
lC=ti!::!;;J====;;I
'ooooo0000000.0000.00000o••••••••••••••••••••••••••••
:CDNUcl.ul' 0819
(v'l's l. /Ic)
............
11 2 12 3 13
"
•
:
: +- 4 : +- 5 ....
: ....
-t :
:5
"' : '"
5
"' :
6
7
"' :
9
10
...
+-
1'
'''
+-
13
+-
+-
9
à Sl'rtir
-t
"
... 1 6
...
: ....
...
" "_ ,_
_ _
)_
12
10
19
17
15
" 11
,
•
•
•
•
•
•
• •
•
•
,
•
7
S
3
• •
• •
• •
2
Connl'ctl'ur
•
1
du drivl'
•
Vrs Il' disk][
c;; .::
du Ile
'"
18
�:
_______
1 , 2, 3, 4 : '
..J
____
PRINIll8l8111@"ff
-
Signal
D.scription
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
S
N.C.
.•••••••••••••••••••••••••••••
Broch•
"
N.D,L.R. : Est·i1 nécessaire de préciser ici que ce type d'inter· vention sur votre matériel exclut tout recours à la garantie du constructeur en cas de pro· blème ? Contrôler avec aUen· tion votre montage avec les tableaux de connexion des fils évitera les soucis. . .
.
GND -12V
6
+SV (Vcc)
7,8
+12V
9
EXT!NT*
10
'w'RPROT
1 1 -14
SEEKPHO*
lS
'w'RREQ
(*
=
-
: -
MasSE' signal l't aliml'ntation
!ntl'rruption l'xtl'rne (non utilisél') ÉcritUf'"l' protégél' (l'ntré.) Phas. 0 à
3 du motl'ur du bras
Demand. d'écr1tuf'"l' non connecté
16
Séll'ction du disqul' 2 ou 1
17
DR2* (DR1)
18
RDD AT A
Ll'ctur. d.s données Centré.)
19
'w'RDATA
Écritur. du donnéu (sodit»
actif nivl'au bas)
PRINT
... INVERSE
Le /aser a encore frappé !
L a ligne 1 0 1 0 du programme 'Analyse Multicritère' de Pom's 24 présentait
en effet tous /es symptômes d'une grande confusion. fi fallait lire ;
Pom's n' 25
•
r·····················································
1 5 .1 7
'"
__
"
.
13.19
...
18
16
•
10
14
.... 1 7
CI< ::1
18
8
N.C.
.... 15
,
: > Q 0 -
I l .1 2
:� : � ��_:; :� =
(r
=O
Vous n'avez pas la disquette
saisir et compiler les listings de façon classique.
THEN DlRECTION : =DIRECTION MOD 360 ELSE DIRECTION : -- ( {-DIRECTION)
MOD 360)
TURNTO (DIRECTION) ;MOVE (BASE) ; END; PROCEDURE VKOCH (BASE, DIRECTION, NIVEAU: INTEGER) ,. BEGIN IF NIVEAU=l THEN CDTE (8ASE, DlRECTION) ELSE BEGIN VKOCH (SASE DIV 3, DIRECTION, NlVEAU-1 ) ; VKOCH (BASE DIV 3, DIRECTION+ANGLE, NIVEAU-I) ;
La méthode : d'accompagnement : il vous faut
* suite . . .
VKOCH(8A$E DIV J,DIRECTION-ANGLE, NIVEAU-I) .. VKGCH (BASE DIV 3, DIRECTION,NlVEAU-l ) ; END; END, BEGIN REPEAT
Vous avez la disquette d'accompagnement :
fi faut initialiser une disquette Pascal à raide du 'FORMA TER', puis il faut lancer le programme 'BASIC·PASCAL' de la
disquette Pom's. If suffit de transférer les fichiers TEXT en suivant les indications données
TEXTMODE; WRITE ( ' NIVEAU ?
' ) ; READLN (N) ,
IF N>O THEN ANGLE:=60 ELSE BEGIN ANGLE :=-60,-N: ""-N,-END,DEBUT,FOR I : -O TV 2 DO VKOCH (BASE1, -120*I, N ) , READ {CAR) ; UNTIL CAR.. 'F ' ; END.
par ledit programme.
If convient alors de compiler er d'exécuter comme habituellement.
64
Porn's n' 25
Programme FLOCTRAC. TEXT PROGRAM FLOCTRAC,. USES TRANSCEND: CONST BASEl -480; PI-3 . 1 4159265; VAR N, 1: INTEGER; CAR: CHAR, LST: INTERACTlVE:
PROCEDURE COTE (BASE .- INTEGER; DIRECTION: REAL)
.
BEGIN
WRITELN (LST, ' J ' , (BASE*CQS(DIRECTION) ) : 6 : 3 , "
' , BASE*SIN (DIRECTIQN) : 6 : 3 ) ;
(trace d ' un segment en coordonnees relatives) END; PROCEDURE VKOCH (BASE : INTEGER; DIRECTION: REAL; NIVEAU: INTEGER) ; BEGIN IF NIVEAU-l
THEN COTE(BASE,DIRECTION)
ELSE BEGIN VKQCH(BASE DIV 3, DIRECTIQN, NlVEAU-l ) ; VKOCH (BASE DIV 3,DIRECTION+PI/3, NIVEAU-l ) ,. VKOCH (BASE DIV 3, DIRECTION-PI/J, NIVEAU-I ) ,. VKGCH (BASE DIV 3, DIRECTION, NIVEAU-I ) ; END;
BEGIN REWRITE (LST, 'PRINTER : · } ,. WRITELN (LST,CHR (9) , ' 7B ' ) ; WRITELN (LST, CHR (18) ) ,. WRITE ( ' NIVEAU ?
(interfa ce SSC reglee pour 600 bauds}
(mise en mode graphique)
' ) ;READLN (N) ;
DOS, ProDOS, Pascal ?
WHILE NO DO BEGIN WRITELN(LST, 'MO, ' , -BASEl DIV 3 ) ;
(deplacement absolu}
Les disquettes qui accompagnent racultativement Pom's sont en FOR I : - O TO 2 DO VKOCH (BASEl , -2*PI/3* I , N ) ; registrées sous rormat DOS, car, WRITELN(LST, 'MO, ' , -BASE1 ) ; en effet, il nous faut penser aux WRITELN (LST, ' l ' } ,' nombreuses machines qui ne WRITE ( 'NIVEAU ? ' ) ;READLN(N) ; peuvent utiliser ProDOS ou Pas END,' cal. WRITELN (LST, CHR (1 7) ) ; (retour au mode alphanumerique) CLOSE (LST) ,. Certains programmes, par essen ce, ne sont pas utilisables sous END . ProDOS (Patches au DOS 3.3 par exemple) et donc ne doivent être ..J convertis. D'autres ne présenteraient aucun intérêt à être utilisés sous ProODS (le jeu SNAKE de Pom's 24, par exemple). Enfin les programmes qui peuvent ou dOÎ\'ent fonctionner sous ProODS, seront transférés sur une disquette Pro· DOS. Pour cela, deux solutions se présentent : • utiliser le programme CDNVERT qui est sur l'une des disquettes système j • utiliser la disquette 'Utilitaires Ile', dans l'option COPIER qui permet de copier des fichiers depuis des disquettes DOS sur des disquettes préalablement formatées ProODS. WRITELN(LST,
'l');
(fixation de l ' origine)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Les fichiers Pascal se trouvent sur la disquette Pom's également en format DOS. Ils seront transférés sur votre dis quette Pascal fraîchement formatée, grâce au programme Basic·Pascal de la disquette Pom's.
Porn's n' 25
65
-
Visions d'Hyperespace Aujourd'hui, les espaces à grand nombre de dimensions sont rencontrés partout : de la psychologie à la physique théorique, de la science-fiction à l'informatique. Pourtant, depuis le raz-de-marée de vulgarisation scientifique lié au centenaire de la naissance d'Albert Einstein en 1979, il semble que le concept d'hyper-espace reste lié, dans l'esprit de chacun, à celle du temps.
tesseract venait à passer devant nous, nous le percevrions comme deux cubes, dont l'un est dans une direction perpendiculaire au premier, reliés entre eux par 8 arêtes.
1 x 1 x 1 - 1 m4 bien SÛr !
Notre programme, écrit en Applesoft, utilise la particularité du tesseract de disposer d'un chemin hamiltonien. Cela signifie qu'il est possible de parcourir toutes ses arêtes sans avoir à sauter d'un sommet à un autre.
Le programme TESSERACT va
faire évoluer un objet quadri-dimensionnel sur votre écran, un cube à quatre dimensions : ses arêtes ont toutes la même longueur, et tous ses angles sont droits mais cet objet comporte 16 sommets, 32 arêtes, 24 faces planes et 8 hyperfaces (à 3 dimensions). Petite question : quel est le volume d'un tesseract d'un mètre de côté ?
L'algorithme retenu évite de recalculer la position du tesseract après chaque mouvement (car les calculs seraient trop longs), et fournit un affichage le plus aéré possible : 1 6 des 32 arêtes sont toujours verticales ou horizontales. On peut faire varier la vitesse de défilement par le paddle 0; l'affichage est gelé par Ctrl-S et Reset permet de sortir du programme.
Pour représenter notre tesseract, il n'est pas inutile d'observer l'analogie avec un cube vu par un être à deux dimensions. Si un
Programme 'Tesseract' 10
HGR2
:
HGR
:
POKE
. 01 :
- 1 6302, O : F .. 1 :
PRUIT
CER$
(17) :
G
50 Ml
- 1 :X2 .. 1 99 : X3 .. 80:X6 " l 8 6 : Yl
30 Cl
- . 5 :C2 -
-
. 5 : D2 -
. 5 :D3 "
-
. 5 :C3 .. -
-
- 1 : Y2
.3
. 5 : C6 "
. 5 :D1
"
. 5 : D 6 " . 5 : DK "
01 35
66
REM
60
* * * MISE A JOUR DES V ARIABLES LIEES
70
INT
- X3 + L1 : L2 -
Yl : Y4
. 5) :Y5 Y1 )
IF. K >
IF K