Magazine Pom's : la collection

Calcul l 'adresse d'une lIgne. 148. 149 CALCADR. TXA. ISO. LSR. 151. LSR. 152. 1". 154. 155 ...... SA945 .Trap. _OeleteM&rIu. SA93S .Trap. _DisposMenu. $A932 .Trap. _OisposWindow ...... manual, annexe A.2.1 page 1 18. •. P-FORMAT ...
10MB taille 4 téléchargements 261 vues
;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



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



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