Text content (OCR)
Wr Ue
Wa
' @ Décrypteur
La revue francophone des utilisateurs de ’Apple
_ @ instruction “Library” du MSBasic
~ @ Un éditeur graphique : Edigraph
@ Conversion Pascal vers DOS
-@ Des disquettes 4 36 pistes
@ Défilement graphique
@ RWTS désassemblée
@ Du courrier en WPL
@ Mac : un accessoire
@ Calcul de 1
NUMERO 21 . PRIX 40 F
ISSN: 0294-6068
actualité
les bancs d’essai
les guides d’achat
le dossier
les programmes
ORDINATEUR
INDIVIDUEL
2 RC ree
LA ENCE EN MICRO-INFORMATIQUE
A LORDINATEUR INDIVIDUEL, les rédacteurs, les conseillers techniques, les correspondants &
l'étranger, I'équipe entiére se mobilise pour vous fournir tous les mois une information
compléte et de qualité. Le monde de la micro bouge: L’0.1. teste pour vous les micros et
logiciels qui apparaissent sur le marché. Il vous dit lesquels choisir et pourquoi. Vous étes déja
équipé et vous souhaitez tirer le maximum de votre machine ? Les spécialistes de L’0.1. vous livrent
conseils, programmes inédits et astuces d'utilisation. Lisez chaque mois L‘ORDINATEUR INDIVIDUEL.
4
S numero
Pom'
21 - Novembre-Décembre 1985
Conversion
Pascal/Dos
Jean-Claude Lengrand
Une corbeille dans
la @
ae
eS
Jean-Luc Bazanegue
Fenétres de saisie
Page 30
Library : un ‘Motif’
cages =| Gérard Michel
Edigraph gett
Roland Je x Fi
a — La 36éme piste
alk b Toi
Page 9 I+ He}
Courrier automatisé Page 51
en WPL =
_ ; Un compatible
Véronique Schmitt : . 9
in compatible :
Yvan Koenig
Page 18 Page 53
RWTS désassemblée Défilement graphique
Patrice Neveu Patrick Quettier
Page 21 I+) Me}
=
Décrypteur Page 59
fi 7 Paul Fransceschi Calcul de 1
ba th
= Michel Dominique
I+ 7
a eet
n Page 65
de satisfaction Tediorial 5
& Marianne Sutz Cou te (acsisre
Page 40 pee ey 2
Les annonceurs :
A.C.L : page 75. Apple : pages 38 et 39. LE.F. : page 25. Mnémodyne : page 4.
Ordinateur Individuel : page 2. PSI : page 76. Télécompo : page 52.
| _Ealtions MEV - 64/70 rue des Chantlers -
78000 Versailles. Directeur de Ia publication : Hervé Thiriez
]
Pom's n° 21
‘fource de Waterpeste. 68k
4502 symbolique.
PASCAL 1/
dsactese
Uh disquette da livre
* Chaque reeucil.
fichiers, un #xpose
Tonctionerent Systeme. Com
‘al
Un disquette du livre,
Diequette utilitaires {(nstallation,
programmes, utilisation de la souris, conversions
Le disquotie d'utilitaires:
BASIC APPLESOFT DOS3.3 et PRODOS
Poul MERRY
sitérence
‘cientifiques,
Alphanetque, _vstinition, otis
MAGICALC TUTORIAL
Christian DUBOS
jas pour apprendre §. utter AONCA\
panels Sonmentee: deve, plauming
ls Uisquette du livresse-se+e
INITIATION PASCAL LE MAGAZINE PASCALISSIME
John CoLtiOet
Stage ite formutinn aver te spdcuaite ~ Le _agerine consseré 95 “amgags 255cAL-
PASCAL. Methorle fae 4 pas, ayes travaux pratiqor a
Sur TW FC, Aphis HE, Mme Kitsir. Conephtinan
données simples, structares de contraie,
ct fonetlons, données structures,
Prochaines. seasons 4 Mars 1) Wal, tor
Tunlet, 5 Aout, 13 Septembre, 4 Novembre
2 4a00 FT
GESTION DE FICHIERS PASCAL LIBRAIRIE
Plus de 200 lives wer PABCAR- Gene —-
Pr a=
done cours
formation aniné par un virtuose dex
Tenens: Teaveun, pratiqoes sor LiL MC. Apple 11.
Ma thine
isin pomirilée, gestion sie mangues. strictures Ms 9
Ge tri (nash code, B arnnes) ct sequentiel indexes MisScir'nuajen ROLE oe
Programnes. importants Ceompilation separce,
: stilitanes PASCAL.
Communications. Compatihaita et transferts entre
Werenns PASCAL. GUIDEX
rrocnatnes sewslons! 9
tT tuln. 7 Ortabre, Y Dicembre
4 jours.
DISQUETTES DE
PROGRAMMES SOURCE
Textes sourosss Format Apple 2
i compiintour va de furten. Le tanga
8
eriers M Svrite
fartes de référence em qouvet, Cleememtie Zhe
portée ae 1 main.
AMER: GUIDEX. — RRRECRE PASCAL Semmes
Le compllateur/ Intoeprite PASCAL
CCompiistour tnterpate en mmemolte, sans 2¢
ooad PASCAL € (PASCAL Bing tee CLUB DES UTILISATEURS PASCAL
Flats. plve Ia concurrency)erseesesss 90 F TTC
SESSIONS INITIATION AVEC THANARE
a
e Xnvwahes: cnarhturey of Somes
= F SESSIONS PRESENTATIONS: tass == © eae. =
= F nist
7 pascatieaiul ¥ erates," wiLinh,
= PASCALISSIME 42 € Tr araphiques. ete. 4
= Decouvres pagel f TT i
> Decouvree PASC. Soir en
PAeen ease (artertey: aa collcthement de
ues) + aE Pasvalissines
Cotisation annuelte:
Visas juuves acheter vex prodults: dinictemen
corrsipandence en enveyeni vali Ae commande:
neque a montant # PRODUIT: PRIX TTC:
sNEMODINE
73000 Parts
Sones nese Le port en Prance Métropolitaine cnt comprle. Pour lee
iis: aoehilte: -bercs: SA nore putres dat ‘jouter 20F par produit. Précieez
STITT PABCAL lor du B1COB HOUTIQUE, so le format des disquettes. commandéex-
‘OW DE PRINTEMPS ou APPLE EXPO.
DECOUVREZ PASCAL RECUEIL PASCALISSIME
SUR APPLE JI, //e, //c Hecvoll de Srosrammes of articles PASCAL
te foe es , TiSetleurs “tStyecndal lend =" bognannacien ~ Teetres
oe tal ‘ : te eéantex - Tichters araphiques.
pes Recuett 2: lapyrintne ~ copie ae fichiers = lew ruutines celles
2 parepective 49 - xeammblones
Recueil 3: systéne expert ~ gusty wire
Tialsawoe ae’ ws saucis Yattaton PROLOG. = ¢
les disquettes de chaque recuell.
Tome 2: tnbleas, onrogietrensnt
polnteurs. Unites et
Commande, lantenent au TOPIQUES PASCAL
John COLIBRE (seotenbrs #5)
Teteriptions st utilitation dew tnchasemes «
ek pes ee sperendcy 5 utliner | VISICAL
LEE Fea womoratias de
= pinsentear de
arial Turbo
Scicmee -spaeneceee ~ Pemepeste Visieale —
ongeeut eariahie 3
Implémentation: ‘plan mémaine,
vate) Scguents at Unites. 2 programmes
> amiques =
Gpecasng Sretes, Interpeite, et
290 TTC
8 TTC
devi; planning
éfinition, utitisation,
cnetions et sunipulations
ce sontréle dimprimant,
245 F TTC
oF TEE
OUTILS 8088 / IBM PC
ASSEMBLEUR SYMHOLIQUE
Edition de texte, assemblage =t exécution on
Sénolee. Peut générer an fichier «COM ou du
te nhne Turbo. rre
ORSASSEMBLKUR SY}
fiohler de parenétres des zones de données.
Vulldation dae labels, Re Hétinition des labels.
Sortie deran ou fichier t@ askemblabie 490 F TTC
DESASREMBLAGE Dk TURWO PASCAL
Versin Baw 3 néceaalte Turbo.com,
LES LANGAGES EVOLUES
= PASCAL UCSD Environnement ae aévelonpement
cision IWADW PC sous ME_DOS: S080 F TTC
Apple (utilise fe) 1500 F TTC
oe TIC
{le MAG LIE de Winton intgrat
Peeqitetie Apple 17 128K, et mangel.. 5%
PROLOG. 1.3
de développement PROLOG complet. Destine
lenent & mattriser rapidement 1e langage e
ndee se0 dotiainen dutiliention.
ie régles pleine gnge. Interprétation en
centrale. Possibilits de trade hiérarchique
ceuvte @ winporte quel moaent. Explication
S Meguce de Tefficectt® de ta solution.
Mirpia. Varsian APPLE 2 vt TBM PC
Ee systtme PROLOG 1.33. 49
PRODUITS PASCAL APPLE 2
-MNENO DUMP: affichage tu contenu dune
Sayers ou Gun fichier, altichage au content
fapide dy contenu do fichiers
Sexte, Facitte Is techerohe de texteseey 45 F TTC
<FIF-EDITOR- “Miteur UCSD amihore’ (isblo des
2 a ligne 2 ligne, g20ételieation de
Ftc
NOM ot ANRRSSE:
A
Pom's n° 21
Editorial
La presse nous inonde depuis deux mois d'articles sur les péripéties d'Apple, avec le départ de Jobs
qui a suivi celui de Wozniak. Les financiers ne semblent pas se fier aux nombreux bruits alarmistes :
Vaction d’Apple flotte aujourd'hui (fin octobre) aux environs de $18, soit 10% de mieux que la
moyenne du cours ces derniers mois.
Cela tient aussi probablement au succés obtenu par Apple contre Digital Research au sujet du systéme
GEM pour IBM; ce systéme imitait par trop la présentation et les graphismes déja devenus classiques
grace au Macintosh : Digital Research est obligé de retirer GEM du marché le 15 novembre 85, doit
verser de l'argent a Apple (“undisclosed amount’ ) et soumentre ses nouvelles versions a Apple avant de
les sortir sur le marché. Voila qui ralentira la sortie effective de l'Atari 520 ST qui, avec l’Amiga de
Commodore, est un des deux concurrents du Macintosh; en effet, le 520 ST devait lui aussi utiliser le
systéme GEM.
N‘oublions pas non plus deux faits importants : tout d’'abord, la gamme Apple s‘enrichit de jour en
jour, qu'il s‘agisse de la ligne Apple II ou de la ligne Macintosh; et enfin, quel est le constructeur de
micros qui ne connait pas de probléme ces temps-ci ? Méme IBM France a été obligé de revoir ses
prévisions de vente d'IBM PC pour l'année 1985, en baisse de 100 000 & 60 000 unités ! Nous
gardons donc notre moral et continuons @ vous inonder d’articles et de programmes, dont nous nous
efforcons de maintenir le niveau de qualité au plus haut.
Voici pour ce numéro un programme chargé : un décrypteur de Paul Franceschi bien pratique pour
ne pas rester bloquer dans les jeux d'aventures. Sans arriver aux 11 millions de décimales déja
connues, vous calculerez m avec Michel Dominique.
Cété graphique, deux contributions : Patrick Quettier et Roland Jost, pour réver en HGR...
Etudes théoriques : Yvan Koenig s‘est penché sur les ROMs de Ia ligne Apple et Patrice Neveu a
désassemblé RWTS. °
Théorique aussi et d'une utilisation immédiate les 36 pistes de B. Toméno. Plus rare, une
contribution en WPL de Véronique Schmitt.
Enfin, pour convertir vos fichiers Pascal en des fichiers DOS, “Lirpastext” de Jean-Claude
Lengrand.
Nouvelles progressions sur le Macintosh : Jean-Luc Bazanegue a mis au point un accessoire qui
devient vite indispensable : enfin pouvoir effacer des fichiers depuis une application... Marianne
Sutz, également une habituée de nos colonnes, vous présente une instruction méconnue du MSBasic
2.0 : “Library” . Cété pédagogie, nous retrouvons Gérard Michel avec le fonctionnement de fenétres
de saisie.
Bien sir vous retrouverez nos rubriques habituelles avec Alexandre Duback, Jean-Michel
Gourévitch, Alexandre Ayrane et Olivier Herz.
Hervé Thiriez
Photo de couverture : nouvelle imprimante Apple ImageWriter ][
Ont collaboré & ce numéro : Alexandre Avrane, Jean-Luc Bazanegue, Michel Dominique, Alexandre Duback, Paul
Franceschi, Jean-Michel Gourévitch, Olivier Herz, Roland Jost, Yvan Koenig, Jean-Claude Lengrand, Gérard
Michel, Patrice Neveu, Patrick Quettier, Véronique Schmitt, Marianne Sutz, B. Toméno.
Directeur de la publication, rédacteur en chef : Hervé Thiriez.
Rédacteurs : Alexandre Avrane, Olivier Herz.
Siége social : Editions MEV - 49, rue Lamartine - 78000 Versailles. Tél. : (1) 39.51.24.43.
Publicité : Editions MEV.
Diffusion : N.M.P.P.
Impression : Rosay - 47, avenue de Paris - 94300 Vincennes. Tél. : (1) 43.28.18.63.
Pom's n° 21
Nn
Conversion Pascq S
Jean-Claude Lengrand
ransformer des fichiers Pascal en des
fichiers DOS, tel est l'objet du
programme présenté ici : Lirpasrext. Les
fichiers PASCAL en question peuvent
étre des FILE OF CHAR (TEXT au sens du
langage PASCAL) de deux types différents (selon
qu'ils ont ou non été créés par I'éditeur,
c'est-a-dire qu'ils ont ou non le suffixe .TEXT) ou
des FILE OF STRING. Les premiers sont
convertis en fichiers DOS 3.3 4 accés séquentiel,
les seconds en fichiers DOS 3.3 a accés direct. Au
passage, certaines conversions de caractéres
peuvent étre effectuées (remplacement des virgules
par des blancs, par exemple). Pour utiliser
Lirpastext, il faut connaitre le numéro de bloc de
début et la longueur du fichier sur la disquette
PASCAL, ce que l'on voit immédiatement sur le
catalogue en Pascal. Les messages du programme
Basic en constituent le mode d'emploi. a
Programme LIRPASTEXT
10 REM LIRPASTEXT
20 REM RECOPIE UN "FILE OF CHAR" PASCAL
30 REM OU UN FILE OF STRING PASCAT
40 REM SUR UN FICHIER SEQUENTIEL BASIC (
FILE OF CHAR) a
50 REM OU A ACCES DIRECT BASIC (FILE OF
STRING)
60 REM LENGRAND,
70 REM
80 HIMEM: 38090
90 AD = 38091
100 DQ$ = CHRS (4):BIS =
= CHR$ (16)
DIM $(15),S1(2)
FOR T = 0 TO 15: READ S(I): NEXT I
REM LISTE DES SECTEURS BASIC CORRES
PONDANT
REM AUX SECTEURS PASCAL 0,1,2,...
DATA 0,14,13,12,11,10, 9, &, 7; 6,5, 4,3
72,41,15
160 BU = AD + 21: REM AD
170 PG = AD + 2739: REM ADE
AMME DE LECTURE
ER = AD + 13: REM 2D.D0 CODE
TR = AD + 4: REM AD. DU MBESOS
ISTE
LE 21/12/82
CHR$ (7) :DL$
110
120
130
140
150
180
190
200 sC = AD + 5: REM AD. DU NUMERO DE S
ECTEUR
210 OD = AD + 16: REM AD. DU DERNIER DR
IVE UTILISE
220 ND = AD + 2: REM AD.DU FUTUR DRIVE
230 S = 0: DIM S1%(10),S2%(10): REM POU
R LA SUBSTITUTION DE CARACTERES
240 TEXT : HOME : PRINT "TRANSFERT D'UN
FICHIER DE CHARACTERES"
250 PRINT "PASCAL SUR UNE DISQUETTE BAST
c”: PRINT
260 PRINT "METTEZ LA DISQUETTE CONTENANT
USERWTS"
270 PRINT "DANS LE DRIVE 1 ET FAITES <RE
TURN>"
280 GET WS: PRINT : PRINT
290 PRINT DQ$;"BLOAD USERWTS.CODE,A"; AD;
"DI"
300 PRINT "METTEZ LA DISQUETTE PASCAL A
LIRE"
310 PRINT "DANS LE DRIVE 2 ET FAITES <RE
TURN>"
320 GET W$: PRINT : PRINT
330 PRINT "METTEZ LA DISQUETTE BASIC DES
TINATAIRE"
340 PRINT "DANS LE DRIVE 1 ET FAITES <RE
TURN>"
350 GET WS: PRINT : PRINT
360 HTAB 1: VTAB 4: CALL - 958
370 INPUT "PREMIER BLOC A LIRE=";PB
380 IF PB < 0 OR PB > 279 THEN PRINT BI
$: GOTO 370
390 INPUT "NOMBRE DE BLOCS A LIRE=";NB
400 IF NB < 0 OR NR > 279 THEN PRINT BI
$: GOTO 390
410 INPUT "EST-CE UN FILE OF STRING (0/N
) 2"3S$
420 IF LEFT$ (S$,1) = "N" THEN S$ = "N"
: PRINT "CE DOIT ETRE UN FILE OF CHA
R": GOTO 480
430 IF LEFTS (S$,1) < > “O" THEN PRIN
T BI$: GOTO 410
440 S$ = "O":TS = "N":Nt = 1
450 INPUT "LONGUEUR DECLAREE POUR LES CH
AINES ? ";LM
460 GOTO 570: REM CE NE PEUT PAS ETRE U
TEXT
Ce WF FICHIER .TEXT (0/N)
= "O~ THEN TS "OF
= "N" THEN TS = "N"
Pom's n° 21
510
520
530
540
550
560
570
580
590
600
610
620
630
640
650
660
670
680
690
700
710
720
730
735
740
750
760
770
780
790
800
810
820
830
840
+ GOTO 520
PRINT BIS: GOTO 480
PRINT : PRINT "VOULEZ-VoUS
yen
PRINT "1 RECOPIER TOUS LES CARACTERF
S MEME NULS™
PRINT "2 VOUS ARRETER AU PREMIER CAR
ACTERE NUL"
PRINT : PRINT "NB:CARACTERE NUL ($00
)= FIN DE FICHIER"
INPUT "";N%: IF Né < > 1 AND N% <
> 2 THEN PRINT BI$;: GOTO 560
HOME : PRINT "A L'OCCASION DU TRANSF
ERT, vous" P
PRINT "POUVEZ REMPLACER CERTAINS CAR
ACTERES"
PRINT "PAR D'AUTRES (MAXI:10 SUBSTIT
UTIONS)"
: PRINT "NBRE DE SUBSTITUTIONS DEMAN
DEES ?"
PRINT "(PAR DEFAUT,
TUTIONS"
PRINT "PRECEDENTES)"
PRINT : INPUT "INDIQUEZ LE NOMBRE OU
<RETURN>"; WS
IF W$ = "" GOTO 750
W- VAL (WS): IF W <0 ORW> 10 TH
EN PRINT BI$: GOTO 630
S = W: IF S = 0 GOTO 810
FOR I= 1108
HOME : PRINT "POUR LE CARACTERE ";T;
INPUT "CODE ASCII DECIMAL INITIAL=";
$18 (I)
PRINT "CODE ASCII DECIMAL FINAL :"
INPUT "(OU -1 POUR ELIMINER LE CARAC
TERE) ";S2%(T)
IF S1%(I) < 0 OR S1%(I) > 127 THEN
PRINT BI$: GOTO 680
(1 ou 2
LES ";S;" SUBSTI
IF $2%(I) < - 1 OR $2%(I) > 127 THE
N PRINT BI$: GOTO 680
IF (S28(I) = - 1) AND (S$ = "0O") TH
EN PRINT BI$: GOTO 680
NEXT I
HOME : PRINT “RAPPEL DES SUBSTITUTIO
NS:": PRINT
IF S = 0 THEN PRINT "AUCUNE SUBSTIT
UTION": PRINT : GOTO 810
FORI=1705
PRINT "CHR$("7S1%(I);")="; CHRS (S1%
(1))7
PRINT " -> CHR$(";S2%(I);"
(S2% (I))
NEXT I: PRINT
PRINT "NOM DU FICHIER BASIC A CREER:
INPUT " “;FIS
IF S$ = "N" GOTO 860
PRINT "CE FICHIER DEVRA ETRE EXPLOIT
7 CHRS
E AVEC UN"
250 PRINT "RECORD LENGTH=";1M + 2;" (ACC
ES DIRECT)”
860 PRINT : PRINT "<ESC> POUR CORRIGER U
NE ERREUR"
870 PRINT "<RETURN> POUR LANCER LA COPIE
880 GET WS: TF WS < > CHRS (27) AND WS
< > CHR$ (13) THEN PRINT BI$: GO
TO 880
890 IF WS = CHRS$ (27) THEN HOME : GOTO
360
900 IF T$ = "O" THEN PB = PB + 2:NB = NB
- 2: REM SUPPRIME LES 2 PREMIERS B
Locs
910 POKE AD + 12,1: REM FONCTION LECTUR
E
920 LA = 13: REM ASCII DU DERNIER CARAC
TERE LU
930 NS = 0: REM COMPTAGE DES CARACTERES
POUR LES FILE OF STRING
940 HOME : PRINT "VOUS ALLEZ VOIR DEFILE
R CE QUI"
950 PRINT "S'ENREGISTRERA SUR VOTRE DISQ
UETTE BASIC": PRINT
960 PRINT : PRINT DQ$;"MON oO”
970 PRINT : PRINT DQ$;"OPEN ";FI$;",D1"
980 PRINT DQ$;"WRITE ";FI$
990 FOR I = 1 TO NB
1000 BL = PB + I - 1: REM NUMERO DE BL
oc
1010 PI = INT (BL / 8): REM NUMERO DE
PISTE
1020 $1(1) = 2 * (BL - 8 * PI):S1(2) = S$
1(1) + 1: REM NUMERO DES SECTEURS
PASCAL
1030 POKE TR,PI: REM AFFICHE LA PISTE
1040 FOR J = 1 TO 2: REM POUR LES 2 PAK
TIES DU BLOC
1050 sT = $(S1(J))
1060 POKE SC,ST: REM AFFICHE LE SECTEUR
1070 POKE OD,1: REM AFFICHE LE DERNIER
DRIVE
1080 POKE ND,2: REM AFFICHE LE DRIVE A
UTILISER
1090 CALL PG: REM APPELLE USERWTS
1100 IF PEEK (ER) = 0 GOTO 1140
1110 PRINT DQ$;"CLOSE ";FI$
1120 PRINT "ERREUR DE LECTURE NUMERO ";
PEEK (ER)
1130 GOTO 1410
1140 FOR K = 0 TO 255
1150 IF ( PEEK (BU + K) < > 16) OR (TS
= "N") OR (LA < > 13) OR (S$ = "0"
) Goro 1190
1160 NI = PEEK (BU +K +1) - 32
1170 IF NI > 0 THEN FOR II = 1 TO NI: P
RINT " ";: NEXT II
1180 K=K+2
Pom's n° 21
1190 LA = PEEK (BU + K):LB = LA 1340 NEXT K
1200 IF LA = 0 AND N% = 2 THEN K = 255:d 1350 NEXT J
= 2:I = NB: GOTO 1340 1360 NEXT I
1210 IF S = 0 OR (S$ = "0" AND (NS = 00 1370 PRINT
R NS > LS)) GOTO 1260 1380 PRINT DQ$;"CLOSE ";FI$
1220 FOR L=1T0S5 1390 PRINT DQ$;"NOMON O"
1230 IF LA-< > S1$(L) GOTO 1250 1400 PRINT : PRINT : PRINT BIS$;BIS;BI$;"
1240 LB = S2%(L):L =S C'EST FINI...”
1250 NEXT L 1410 PRINT : PRINT "<RETURN> POUR COPIER
1260 IF S$ = "0" GOTO 1290 UN AUTRE FICHIER"
1270 IF LB > - 1 THEN PRINT CHR$ (LB) 1420 PRINT "OU METTEZ LA DISQUETTE UTILI
z TAIRE”
1280 GOTO 1340 1430 PRINT " DANS LE DRIVE 1 ET FAITES
1290 IF NS = 0 THEN LS = LB: GOTO 1310: <ESC>"
REM LONGUEUR EFFECTIVE DE LA CHAIN 1440 PRINT " POUR REVENIR AU MENU GENE
E RAL"
1300 IF NS < = LS THEN PRINT CHR$ (LB 1450 PRINT "OU UNE AUTRE TOUCHE POUR ARR
a ETER"
1310 IF NS = LS THEN PRINT : GOTO 1320: 1460 GET WS: PRINT
REM ENVOI D'UN RETURN 1470 IF W$ = CHR$ (13) THEN HOME : GOT
1315 IF NS > LS THEN PRINT CHR$ (0); Oo 300
1320 NS = NS +1 1480 IF WS = CHRS (27) THEN PRINT DQ$;
1330 IF NS > LM + 1 THEN NS = 0: REM D "RUN MENU, D1”
EBUT D'UNE NOUVELLE CHAINE 1490 END
WwW 30 JSR $0309 ;APPELLE RWTS
Source USER TS.ASS 31 IDA IBSLOT ;MAJ DERNIER SLO
(Assembleur LISA 1.5) 2 STA IOBPSN ;ET DERNIER DRIVE
3 IDA IBDRVN
1 ORG 138091 34 STA IOBPDN
2 oBs $1000 35 BCS NOTOK
3 :MODE D‘EMPLOI: 36 WDA #!0 7MBT 0 SI OK
4 ;FAIRE LES MODIFICATIONS NECESSAIRES A 37 STA IBSTAT
LA TABLE TOR: 38 NOTOK RTS
ae NUM. DE PISTE ET DE SECTEUR 39 BRK
6 + CODE DE L'OPFRATION A EFFECTUER 40 PAD
7 BY LANCER L‘'EXECUTION A L'ADRESSE PGM. 2 DOM "RBSAVE USERWTS.CODE,
a s A$1000, L$135"
9 10B HEX 1 7 IMPOSE 42 END
10 IBSLOT HEX 60 216*SIOT 6
11 IBDRVN Hex O01 ;DRIVE 1
12 IBVOL HEX 00 ;NUMERO DE VOLUME.
13° IBTRK HEX 00 ;NUMEKO DE PISTE Z .
14 IBSECT HEX 00 ¢NUMERO DE SECTEUR Récapitulation USERWTS.CODE
15 IBDCTP ADR IOB+tl/ ;AURESSE DE LA DCT 1000- 01 60 01 OU UU 00 DE 94 ED 94 00 00 00 00 90 6
16 IBBUFF ADR I0B+21 1010- 01 00 01 EF D8 00 00 00 00 00 00 00 00 00 v0 oo
17 ADR $0000 ;INUTILISE 1020- 08 10 00 00 00 00 00 NA NO 00 00 00 00 00 00 08
1030- 00 00 00 00 00 00 00 00 00 00 08 00 00 00 00 00
ae Eiteue Tee 00 POOR UNSER 1040- 00 00 00 00 vu vz 00 UD 00 00 08 00 00 10 00 19
19 IBSTAT HEX 00 #CODE ERREUR 1050- 00 00 00 00 00 00 88 80 00 00 00 80 00 00 00 80
20. IBSMOD HEX 00 ;NUMERO DE LA 1060- 00 00 20 00 10 00 00 00 a0 8 00 00 00 00 80 80
DISQUETTE EFFECTIVE 1070- 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00
5 1080- FF FF D/ FF Ft fF OF FF FF FF FF OFF FF OFF OFF FE
a ee a 2 ee 1090- FF EF FF FF FF DF EF FF FF FF OF FF EF FF FF FP
22 IOBPDN HEX O01 ET DERNIER DRIVE 20A0- FF DF EF FF FF FF FF FF F7 FF FF FF FF FF FF FP
23° DEVTPC HEX OO01EFD ;4 BYTES IMPOSES 20B0- FF FP FP EF FF FF FF FF FF FF FF FF FF FF EF FP
24 BUFFER HEX 00 #1ER OCTET DU BUFFER 10CO- EF FF re FF OFF OFF OFF F7 FF OFF OFF OFF FE OFF OFF FP
25 Drs 255 LES 255 SUIVANTS 10D0- DF FF FF FF FF FF EF FF FF FF FF FF FF OFF OFF EP
26 BADR is 10E0- FF FF FF FF FF FF ODF FF 7F FF FF FF FF FF FF FE
id Lacie 10F0- DF FF FF FF FF PF PF FF FF FF FF FF FF OFF EF FE
27, LADR BYT = IOB 1100- 00 00 00 00 00 99 09 00 00 00 00 00 00 00 00 oF
28 PCM IDA HADR 1110- 00 00 00 00 00 94 CB AD £0 95 AC El 95 20 D9 03
29 LDY LADK 1120- AD CC 94 8D DA 94 AN CD 94 BD DB 94 BO 05 AS OF
1130- 8D D& 94 60 00
Pom's n° 21
Un éditeur HGR :
Roland Jost
es traitements de texte
classiques ne sont pas
prévus pour l'écriture
de textes scientifiques;
ilest 4 la rigueur possible d'écrire
des formules mathématiques avec
indices et exposants. Par contre,
on ne peut dessiner facilement
des formules chimiques ou des
schémas électroniques, ou encore
rajouter des commentaires sur des
pages graphiques .
C'est pourquoi nous avons écrit
EDIGRAPH. Nous aurions pu
utiliser HRCG de TOOLKIT ou
HAIFA (Pom's 5) ou HGRECR
(Pom's 15), mais nous avons
préféré -écrire un programme
entiérement en Basic pour mieux
faire comprendre la gestion du
graphisme Apple et permettre des
modifications aisées par l'utilisa-
teur final.
EDIGRAPH est loin d'avoir les
possibilités classiques d'un
traitement de texte, mais il permet
par contre :
+ 'écriture de textes et de formes
en page graphique;
* le passage aisé d'un type de
caractéres 4 un autre;
° l'affichage de caractéres en
mode inverse, en double
hauteur ou soulignés;
caractéres en indice obtenus
par CTRL-I ou bouton de
manette 0 (Apple J[), ou
pomme ouverte ou TAB
(Apple //e);
* caractéres en exposant obtenus
par CTRL-X ou bouton de
manette 1 (Apple ][), ou
pomme fermée (Apple //e);
sauvegarde et rappel d'une
page graphique;
* manipulation de zones écran;
EDIGRAPH permet :
1) de déplacer ou recopier
une zone écran;
2) de mettre en mode inverse
une partie de l'écran;
3) d'effacer une zone-écran;
4) de stocker une zone-écran
dans un tampon d'oi elle
pourra étre rappelée a
volonté. Le tampon pourra
étre sauvé sur disquette.
+ adaptation aisée aux besoins
propres d'un utilisateur , car
étant écrit en Basic, les
modifications logicielles sont
simples. On peut aussi
modifier les polices de
caractéres ou rajouter de
nouvelles formes.
Edigraph
964 cases (24 lignes * 40
colonnes) de 7 * 8 points
élémentaires. On pourra inscrire
un caractére dans chaque case.
Codage d'un caractére
Le caractére est dessiné dans une
matrice 8 * 8 , puis le codage est
fait ligne par ligne. Par exemple,
la lettre B sera codée comme suit
sur huit octets.
Ors
éther
—
SYHTHESE du parz-methoxy benzhydrol
¢méthode de GRIGNARD)
Ones
OCH;
cHao-)-cHo * ©)nser —
OH
d H-C-OMoBr
CH30- -¢- He
| Ca
H HCl
Affichage eon at hex
oct.1 CGOGEEEEG IE
de caractéres oct.2 G6ESSGES 22
. ' oct.3 GEE8SGGSGES 22
Gestion: di ane oct.4 GGGEEEES 15
page graphique oct.5 GOESGGES 22
La page graphique de l'Appleest 3g g§ GGEGGGEG 22
divisée en 192 lignes et 280 i acaéeted
colonnes. Les colonnes sont es ae é Godad
regroupées par 7, chaque point
correspondant 4 un des 7 bits
d'un octet, dont le 8éme bit
contient le code couleur. L'écran
HGR est divisé en 3 zones de 8
groupes de 8 lignes. Par analogie
avec la page TEXTE, la page
graphique peut donc étre
considérée comme comportant
vous remarquerez que la lettre est
inyersée.
Ecriture d'un caractére
en page HGR
Pour écrire un caractére, il faut
afficher le contenu des 8 octets
Pom's n° 21
qui servent a le définir les uns
sous les autres, 4 l'endroit voulu.
Il faut donc poker dans les
bonnes adresses de la page
mémoire.
Liadresse du sommet gauche
d'une case est obtenue par la
formule :
BA = 22 + 128 * ZV -
984 * INT ((ZV-1)/8) +
2H avec :
Z2 = 8127 pour la page 1, 16255
pour la page 2
ZN = position verticale (0 <= ZV
<= 23)
ZH = position horizontale (0 <=
ZH <= 39)
L'écriture en mémoire HGR des
huit octets du caractére se fait par
la boucle :
FOR J = 0 TO 7: POKE
BA + 1024 * J, PEEK
(2B + ZC * 8 +)
NEXT
ZB + ZC * 8 correspond a la po-
sition du caractére dans la table
chargée a l'adresse ZB.
Pour un affichage en mode
inverse, on cffectuc au préalable
un AND sur chaque octet:. Pour
cela, faire 255 - PEEK (ZB+ZC *
8+J).
Pour un affichage en double
hauteur, on affiche deux fois
verticalement le méme octet.
Les jeux de caractéres
Les caractéres utilisés par
EDIGRAPH sont semblables 4
ceux du Toolkit ou de HAIFA.
Cing polices de caractéres sont
stockées dans le fichier binaire
SET chargé a l'adresse $3000
(12288) :
$3000-$32FF : caractéres fran-
ais (avec les minuscules accen-
tuées)
$3300-$35FF : caractéres grecs
et symboles mathématiques
(racine, intégrale,...) et
chimiques (liaisons simple,
double, triple, fléches de
réaction, etc.)
$3600-$38FF : caractéres réduits
en matrice 3*5 pour les indices et
exposants
$3900-$3BFF caractéres larges
(avec minuscules accentuées)
$3C00-$3EFF caractéres itali-
ques (avec voyelles accentuées)
Une police de caractéres est
activée par la frappe de ESC,
suivi du numéro (1-5) de la
police.
Si l'on veut taper un seul
caractére des polices 2 ou 3 on
pourra utiliser :
CTRL G : caractére grec ou
graphique
CTRL I ou bouton manette 0 ou
CS: caractére en indice
CTRL X ou bouton manette 1 ou
@ : caractére en exposant.
Le traitement de
blocs
EDIGRAPH permet le traitement
de zones rectangulaires de I'écran
graphique . Ces ‘blocs’ pourront
étre déplacés, dupliqués, effacés,
inversés, sauvés sur disquette et
réincorporés & d'autres pages
graphiques.
Déplacer le curseur au coin
supérieur gauche de la zone a
traiter et taper ESC B. Le curseur
se réduit 4 un point.
a) saisie du bloc dans le
tampon ; Déplacer le curseur au
aE +4 ae
HIJKLHNOPORS
opaqrstuvuxyz
= 401
TUUMA
éue*s
onfsotTyvvwre (C1 3*m
! +e-- e023
HIUKULMNOPORSTUYHMRYZ
Doorstuuwxae a
Se = .£01234
Berman ree raCe2e
opaqrstuvuxyzeue -*H
ppersfcevexgzeosh
23456783: i<=>TaABCDEFG
Y2° Cee
Wiseo /NSUtS—. 4
CRA aN
Pay
fU HSAb =. APIZSYSEZBS: 2)
BE IKE ANDP OR ET PVURVZENF#_ obedef oat jeimn
Sabcdefahiijkimnn
U Licey /ABLAEST
eed vb phd LORARY
TORECDEFE
efghiskim
abe
$789: 5 <5?2SABCDEFG
t_‘abcdefghi Jklm
7 <=> PSPBLOEF SE
La table de formes
Pour afficher des symboles plus
complexes, EDIGRAPH utilise
aussi une table de formes
classique. Elle est chargée a
l'adresse $6000 ct comporte
provisoirement 2 formes
chimiques (benztne ect
cyclohexane) et 6 formes
délectronique (résistance, inter-
tupteur, générateur, etc.).
Une forme donnée est appelée par
ESC suivi de F (ou G) et du
numéro de la forme. F trace la
forme horizontalement (ROT =
0), G la trace verticalement (ROT
= 16),
coin inférieur droit du bloc. Taper
ESC W pour recopier le contenu
de la zone ainsi délimitée dans le
tampon. Donner un nom de
fichier pour sauver le bloc sur
disquctte ( le fichier s'appelera
BLOC .nom), sinon taper simple-
ment 4.
b) mettre une zone écran en
inverse : le curseur ayant été
amené au coin inférieur droit .
taper ESC N.
c) effacer une zone : comme
précédemment, mais taper ESC
c.
Pom's n =
d) déplacer un bloc : Taper ESC
B aprés positionnement du
curseur au coin inféricur droit.
Déplacer le curseur jusqu’a la
nouvelle position du bloc et taper
ESC D. La zone initiale sera
effacée,
¢) copier un bloc :_ comme ci-
dessus, mais taper ESC C 8 la
nouvelle position. L'ancienne
zone ne sera pas effacée. Une
autre possibilité de duplication est
de rappeler la zone tampon .
f) rappel d'un bloc : Ce
traitement est le seul a ne pas étre
activé par ESC B. Amener le
curseur 4 la position souhaitée
(correspondant au coin supérieur
gauche du bloc) et taper ESC R.
La frappe de copiera la zone
tampon, sinon donner le nom du
fichier 4 rappeler de la disquette.
Remarques :
La procédure de traitement des
blocs est lente, donc patience.
Aucun test n'est effectué pour
savoir si Ic bloc recopié pourra se
loger 4 sa nouvelle place.
Les commandes
EDIGRAPH utilise trois niveaux
d'analyse des commandes :
1: commandes par la touche
CTRL , principalement pour le
déplacement du curseur , et pour
obtenir les caractéres non
disponibles au clavier du }[+
2:commandes activées par
ESC: changement de police,
changement du mode d'affichage
(normal,double hauteur,inverse).
3: enfin les touches F et G tapées
aprés ESC, permettent d'afficher
la forme dont le numéro suit.
Les touches G et @ permettent
Tespectivement l'écriture en indice
ou en exposant.
Fonctions activées par la touche ESC
ESC 1 caractéres francais
ESC 2 __ caractéres grecs et graphiques
ESC3__ indices ou exposants
ESC 4 _ caractéres épais
ESC5 _ caractéres italiques
ESCB activation du mode BLOC’
ESCC copie d'un bloc a la nouvelle position du curseur
ESCD _ deplacement d'un bloc 4 la nouvelle position du curseur
ESCE _ effacement d'un bloc-écran
ESCN _ négatif d'un bloc
ESCF tracé d'une forme avec ROT=0. A faire suivre du numéro de
la forme
ESCG _ tracé d'une forme avec ROT=16. Faire suivre du numéro de
la forme
ESCH _ vide l'écran HGR et raméne le curseur au point supérieur
gauche
ESCI affiche les instructions.
ESCL _ chargement d'une image graphique en page 2.
ESCP hardcopy
ESCQ _ sortie du programme.
ESCS _ sauvegarde de la page graphique
ESC V___ bascule vidéo normale/inverse
ESCY _ bascule hauteur normale/double.
ESC- _bascule soulignement
ESC/ affiche le symbole 'intégrale’
Fonctions activées par la touche contréle
CTRL D affiche le catalogue de la disquette.
CTRL G le prochain caractére frappé sera pris dans la police 2 .
CTRLH_ déplacement du curseur vers la gauche. Avantageusement
templacé par =
CTRLI le prochain caractére sera placé en indice (police 3A)
CTRLJ déplacement du curseur vers le bas . (utiliser J sur le //e)
CTRL K_ déplacement du curseur vers le haut. (utiliser ff sur le //e)
CTRL S__bascule majuscule/minuscule (utile seulement sur le ][+)
CTRL X le prochain caractére sera en exposant (police 3B)
CTRL“ accent circonflexe. Aprés la frappe de CTRL “, le curseur
tecule d'une position. Puis taper la voyelle désirée
Des caractéres non disponibles sur le clavier du ][+ (€& [ Jig’)
peuvent étre obtenus 4 l'aide de Shift M, Ctrl Shift M, Ctrl N, Ctrl O,
Ctrl Z. Faites l'essai en mode minuscule et majuscule.
Structure du programme
L 200-390 sous-programmes d’écriture de caractéres en mode
graphique, placés en début du programme pour
accélérer I'exécution
L 400-530 sous-programmes de traitement des blocs
L 600-790 gestion de l'affichage
L 900-990 le mode d’écriture inverse, normal ou double hauteur
est affichée dans le coin inférieur droit de l'écran
L 1000-1900 _positionnement et affichage des formes
L3000-3100 _ passage en mode HGR2 sans effacement
L 4000-4100 _remise a zéro de certaines variables
L 5000-5200 _sauvegarde de la page graphique 2 sur disquette
L6000-6200 _ rappel d'une image graphique cn page 2
L 7000-7080 — sauvegarde d'un bloc
L 8000-8070 _lecture d'un bloc
L 9000-9100 __ traitement des erreurs DOS
L 10000-11000 analyse des touches frappées. Touches CTRL
Pom's n° 21
L 12000-14000 commandes activées par la touche ESC
L 15000-18000 appel du programme de hardcopy (a installer par
l'utilisateur)
L 18000-19000 saisic du numéro de forme
L 20000-20210 affichage des commandes
L 24000-26030 initialisation . Chargement des tables (caractéres et
formes). Pour une hardcopy, rajouter ici le chargement
du sous-programme nécessaire
ligne 30000 tedémarrage 4 chaud, sans perte des variables, par un
GOTO 30000
Occupation de la mémoire adapter a ses propres besoins. Il
$800 | EDIGRAPH souffre donc de la lenteur de ce
$2FFF HIMEM langage, particuliérement pour
$3000 police nl l'écriture en double hauteur et le
$3300 police n°2 traitement des blocs.
$3600 police n°3 Pour obtenir malgré tout une
$3900 police n°4 vitesse d'exécution acceptable,
$3C00 police n°S tous les programmes de tracé ont
$4000 page graphique été placés en téte du programme
$6000 table de formes et optimisés au maximum. Le
$7000 tampon BASIC est suffisamment rapide
$9000 fin du tampon pour permettre une vitesse
moyenne de frappe des caractéres
EDIGRAPH aintentionnellement en taille normale. En mode
été écrit en BASIC sans utiliser
de sous-programmes assembleur,
pour permettre 4 chacun de
double hauteur, l'affichage est
plus lent et pourrait bénéficier
d'un traitement en assembleur. La
lenteur d'exécution qui n'est pas
un handicap lors de la phase
d'apprentissage pourra etre
supprimée si vous disposez d'un
compilateur.
Remarques
Sur un Apple ][+ les manettes
doivent étre connectées. Sinon,
supprimer la ligne 10040.
EDIGRAPH a été développé sur
un J[+ et ses commandes
adaptées a son clavier. II utilise
les possibilités supplémentaires
du clavier du //e, mais l'utilisateur
préférera peut-étre modifier
l'attribution de certaines touches.
Pour utiliser EDIGRAPH, faire
RUN EDIGRAPH. Les fichiers
SET et FORMES4 sont chargés
par le programme.
En cas de 'plantage’, taper CTRL
RESET, puis GOTO 30000.
Liimage HGR en mémoire n'est
pas altérée. Le curseur est
repositionné dans le coin
supérieur gauche de l'écran.
Programme Edigraph
40 HIMEM: 12287
260 ZV=2
K (2X +
+ 1:BA =
V- 1:BA =
NK TO 7: POKE BA + 21(J),21% -
INT (J / 2)): NEXT :ZV = ZV
FN B1(ZH): FOR J =
PEE
FN B1(ZH): FOR J = 8 TON
100 REM *ttAdAAAAAAAAAAAARAAAAAREE J + 8: POKE BA + 21+ (J - 8),21% -
110 REM ¥ PEEK (2X + INT (J / 2)): NEXT : RE
120 REM * EDIGRAPH — V.2 * TURN : REM INVERSE ET DOUBLE HAUTEU
130 REM * . R
140 REM * R.JOST - 1985 * 270 BA = FN B1(ZH)
150 REM * > 280 CZ = PEEK (BA + ZZ)
160 REM *#taddddddd AAA AAAR RARER AEE 290 ZA = 12799 + 28 * (FL < > 0): POKE
170 GOSUB 24000: GOSUB 20010: GOSUB 3020 BA + 22, PEEK (ZA): RETURN : REM AFF
:ZE = 49: GOSUB 910: GOTO 10000: END ICHAGE DU CURSEUR
200 300 POKE BA + 22,CZ: RETURN : REM EFFAC
210 REM SOUS-PROGRAMMES DE TRACE DE LET EMENT DU CURSFUR
TRES 400 REM TRAITEMENT DES BLOCS
220 410 DX = NX - X:DY = NY - Y+1
230 FOR J = NK TO NJ: POKE BA + Z1(J), P 420 GOSUR 300
BEK (2X + J): NEXT : RETURN : REM 430 ZW = 2V
MODE NORMAL 440 FORK = 0 TO DY::2V = Y + K:BA= EW
240 FOR J = NK TO NJ: POKE BA + Z1(J),Z1 B1(X):ZV = ZW + K:BB = FN R1(ZH)
% - PEEK (2X + J): NEXT : RETURN : 450 FOR I = 0 TO DX:BC = BA + I:BD = 3B
REM MODE INVERSE +I
250 2V = ZV - 1:BA = FN BI1(ZH): FORJ = 460 FOR J = 0 TO 7:CH = PEEK (BC + 21(2
NK TO 7: POKE BA + Z1(J), PEEK (2X ))
+ INT (J / 2)): NEXT :2V = 2V + 1:B 470 IF FL = 7 THEN TA = TA + 1: POKE TA,
A= FN B1(ZH): FOR J = 8 TO NJ + 8: CH: GOTO 520
POKE BA + Z1 * (J - 8), PEEK (ZX + 475 IF ZC = 67 THEN POKE BD + £1 (J),CH=
INT (J / 2)): NEXT : RETURN : REM GOTO 520
AFFICHAGE DOUBLE HAUTEUR 480 IF 2C = 68 THEN POKE BC + Z1(J),0-
Pom's n° >
POKE BD + Z1(J),CH: GOTO 520
490 IF FL = 6 THEN TA = TA + 1: POKE BD
+ 21(J), PEEK (TA): GOTO 520
500 IF ZC = 78 THEN POKE BC + Z1(J),Z1%
- CH: GOTO 520
510 IF ZC - 69 THEN POKE BC + Z1(J),0:
GOTO 520
520 NEXT : POKE - 16336, PEEK ( - 16336
): NEXT : NEXT
530 ZV = 2V + 1:FL = 0: GOSUB 270:2V = 2
W: RETURN
600 :
610 REM SOUS-PROGRAMME D'AFFICHAGE
620
630 Z = PEEK ( - 16336) - PEEK ( - 163
36)
640 BA = FN B1(ZH)
645 IF ZC = 30 THEN ZC = 62: GOTO 660
650 ZC = ZC - 32 + 32 * ((ZF = 1) AND (Z%
C > 64 AND ZC < 97))
660 IF Fl = 1 THEN WB = ZB:ZB = 13824
670 IF Fl = 2 THEN WB = ZB:ZB = 13826
680 IF Fl = 3 THEN WB = 2B:2B = 13056
690 2X = ZB + 8 * ZC
700 IF ZM = 1 AND ZL = 1 THEN GOSUB 260
: GOTO 740
710 IF ZM = 1 THEN GOSUB 290: GOSUB 240
: GOTO 740
720 IF 2L < > 0 THEN GOSUB 250: GOTO 7
40
730 GOSUB 230
740 NK = 2 * (Fl = 10): IF Fl = 10 THEN
GOSUB 300:2H = ZH - 1: GOSUB 290:F1
= 6
745 BA=BAt+1
750 ON 2H < 40 GOSUB 290
760 ZH = ZH + 1: IF ZH > 40 THEN ZH = 1:
2V = ZV + 1+ (ZL = 1): GOSUB 270
770 IF 2H = 37 THEN PRINT CHRS (7);
780 IF Fl < > 0 THEN ZB = WB:F1 = 0
790 RETURN
900 REM AFFICHAGE DU MODE DANS LA CASE
40,24
910 2X = 12288 + 1536 * (ZL = 0) + 8 * (
ZE - 32)
920 IF 2M = 1 THEN FOR J = 0 TO NJ: POK
E 17399 + Z1(J),21% - PEEK (2X + J)
: NEXT : RETURN
930 FOR J = 0 TO NJ: POKE 17399 + Z1(J),
PEEK (ZX + J): NEXT : RETURN
940 REM EFFACEMENT DE LA CASE 40,24
950 BX = BA:BA = 17399: FOR J = 0 TO NJ:
POKE BA + Z1(J), PEEK (2B + J): NEX
T :BA = BX: RETURN
960 END
1000
1010 REM **#%*** DESSIN D'UN CYCLE *****
1020
1030 IF SH > 2 THEN 1070
1040
1050
1060
1070
1080
1090
1100
3000
3010
3020
4000
4010
4020
4030
5000
5010
5020
5030
5040
5050
5060
5070
6000
6010
6020
6030
6040
6050
6060
6070
7000
7010
7020
7030
7040
7050
GOSUB 300:XZ = ZH *7-5+5%* (%
B= 13056 OR Fl = 1):¥2 = 2V * 8 -
16 * (Fl = 0)
IF XZ < 1 OR YZ < 1 OR XZ > 256 OR
YZ > 168 THEN RETURN
DRAW SH AT XZ,YZ:ZH = 2H + 4 * (F1
= 0):F1 = 0: GOSUB 270: RETURN
REM ELECTRONIQUE
GOSUB 300:XZ = ZH*7-6+2+% (Z
c = 71)
YF = ZV £6 = 5 - 3 * (ZC 72)
DRAW SH AT XZ, Y2Z:ZH - ZH + 3 * (SH
= 6 OR SH = 7 OR SH = 8) + 4 * (S
H = 4) + 5 * (SH = 5): GOSUB 270:
RETURN
REM **44*%* TEXT -> HGR2 ***4*
POKE 49232,0: POKE 49234,0: POKE 4
9237,0: POKE 49239,0: GOSUB 900: R
ETURN
REM *##*# MISE A ZERO DES POINTEU
RS *#tee
E = 49:Z2F = 0:2M = O:F1l = 0:ZL =
0:2B = 12288:TA = 28676:F2 = 0:F2
= 0:2H = 1:2V = 1:FL = 0: RETURN
REM
REM *#*+*
SAUVE PAGE GRAPHIQUE **
ONERR GOTO 9000
PRINT CHR$ (7);: GOSUB 300: TEXT
: HTAB 1: VTAB 23: CALL - 868: IN
PUT "SAUVEGARDE DE LA PAGE ";N$: I
F NS = "" THEN 5060
GOSUB 300: PRINT D$"BSAVE "N$",A$4
000, LS1FF8": GOSUB 3020
GOSUB 3020
RETURN
REM ***** CHARGE PAGE GRAPHIQUE **
ONERR GOTO 9000
PRINT CHR$ (7);:; TEXT : HTAB 1: V
TAB 23: CALL - 868: INPUT "CHARGE
MENT DE LA PAGE ";N$: IF N$ = "" T
HEN 6060
PRINT D$"BLOAD "N$",A$4000"
GOSUB 3020: GOSUB 290
RETURN
REM *#*** SAUVE UN BLOC *#*##
ONERR GOTO 9000
PRINT CHRS$ (7);: TEXT : HTAB 1: V
TAB 23: CALL - 868: INPUT "SAUVEG
ARDE DU BLOC ";N$: IF N$ - "" THEN
5060
GOSUB 300
Pom's n° 21
7060 PRINT D$"BSAVE "N$".BLOC, A$
7000,L"(DX + 1) * (DY + 1) *
8 + 97070 GOSUB 3020
7080 RETURN
8000 =:
8010 REM *%**** CHARGE UN BLOC *****
8020 :
8030 ONERR GOTO 9000
8040 PRINT CHRS (7);: TEXT : HTAB 1: V
TAB 23: CALL - 868: INPUT "CHARGE
MENT DU BLOC ";N$: IF NG = "" THEN
5060
PRINT D$"BLOAD "N$".BLOC,A$7000"
GOSUB 3020
RETURN
9000 REM TRAITEMENT ERREURS
9010 TEXT : HOME
9020 ER = PEEK (222):EL =
+ 256 * PEEK (219)
IF ER = 4 THEN PRINT "DISK PROTEG
E EN ECRITURE": GOTO 9080
IF ER = 6 THEN PRINT "CE FICHIER
N'EXISTE PAS": GOTO 9080
IF ER = 8 THEN PRINT "ERREUR I/O"
: GOTO 9080
IF ER = 9 THEN PRINT "DISK REMPLI
": GOTO 9080
IF ER = 255 THEN PRINT "TAPER UNE
TOUCHE POUR CONTINUER": GOTO 9080
PRINT "ERREUR "ER" DANS LA LIGNE "
EL: END
POKE 216,0: GET R$: HOME
GOSUB 3020: GOTO 10030
8050
8060
8070
PEEK (218)
9030
9040
9050
9060
9065
9070
9080
9090
10000
10010 REM
10020
10030
*%*% ANALYSE DES COMMANDES ***
WAIT - 16384,128,127:2C = PEEK (
- 16384) - 128: POKE - 16368,0
10040 Fl = Fl + ( PEEK ( - 16287) > 127)
+ 2 * ( PEEK ( - 16286) > 127)
10045 IF ZC = 30 THEN Fl = 10: GOSUB 630
: GOTO 10030
10050 IF ZC > 31 THEN GOSUB 630: GOTO
10030
10060 IF ZC = 4 THEN PRINT : TEXT : HOM
E : PRINT CHR$ (4) "CATALOG": CALL
- 651: GOSUB 3020: GOTO 10030
10070 IF 2C = 27 THEN GOSUB 12010: GOTO
10030
10080
10090 REM DEPLACEMENT DU CURSEUR
10100
10110 IF 2C - 8 THEN GOSUB 300:ZH = (ZH
- 1) * (2H > 1) + 40 * (2H = 1):2
V = ZV - (ZH = 40) * (1 + (2L = 1)
) = GOSUB 270: GOTO 10030
10120 IF ZC = 10 THEN GOSUB 300:ZV = ZV
+ (ZV < 24) + ((ZL = 1) AND (ZV <
23)): GOSUB 270: GOTO 10030
10130
10140
10150
10160
10170
10180
10190
10200
10210
10220
10230
10240
10250
10260
10270
10280
12000
12010
12020
12030
IF ZC = 11 THEN GOSUB 300:ZV = ZV
- (2V > 1) - ((@L = 1) AND (ZV >
2)): GOSUB 270: GOTO 10030
IF ZC = 13 THEN GOSUB 300:ZH = 1:
ZV = ZV + (ZV < 24) + ((ZL = 1) AN
D (2V < 23)): GOSUB 270: GOTO 1003
0
IF ZC = 21 THEN GOSUB 300:ZH = (Z@
H+41) * (2H < 40) + (ZH = 40):2V
= ZV + (ZH =1) * (1 + (2L = 1)):
GOSUB 270: GOTO 10030
REM TOUCHES CTRL POUR APPLE II+
IF 2C = 9 THEN Fl = 1: GOTO 10030:
REM CTRL-I => LETTRE SUIVANTE EN
INDICE
IF ZC = 14 THEN ZC = 95: GOSUB 630
IF ZC = 15 THEN ZC = 92: GOSUB 630
IF ZC = 16 THEN 2C = 96: GOSUB 630
IF ZC = 19 THEN ZF = (ZF = 0): GOT
O 10030: REM BASCULE MAJUSCULES/MI
NUSCULES
IF ZC = 24 THEN Fl = GOTO 10030
If ZC = 7 THEN Fl = 3: GOTO 10030
IF ZC = 26 THEN ZC = 126: GOSUB 63
0
IF ZC = 29 THEN ZC = 91: GOSUB 630
GOTO 10030
REM : LA TOUCHE ESC
WATT - 16384,128,127:2C = PEEK (
- 16384) - 128: POKE - 16368,0
12040 IF ZC < 49 OR ZC > 53 THEN 12060
12050 ZE = ZC: GOSUB 300:ZB = 12288 + 76
12060
12063
12065
12066
12067
12068
12069
8 4 (ZC - 49): GOSUB 270:ZX = 1228
8 + 8 * (ZC - 32): GOSUB 900: RETU
RN
IF ZC = 45 THEN NJ = 13 - NJ: RETU
RN : REM TIRET -> SOULIGNE (BASCUL
E)
IF ZC = 43 THEN Fl = 3: GOSUB 630:
RETURN : REM + OU - PAR FRAPPE
DE +
IF ZC = 47 THEN Fl = 3:2L = 1:2¢€ =
64: GOSUB 630:ZL = 0: RETURN : RE
M SYMBOLE SOMME OBTENU PAR ESX
7
IF ZC = 21 THEN Fl = 3:2C = 62: GO
SUB 630: RETURN : REM FLECHE DROT
TE
IF ZC = 8 THEN Fl = 3:2C = 60: GOS
UB 630: RETURN : REM FLECHE GAUCHK
E
IF 2C = 10 THEN Fl = 3:2C = 59: GO
SUB 630: RETURN : REM FLECHE VERT
ICALE BAS
IF 2C = 11 THEN Fl = 3:2C = 94: GO
14
Pom's n° 21
12070
12075
12080
12090
12100
12110
12120
12130
12140
12150
12160
12170
12180
12190
12200
12210
12220
15000
15010
SUB 630: RETURN : REM FLECHE VERT
ICALE HAUT
IF ZC = 66 THEN GOSUB 300:FL - FL
+ 1:NX = 2H * (FL = 2):NY = (ZV -
a) * (EL =.2)¢ IF FR = 2 SHEN’ X=
ZH:Y = ZV + 1: GOSUB 270: RETURN
<: REM ; -> TRAVAIL SUR BLOCS
IF FL = 3 THEN FL = 0
IF ZC = 66 THEN RETURN
IF 2C = 70 THEN ROT= 0: GOSUB 180
10: RETURN : REM F => FORME AVEC R
OT=0
IF ZC = 71 THEN ROT= 16: GOSUB 18
010: RETURN : REM G => FORME AVEC
ROT=16
IF (ZC = 72 OR 2C = 104) THEN ZH =
1:2V = 1: HGR2 : GOSUB 270: RETUR
N : REM H(OME) => VIDE L'ECRAN HGR
IF (ZC = 76 OR ZC = 108) THEN GOS
UB 6010: RETURN
IF (ZC = 81 OR ZC = 113) THEN TEX
T : END : REM Q => QUITTER LE PROG
RAMMED
IF (ZC = 82 OR ZC = 114) THEN TA =
28676: GOSUB 8030:DX - PEEK (TA
- 1):DY = PEEK (TA):X = ZH:¥ = ZV
:FL = 6: GOSUB 420: RETURN : REM R
=> RAPPEL D'UN BLOC
IF FL = 1 AND (ZC = 78 OR ZC = 69)
THEN NX = ZH:NY = ZV - 1: GOSUB 4
10: REM INVERSI
IF FL = 2 AND (ZC = 67 OR ZC = 68)
THEN GOSUB 410: RETURN : REM COP
IE OU DEPLACEMENT BLOC
IF (ZC = 83 OR ZC = 115) THEN GOS
UB 5010: RETURN : REM S => SAUVE U
NE PAGE GRAPHIQUE
IF (ZC = 73 OR ZC = 105) THEN GOS
UB 20010: GOSUB 3020: RETURN : REM
I (NSTRUCTIONS
IF (ZC = 86 OR ZC = 118) THEN 2M =
(2M = 0): GOSUB 900: RETURN : REM
BASCULE VIDEO INVERSE/NORMAL
IF FL = 1 AND (ZC = 87 OR ZC = 119
) THEN TA = 28676:FL = 7:NX = ZH:N
Y = ZV - 1: GOSUB 410: POKE 28675,
DX: POKE 28676,DY: GOSUB 7030: RET
URN : REM W => SAUVEGARDE D'UN BLO
c
IF (ZC = 89 OR ZC = 121) THEN ZL =
(ZL = 0): GOSUB 900: RETURN : REM
Y => BASCULE DOUBLE HAUTEUR
RETURN
REM HARD COPY
18010 REM SHAPES
18020
18030
18040
18050
18060
20000
20010
20020
20030
20040
20050
20060
20070
20080
20090
20100
20110
20120
20130
20140
20150
20160
20170
20180
20190
20200
20210
20220
20230
20240
24000
24010
24020
25010
WAIT - 16384,128,127:SH = PEEK (
- 16384) - 128 - 48: POKF - 1636
8,0
IF SH <1 OR SH > 9 THEN 18030
GOSUB 1020
RETURN
REM *#4%%4% INSTRUCTIONS ***4*
TEXT : HOME
INVERSE : PRINT "EDITEUR HGR : EDI
GRAPH (C) 1985 R.JOST ";: NORMAL
INVERSE : PRINT "<ESC>:": NORMAL
PRINT "1-5: POLICES 1 A 5. B: TRAI
TEMENT BLOCS"
PRINT "F: FORMES 0 DEG. G: FORM
ES 90 DEG"
PRINT "H: HOME I: INST
RUCTIONS"
PRINT "L: CHARGE PAGE HGR. S: SAUV
E PAGE HGR"
PRINT "R: LECTURE BLOC P: HARD
copy."
PRINT "Q: QUITTER. -: MODE
SOULIGNE
PRINT "V: BASCULE VIDEO Y: BASC
ULE HAUTEUR"
PRINT : PRINT "SOUS-COMMANDES BLOC
sn
PRINT "N: NEGATIF D: DEPL
ACE UN BLOC."
PRINT "C: COPIE BLOC E: EFFA
CE UN BLOC."
PRINT "W: ECRITURE BLOC."
PRINT : INVERSE : PRINT "CTRI.": NO
RMAL
PRINT "S: BASCULE MAJ/MIN. G: LETT
RE GRECQUE."
PRINT "I: INDICES. X: EXPO
SANTS."
PRINT "J: CURSEUR BAS. K: CURS
EUR HAUT.”
PRINT "D: CATALOG"
PRINT "<RETURN>: RETOUR CHARIOT"
CALL - 651
RETURN
REM ***4**% INITIALISATION *****
REM
Z1 = 1024:21% = 255:22% = 128:22 =
16255:23 = 984:22 = 7168:ZB = 122
88:BA = 16384:2H = 1:2V = 1:2X = 0
:CZ = 0:NJ = 7:B1(0) = 0:2M = 0:
15020 REM METTRE ICI L'APPEL DU SOUS-PR 25015 TA = 28676: REM ZONE TAMPON
OGRAMME DE HARDCOPY 25020 DEF FN B1(Z) = 22 + 22% * 2V - 23:
15100 RETURN * INT ((Z2V - 1) / 8) +2
18000 : 25030 Z1(0) = 0:Z1(1) = 1024:21(2) = 204
Pom's n° 21
15
Te 2 SM0d
ee
00 Ot oF or or
00 of oF #0 bo
00 OT FO FO bo
00 Ot #0 Bo OF
00 80 80 80 bt
00 bt BI 80 BT
00 22 9c we 2z
00 Bo PT pr pT
00 OT BT br BT
00 80 80 80 80
00 oF ot oF Fo
00 or PT 20 PT
Oz OT OT PI Pt
00 60 bO OT BT
00 OF BT BT 5T
00 zt WT at 9T
00 00 -soze
0z OF 80 PO 20 00 -90zE
00 00 00 00 00 co -eaTE
20 9€ ce OF ze HT -0aTE
20 3€ 22 OT OT oz -eatE
OT 2€ 20 20 20 2€ 00 -0aTE
00 00 00 00 go bT #0 -eaTE
3 20 0 80 OT
80 BO BO 80 PT
22 22 bT 80 bE
22 96 ve ve ee
a0 BT 22 22 22
00 or ee ez 22 ee
00 80 BU BO BU BU
00 OI 22 02 aT 20
00 27 20 WO BT 2z az
00 oz zt ve 22 22 22
00 zo zo co at ce ct
00 Ot 22 ee ez ee ce
00 22 22 Ze ve 92 ct
00 22 22 22 ¥Z WZ aE
00 € zo zo 20 20 co
00 ez ci vo 90 wo cL
00 at 22 02 oz 02 0z
00 OT RO a0 80 AO a0
00 zz zz 22 aC 22 22
00 2€ ec ce zo 20 co
00 zo zo zo at Zo co
00 a€ 20 20 aT 20 zo
00 Al 22 22 22 22 2%
00 oF zz 20 20 20 22
00 at ee ce at ce ce
00 22 22 3€ 22 e2 bE
00 2€ 22 9€ oz OT Oz
00 80 00 90 80 oF zz
00 0 80 OF oz OF 80
00 00 00 3€ Go ¥E U0
Sees 5 FSeEGS SPH Aw
Sesecus 2 =
=
= =
7 wyo,P 07
> —_w
a us
00 6 Oz Bz EX 00 00 00 ~BASE 40 ¥O ZO 44 00 44 OF OF
00 90 20 BI bz EY 00 00 -O8SE 00 00 FO Z0 3c ZO ¥0 00
00 98 VB 26 b2 EY 00 00 -B¥SE 00 BI BI bI I BI BI 00
00 28 bo be 60.40 00 00 -O¥SC 80 OT vz 80 80 80 80 20
00 £8 60 68 38 00 00 00 -86S€ 00 00 00 00 40 80 80
00 OT FO bO pO FO 00 00 -09LE TO [8 30 26 bz BT 00 00 -06SE 00 00 00 00 ec 80 80 80
0 $f 20 bd 20 ST 00 00 -8SLE OT OT Ze 60 06 be BE 80 -88SE 80 80 80 80 40 00 00 00
00 OT FI OF OT OF 00 00 -OSLe 00 26 BI BI GT 4f 00 00 -0RGF 80 80 80 80 AL 00 00 On
00 OF 80 80 80 DT 00 00 BYE 00 28 Z6 Zz 26.28 00 00 ~8L5C Ob OF OF OF Ob OF OF OF
00 PE bI OT HT PT 00 00 -OPLE vv PU 20 PT Pz EY 00 00 -OLSE Lu tv TO TO TO TO to TO
00 9T OT FO 6 DT 00 00 -8ELE TO Te V2 26 be bY 00 00 -89SE 00 OF Oz OT #0 bo ZO TO
00 'O F020 60 DT 00 00 -0FLF 00 22 26 $T 28 80 8 90 -09S€ 00 00 00 00 00 00 00 3z
00 OF bo 20 FO DT 00 00 -ezLC 00 TE 68 90 WE PZ 00 00 -8SSC 00 To ZO bo 90 OT Oz Ob
00 20 BI I PI DU OU UU -UZLE 00 90 YO ZT 36 He BE OE -0SSE 44 00 00 00 00 00 00 00
00 2T FO bO 60 DT 00 00 -@IZE 00 20 $0 $8 80 88 00 00 -BrSE 00 bo 80 ZI bz 80 OT 00 -8LEE
00 20 BT 20 FT 20 00 00 -OTLE 88 OT Z6 bz HY 9E 00 00 -OKSE gg et ZT bz bz Bb 80 OT -OLEE
00 bY FT OT pr OT 00 0 8 OT 86 BZ 9¥ 00 00 -8ESE 00 60 00 On 4 00 00 00 -89EE
00 9€ 6 6F 9€ 90 00 0 b8 96 WZ WY DE OT 06 ~OCSC 00 OF 80 Fz ZT 80 FO 00 -09EC
00 80 00 80 OT IT 00 U0 ~B4yE 00 28 20 aT C826 00 00 -82S€ 00 3E 00 80 80 3E 80 80 ~25EE
00 60 80 OT 80 FO 00 00 -0a9€ 00 20 ZT ZI 38 80 be BT -OZSE 99 00 00 OT BI HT BT OF -OcEe
00 00 OT 00 aT 00 00 00 88 OT 86 82 9¥ 00 00 ~8TSE G0 0 Oz OT 80 FO 20 00 -snEE
00 OT 80 FO BO OT 00 00 06 92 ZV DE bY RA ON -OTSE 00 00 ZO bo BO OT OZ 0D -0KFF
0 80 00 4d 00 00 00 0 L@ 6I IT 3f 00 00 00 -805€ 00 00 00 00 00 00 00 00 -ecee
00 00 @0 00 80 00 00 00 OT 80 bz ZT 80 FO 00 -00SE 00 00 9E bP OF ¥E UU vO ~vEEE
00 OT Ot Ot bT OT 00 00 00 00 00 00 00 00 00 -egbe 00 00 TO £0 40 30 Be 09 -Bzee
00 OF FI Ot pr OT 00 00 90 00 90 80 Wz OT 80 -04F 00 AT 00 OT 00 OE 00 Ob -OZEE
00 80 80 80 of oF 00 00 SE 0€ OF 0 OE OE SC -B3KC 00 FI FT FI BT FI BT 00 ~8TCe
00 OF $I OT bo IT 00 v0 00 02 OL #U 90 20 00 ~03VE 00 ve ve ve ve ve ve 00 -oTee (OO . ze e we ue
00 Ot Of OT FO OT 00 00 3€ 90 90 90 80 #0 80 60 80 80 80 80 -soce 7 PO OO 00 OO BY OY
00 OF OF aT 6T #0 00 40 a 2Z $0 80 OT ZZ 48 -0GbE 00 00 00 00 00 00 00 00 -o0ce OP OP OO Oy CP 2A On
00 of OF ef Ot OT 00 00 20 80 Ot Wz G9 80 2T FORE 35 5 AL HL HL AF af 34 ~2aee OO STOOD OE oe
00 2f bo of oF OT 00 00 c@ 22 FT 80 bT Ze EG -0DKE 00 00 00 00 00 00 YI 22 -0aze
00 OT #0 #0 80.20 00 00 ca 26 22 Iv Iv.cc 1 sure 00 2€ Zo se zz oT oc or -eace 20 FO FO HO G0 OF 0%
00 OF PT BT bT OT 00 00 80 28 FI z6 00 a2 ze 22 22 ze 90 bo -osze 70 OF Ze Ze AT 20
00 b0 bo 80 OF OT 00 00 28 80 80 80 00 2€ 20 3€ zz OT OT oz -saze
00 00 80 00 00 00 00 00 28 90 80 80 80 60 4a -OvbC 00 3C 60 80 oF 3e 00 00 -onzs OO OT OF SE 2T PT aT
ou vo 00 of 00 00 00 00 HE 22 0 60 PO ee ae -B6bE OT 08 DE ze ez 22 00 00 ~wec 98 AT eC Oe ET OF Oe
00 80 OT OT 00 00 00 00 £8 20 20 a1 22 ce aT -06bE 00 ce vi Ho PI 2z 00 00 ~ooze 00 SE 0 BD AT OF 2
00 00 80 OT 80 00 00 00 gE Tz 00 31 00 00 9€ ¥z vz 22 Zz 00 00 -gaze
00 00 BT 80 BT 00 00 00 ce ze zz zz 22 22 an -ORbE 00 BO PT zz zz zz 00 00 -oaze 0 At Ce 9E VE ce ce
00 80 of of OF 60 00 00 br ge Te TV Iv 22 oT -ecbe 00 22 ze zz zz zz 00 00 -evec 99 00 <0 bY BO OL Ue
00 80 60 0 60 80 00 00 cu 2¢ ze ve 9¢ ce EU -ULPE 00 BT be FO 0 BT bo bo -ovee 00 80 00 00 00 0 00
00 00 00 00 80 80 00 00 ba 22 22 We We 9C Ca -89KE 00 BT 02 OT 20 DE 00 Ov -woce 1Y OD OO On AE OA OO
00 00 00 2T 6T aT 00 00 9 TY 2Z 26 BI 28 80 -09KE 00 20 20 ZO 90 VE 00 00 -06zE
00 br 60 80 OT HT 00 00 ca zt v0 90 vo zt ca -eche 02 0 OF 22 22 2E 00 00 ~gaze 2 00 80 80 3E 80 0
00 ¥0 OT #0 Ot 0 00 00 ot ee te ga Te c2 ot -0sve 20 20 Bt 22 22 aT 90 80 Wz OT 90 JT ve
00 60 aT 80 9E OT 00 00 28 80 80 80 80 80 28 -BrPE 90 OT ee ee ez OT GOs80 GE RE Be Oe: aE
00 00 00 00 BI FT 00 00 ea 2¢ tz SC ze tz Ea -ObKE 00 ee ee Ze te aE ss : A = Ps Fi
00 R000 80 80 80 00 00 FR 20 20 Z0 20 22 3 00 ze v2 ve We 96
00 00 00 00 00 00 00 00 -009F o0 of a0 aC a9 aC G0 DT -OChE 00 2T 80 80 80 AO MOL SE RENE AD LONG
SL 4 aL 4k 4 40 00:36 zz Zo 30 20 ce ae-=ezee. 00-ee era0 ex 22 z0-z0--sczc 00 OF EE 10 AD OF 9¢ 90-8008
00 00 00 00 a€ 00 ¥I 22 04S 00 ax TV ce 26 FI 28 80 -0ZKE BU et OT OT OF Bt oD or ~osze 20 BP BT BF ar MP OF BO ~OaTE
00 30 @f @T OE BT BT 30 -83S€ 00 C8 ZO 20 20 ZO Ze 4 ~STHE 00 IT- 80 80 80 20 00 BO -BbZE OD Oe OD Oe Oo ot or or -oroe
80 90 80 20 80 80 20 0 -O3CF 00 at zz zz.at zz 22 aT -OTHE 00 2e 22 ze Ze BT ZO 20 -ONEE
00 8€ 20 90 50 20 20 eC -8aSC a0 €9 Tv 3E ze HT D8 80 -B0hE OT OZ DE zz Zz 2T 00 00 -eczc 00 BP 00 BO BP 50 80 Bb Bene
90 98 ¥0 CY CB ¥0 26 PO -OGSE £0 PO PO BO BO UL UI 0¥ —00PE 00 PO FO vO aT FO ve er -oEce ° 9 00 00 00 00 00 00 -—000E
20 28 38 S6 Wz 68 OT 00 -89SE 0 Fo vO Yo vO IT IT 00 2€ zo 3€ zz Tt 00 00 -Bect
ZW bT 28 28 HIT T6 00 00 -09SE 00 00 OF Oz 44 OZ OT 00 -0aEE 00 DE Zz ez Zz DE Oe OF -0ezE 14S, Saal/Od
RRSSKE
a 2
ss
$s
sé
35
S
O0€00T O i] =<3T¥OS :96’€€Z AMOd :0’ZEZ INO
LOD :0Z0€ ANSOD :0€0b ANSOD : AWOH OZ00E d :.0009S¥‘PSANHOA CWOTHuSd LNIYd 02092
* OTO0E w000ESW'LES GVOTHuSd ENIYA OT09Z
GQAWHD ¥ aoveNvWaadd WAY 0000€ (bp) $aHD = $a 00092
NMOLTA 0£09Z B9TL = (L)TZ!bbT9 = (9) TZF02TS =
€ =aOTOOH (S$) 1Z7960b = (b)TZ?zL0E = (€)TZ*E
IZ .U S,Wog
22
Ir
60
be
se
be
ao
a0
a0
az
oe
2z
oe
ve
st
“a
aT
ae
20
az
9c
ae
oe
sz
az
zz
st
ae
oe
12
ze
80
az
ae
ae
ge
se
aa
6
oP
ar
69
re
a0
vo
Tz
oe
ae
ve
4
a
oe
ae
az
faa
be
Fra
be
az
ve
ve
az
at
vo
oe
be
se
rd
ee
se
ae
oz
ve
so
be
ae
oe
se
ve
aa
ca
we
aa
6b
be
4
oT
ao
oc
30
be
az
er
80
00
aT
ae
az
oS
bz
ez
ve
az
bz
9c
st
az
9e
se
ge
E74
00
a
ve
oe
uz
ae
oe
ae
ra
aa
az
go
oe
es
a3
sz
ve
9
4
90
9e
oz
oe
00
Ir
80
az
az
ae
00
“ez
oe
9
ve
az
oe
ae
we
00
30
ge
se
ae
ae
60
ve
4
4
ae
oe
ae
4
aa
az
aa
a
aa
00
ve
ve
oe
ez
80
ce
To
be
az
se
to
60
az
Be
ae
ez
ez
oe
oe
az
60
oc
az
az
se
30
9
se
€@
or
ve
st
oe
ae
sc
ae
00
a
az
aa
60
aa
so
oe
ve
9
ar
so
er
az
be
60
22
“e
“e
az
80
Le
ve
Zz
sz
#0
gE
a0
oF 2
6c
az
oe
“e
oo
22
00
aa
az
aa
6
ga
ae
ge
ae
oe
oc
“e
oe
“e
ae
ae
se
ra
ue
30
30
op
ea
0429
-#929
~09e9
8529
0529
~26z9
-ove9
~8Ez9
0629
~8aT9
er
60
ar
6
ga
Se
ag
az
zo
To
az
68
aa
a
aa
oF
ao
az
oe
oO
oy
68
op
sa
69
aa
ee
lu
6
20
00
sF
ag
oy
aq
6a
ov
6b
sr
ar
sé
ag 24-009
a9 az -8£09
aa 80 -0£09
66 66-9209
rT ga -0z09
a9 az -8T09
20 a8 -0r09
To 33 -8009
aa 90
sbSANYOS,
ae
zo
aT
ar
ar
Fig
en
90
£0
er
£0
©
or
ee
56
98
66
6
66
68
98
ae
30
ge
9c
ae
20
Tr
20
wz
ae
az
90
28
90
20
ae
at
ze
9t
90
ov
ae
oy
ae
£6
as
w
28
ve
og
28
ee
ah
30
or
»
ge
26
Be
ee
oe
or
21981
oz eT ~0ase
08
08
oF
oe
08
86
co
os
o8
+8
op
aa
or
aa
oF
ag
oF
aa
ob
aa
6
aa
65
sa
oy
68
aa
oF
a0
oF
ag
oF
aq
oF
aa
oF
aa
65
aa
oF
w
at
63
aa
a
ag
oF
aa
6
aa
or
aa
66
aa
ov
ce
ae
“s
sa
go
aa
Co
aa
a
aa
69
aa
aa
co
aq
60
aa
6
ar
ST
“s
Wr
we
va
we
aT
65
ar
60
ag
oF
aa
6
aa
oF
69
ag
6
aa
66
aa
op
a
6
ea
at
Ca
aa
oe
66
6
aa
65
ga
oF
aa
6
aq
or
ag
oF
aa
69
aa
00
aa
ae
aa
6
aa
or
ag
69
aa
69
ae
sa
30
4a
59
ag
a
ae
00
ag
ae
ag
oF
aa
a3
aa
a
aa
69
aa
a
aq
oy
wb
az
00
aq
ae
aa
oF
ga
ae
aa
6
ga
6
aT
oF
aa
6a
aq
69
aa
ae
20
va
cra
aa
a
aa
op
4a
op
ea
oe
ea
ob
aa
65
er
9
aa
az
aa
oF
or
ag
60
aa
ca
ar
o
aa
oe
aq
oF
ga
6B
oF
ar
aa
oF
60
ag
ar
go
oF
aa
6b
aa
oo”
aa
6p
oF
ob
69
69
we
ar
69
aa
or
ag
a
aa
6b
ea
op
aa
69
aa
Ta
we
va
60
aq
oF
ag
az
o
aa
00
oo
40
ar
30
Ir
te
at
#0
aT
a
6T
aT
ee
00
00
oe
26
oz
ee
8
on
v6
56
98
66
ze
66
os
66
18
66
66
1
8
66
66
38
66
£8
ee
66
68
6a
66
et
90
00
80
oc
30
98
90
ze
zo
ze
ze
oe
a6
ze
oy
98
26
00
00
88
og
80
98
28
26
26
98
38
zs
36
36
ca
ze
36
an
oz
20
26
cy
28
aT
ee
00
00
os
og
v0
20
86
on
22
20
as
ne
40
20
20
ce
40
+9
$9
ec
08 08 -e03e
00 00 -o03e
00 00 -830e
92 08 -0z0€
oz
9 99 ~RD0E
Z9 -og0e
28 26 -090e
ba 29 -8sde
28 #4 -0£0E
3 ea -ozce
28 84 -8T0E
$a 8G ~OTGE
3 am -200r
oF oc -ovac
00
20
98
00
og
20
00
30
30
90
30
30
20
30
a
20
a0
iw
20
an
80
oo
90
90
90
08
£8
28
6s
oe
oR
28
98
56
28
98
08
oo
ea
a6
ve
os
08
08
a
90
rr)
ee
90
ae
at
80
86
a0
28
0
00
oe
ze
20
2
oc
er
0c
20
aT
ce
09
00
00
20
oT
of
90
00
we
ba
oc
ae
00
26
08
aa
00
ee
av
20
ee
20
oe
98
a6
86
oe
3a
86
a6
ae
26
ee
86
ze
oe
aR
oe
se
ag
og
oe
28
ee
36
+6
os
28
o8
aa
or
ke
©
ee
or
€e
aT
86
ae
28
00
00
9
+9
og
60
36
ze
09
09
oc
06
00
oo
00
er
Bz
03
20
00
a
16
zo
wa
00
er
08
aa
ee
aL
ee
aT
ac
ee
ce
28
o8
08
oF
ov
26
86
og
aa
00
op
00
To
00
00
00
98
o8
og
oe
oe
ou
ea
og
aR
2a
oa
ea
a
og
oe
oo
08
oR
oe
o8
o@
86
og
86
28
re)
o
os
oa
06
08
aa
00
ee
ec
#0
00
oo
00
~9g0€
-0g9€
~8g0€
-0g0€
~ea0e
002
BIDE
-020€
-8a0e
~onnE
avr
~owoEr
~869€
-069€
~9908
~089€
BLIE
-0L9€
~#99e
-090c
~3se
-0s9€
8508
~0p0e
~B£0€
~0EDE
~8z0e
-oz0e
-9T9¢
~ore
aI
aT
aq
00
00
20
ar
og
Eig
ae
20
©
69
20
at
20
ar
ee
£0
at
aT
ce
9
of
£0
ac
av
ce
ce
as
20
ar
ee
20
fe
ge
90
£0
ce
fe
ce
ee
00
00
20
at
a0
ae
20
tL
a
ae
20
ae
er
£0
ae
ee
ce
30
at
£0
cc
Es
ce
as
20
40
oc
20
ee
ee
90
at
ee
£0
cc
Be
00
00
20
ee
£0
90
20
at
co
ee
fe
20
oc
a
at
ec
ce
ce
90
£0
ee
ce
ce
ce
ee
as
20
ar
oc
20
ce
ce
au
ce
ee
fe
cc
of
of
00
20
8r
ar
£0
20
at
20
a9
ee
ee
20
at
se
&@
ae
ce
ce
ee
at
a
at
a
at
ar
at
ge
20
of
00
a
ar
go
ar
ae
ar
at
ar
sr
00
ac
er
30
£0
ar
ee
ar
69
ee
fe
20
£0
ee
4
fe
ce
00
00
30
00
00
00
00
00
00
00
20
00
20
£0
oo
se
00
of
00
co
20
00
“0
a
ae
ce
ee
©9
ee
ee
ae
ae
ae
ae
ae 3
ae
oo
a
ae
ee
©
69
ee
ee
«9
de
ee
6
ae
fe
ar
£0
ae
av
aT
at
20
20
00
wt
or
aT
aT
ee
9
ae
ae
aa
ae
ee
de
£0
ae
ae
de
de
ce
ee
30
ae
oc
au
or
ae
or
ac
9
£0
ar
eg
20
ae
ce
at
co
ee
ee
ee
20
oT
ae
or
oo
00
oe
ge
©9
£0
40
og
20
ae
ae
at
at
fe
£0
at
ae
oe
ar
ae
00
go
oo
00
ge
aT
ce
a9
£0
at
og
20
&e
£0
£0
©0
ee
ee
ee
ce
ar
oT
ae &
or
Pas
or
ee
cc
ce
bk
£0
ae
og
ae
ce
ae
ae
ae
at
ac
oO
ec
3
£0
ee
og
ae
ee
aT
a
de
at
a
a0
at
ee
ar
40
00
on
oo
90
at
aT
~oeve
Bove
~09ve
ase
~osve
~srve
~opve
~BEvE
~orwe
eave
~vew
BIVE
~Orve
eowe
-oove
~8a6E
~046€
~e56e
076
~wubE
-006E
-826E
~026¢
ar
a
or
ar
ae
of
aT
£0
or
oo
et
00
90
30
ee
00
az
oe
20
fas
00
or
21
or
or
is
we
oT
aT
+0
ce
ae
oc
ge
ae
oe
ce
£0
or
oo
or
20
vz
or
oT
00
IT
ve
ae
ae
00
or
oo
ae
00
oa
00
00
20
or
80
ve
Pr
oT
80
or
bo
or
oT
oT
or
ve
80
20
0
80
or
or
80
bo
+r
v0
or
or
oz
00
wo
ee
of
oc
30
oe
ee
30
00
oo
00
20
or
ge
30
00
we
a0
at
ee
ge
Be
oe
€e
or
00
ae
00
a6
ac
Be
a0
20
50
£0
£0
oe
ee
ae
ar
ar
2€
at
ae
00
00
00
ae
00
00
00
00
ar
oT
80
ve
or
oT
80
bo
vo
or
or
or
rE
we
80
20
#0
20
or
aT
20
or
+
v0
oT
or
oz
00
ve
as
oe
or
00
ae
00
90
00
00
or
oT
or
ve
or
oT
8T
er
or
or
or
or
or
ae
80
oT
20
00
or
or
80
oT
or
or
or
or
oz
00
aL
00
00
00
80
00
00
oo
00
00
00
00
20
bo
80
20
vo
00
er
00
or
00
40
00
oz
00
80
00
00
oo
00
00
00
00
00
00
00
00
00
00
oo
09
00
00
00
00
00
00
00
00
00
00
00
00
00
oo
00
00
oz
00
00
Courrier automatisé
Véronique Schmitt
orsque nous abordons
W.P.L. et le courrier
dit "automatisé", nous
ne trouvons que des
“circulaires" & personnaliser et
leur fichier d'adresses
pré-enregistré. Or, si la circulaire
tépond bien aux _ besoins
professionnels, pour lesquels la
création d'un fichier est
rentabilisée par des emplois
successifs, elle parait inadaptée
pour des besoins personnels car,
dans ce cas, le fichier n'est créé
que pour la circulaire en question
et tout le travail de saisie, qui est
si fastidieux, n'est guére
fructueux. En effet, dans le cas
d'un particulier, de quelles
"lettres-type" s'agit-il le plus
souvent ?
* une lettre de demande de
renseignements aupres d'agen-
ces de voyage;
* une demande de tarif 4 une
compagnie d'assurance;
* ume invitation des amis aux dix
ans de la petite...
* etc.
Dans chaque cas, la liste des
destinataires est différente et la
mémoriser en vue d'une
utilisation ultérieure s'avére
souvent inutile (si ce n'est dans le
dernier cas : le fichier "Amis"
peut éventuellement resservir...).
Nous avons donc mis au point un
programme W.P.L. de "courrier
automatisé” pour satisfaire les
besoins des particuliers.
Utilisation
du programme
Comme pour tout programme
W.P.L., il est nécessaire de
charger préalablement Apple
Writer Ile (en frangais).
Pour appeler le programme, tapez
<P> (CONTROLE P), puis aprés
apparition du message
Fichier de Glossaire
'ENTETE'
Wéronique SCHMITT
Monsieur
cher Monsieur
Weutllez agréer,
Programme WPL
‘FORMAT
PPR (ici mettre CTAL L, entre deux CTRL V bien s0r)
PPR AA RARAD RAEN EEREAAEAHAE REED ENSEE ER AR ER ER EE EEE ER
PPR see see
PPR fee CHOIX DU FORMAT D' IMPRESSION aes
PPR fee see
PPR Pererrrrer rrr rr rierrrr Trier iri rertererr errr eer)
PPR
PPR
PPR Avant de charger le format d'impression désiré,
PPR Vous etes-vous bien assuré de l'avoir sauvegardé
PPR sur la disquette W.P.L.
PPR
PPR
PIN NOM DU FORMAT D' IMPRESSION A CHARGER: =SA
PCS/SA//
PDO MENU
ecsa
PDO MENU
Programme WPL
'GLOSSAIRE'
PND
PPR (ici mettre CTRL L, entre deux CTAL Vbien sdr)
PPR perrresrrrr Ts bepeneoessaenssssnsssssaseosasccvors
PPR see ate
PPR aae CHOIX DU GLOSSAIRE eee
PPR vee nee
PPR PARRA RNR RA EARN RRNA ROR A RI EE se eennnnene
PPR
PER
PPR Avant de charger le glosseire désiré,
PPR Vous etes-vous uré de I'avoir sauvegardé
PPR sur la disquette W.P.L.
PPR
PPR
PIN NOM DU GLOSSATI
Pom's n° 21
IMPRESSION/PROGRAMME :
DO MENU.
NDLR : Si, au lieu de baptiser le
Programme “MENU”, nous
Vappelons "STARTUP", Apple
Writer le chargera automatique-
ment, lors du Boot.
Le programme se décompose en
4 phases principales :
+ 1ére phase : chargement du
format d'impression;
+ 2éme phase : chargement du
gost:
éme phase : création de la
"Jettre-type" selon un schéma
prédéterminé;
* 4éme phase : exploitation de la
lettre créée (saisie des mentions
variables ct édition).
Il suffit ensuite de suivre pas 4
pas les instructions figurant 4
Técran.
Fonctionnement
du programme
Le menu
C'est un programme W.P.L. ne
présentant aucune particularité.
Pour quitter, il suffit de taper sur
"RETURN".
Chargement du format
d'impression et
du glossaire
Ce sont deux programmes
W.P.L. Il suffit d’entrer le nom
du fichier. En cas d'erreur, un
retour chariot permet de revenir
au menu principal. Il est rappelé a
futilisatenr | Ge les fichiers de
format d'impression et les
glossaires doivent étre
préalablement enregistrés sur la
disquette. Les initiés a
AppleWriter connaissent bien
cette procédure de sauvegarde.
Création de la lettre
Crest un fichier texte. Il a été créé
a partir d'AppleWriter Ile et se
met donc 4 jour en utilisant les
commandes AppleWnriter.
A ce stade, l'utilisateur complete
la lettre avec les mentions
constantes (Réf., objet, date,
PCS/SA//
PDO MENU
QE SA
PDO MENU
Fichier AppleWriter
‘LETTRETYPE'
Véronique SCHMITT
rue des Cerisiers
97212 AILLEURS
Ket. :
Objet :
(APPELLATION)
(wom)
(ADRESSE)
(VILLE)
Atlleurs,
Je
Veuillez agréer, (APPELLATION), nos salutations distinguées.
Jere Phase
V. Schmitt,
: CREATION DE LA LETTRE TYPE
- Taper <b> pour avoir le debut de la lettre
~ Compléter la lettre (Réf., Objet,
2éme Phase :
Date, Corps)
SAUVEGARDE DE LA LETTRE TYPE
~ Mettre le curseur au debut de la lettre type
- Charger la lettre type completee sous le nom XX
- Taper <S> : XX/V. Schmitt,/
Jéme Phase
- Taper <P> DO MENU
+ RETOUR AU MENU WPL POUR EXPLOITER LA LETTRE TYPE
Programme WPL
'MENU'
PND
PPR (ici mettre CTRL L, entre deux CTRL V bien sOr)
PPR ttesereeee
PPR
PPR
PPR
PPR
PPR
PPR
PPR
PPR
tteserteee:
RARER EERE REEL EA ERE ER ERE RE AR EERIE EERE
ae
COURRIER AUTOMATISE (W.P.L.) oad
PARR ERER RAE A ERE E EERE RR EE ERE R TERRES
MENG
PPRI- CHOIX DU FORMAT D'IMPRESSION
PPR
PPR2- CHOIX DU CLOSSAIRE
PPR
PPR3~ CREATION D'UNE LETTRE 7!
YPE
Pom's n° 21
corps). Puis il la sauvegarde sous PPR
PPR4- EXPLOITATION D'UNE LETTRE TYPE
le nom de son choix (ici XX). ae
Afin de ne pas annexer 2 la lettre PPR
créée les instructions qui figurent = “#9! PN WEERES CHOTA OER
en-dessous, il ne faut page
Sauvegarder le texte que de PCs/$a/2/
I'en-téte jusqu'au signataire, d'od PDO GLOSSATRE
la nécessité de placer le curseur aoe
au début de la lettre et de la PCS/$2/4/
sauvegarder sous le nom XX/V. ee
Schmitt,/. oor
Entin, comme il s'agit d'un ut NO
fichier texte, il est nécessaire pour =
poursuivre de retaper <P> : DO
MENU.
Remarque : Ce schéma de lettre
oneei lacorespondance de V. Programme WPL
Schmitt. Le lecteur le 'SAISIE'
personnalisera en tapant ses
propres coordonnées A la place pe
des siennes et sauvera le texte PPR (ici mettre CTRL L. entre deux CTRL V bien sor)
sous Ie nom "LETTRETYPE". PPR teesesseeessteseserenacesecssersesesstheseeransncstanertinne
PPR +++ anne
2PR#88 EXPLOITATION D'UNE LETTRE TYPE ese
Exploitation de la lettre BER #48 Atte
i PPR tebhobensesesensescsssnscasaserestusattenntsanasionrenstaree
C'est un programme W.P.L. qui PPR
Se déroule = deux phases pes NOM DE VOTRE LETTRE TYPE :=$c
principales: BOUCLE NO .
* saisie du nom de la lettre a L $e
éditer; PPR (ici mettre CTRL L, entre deux CTRL V bien sr)
* saisie des mentions variables a (a BODES ooSk
concernant le ler destinataire, PCS/SA//
puis édition correspondante. Epon
Saisie des mentions variables ollie
concernant le destinataire PIN ADRESSE :=3h
suivant, puis édition, etc. eA (ADRESSE) /SR/a/
Le retour au menu se fait par un Py Wann) aha
retour chariot lors de la saisie Sf SEER HT FIR
d berg ae nom de F/ (APPELLATION) /SA/a/
destin: . B
. PNP
PGO BOUCLE
Editeur Plein Ecran
EPE
Le Pacha Apple J[+, //e, //c
Listez vos programmes Basic en avant et en arriére.
ifiez, insérez, cez des caractéres en plein éc! i i i
Modifiez, insérez, effacez d tt lein écran sans relire les lignes
Recherchez toute chaine de caractéres.
Choisissez vous-méme les codes de contréle d'EPE.
Modifiez EPE : le fichier source est sur la disquette.
150,00 F TTC franco (bon de commande page 74).
Nu
20
Pom's n° 21
RWTS désassemblée
Patrice Neveu
ans le numéro 9 de Pom's,
Thierry Le Tallec désassemblait
pour nous la ROM en $C600: les
méandres du Boot devenaient
clairs... Aujourd'hui nous nous consacrons 4
Rwts. Beaucoup d'encre a coulé son sujet,
citons particuliérement celle de Call Apple
dans All About Dos.
Les fichiers de désassemblage qui suivent
sont écrits en Big Mac :
* Rwits 1 regroupe les sous-routines Prenibl
Write Postnibl Read Rdadr Seekabs
Wrtform.
+ Rwts 2 est 2 proprement parler Rwts.
+ Rwts 3 est le formatteur 16 secteurs du
DOS 3.3.
Ces fichiers devraient permettre au lecteur de
modifier avec plus de facilité le DOS. Ils
devraient simplifier la mise au point de
formattages fantaisistes, de protection
logicielle...
G;
N* de page
Entrées!Sorties Lia
co
Formateur
Ls 16 secteurs 4 BF
SBEAE
- RWIS 4 BE
BD
WRTFORM
$BC56
— +4 BC
NIBBLE BUFFERS
BB
Tables diverses
BA
Utilitaires de RWTS
- PRENIBL WRITE POSINIBL 7 BS
READ RDADR SEEKABS
B8
Dos
Carte de RWTS en mémoire
RWTS 1
(Assembleur BigMac)
DISK IT
SOUS-ROUTINES UTILITAIRES DE
RFAD / WRITE TRACK & SECTOR
($B800.BcDE)
© PAR APPLE COMPUTER.
* DESASSEMALE PAR P. NEVE
*
18 orc $2800
19 eas $9800
AUFPTR
29° SECTNO
30 -TRKND
31 TREN
32 MONTIME
33° TEMP
34127
38 COMPTEUR
36 SLurNUN
37 CURTRK
38 10678
39 pATAL
40° DATAz
41 ‘DATAZ
420NIBLBUF
43° NIBLBUFL
44 wreiaur2
45 RDLTCH
46° WRLTCH
47 RDMOOE
48° HRMODE
49° PHSOEF
EQU $35
QU $41
QU $3F
Fou $44
QU $22
Ege $46
BQU $2c
Bou $27
ROU $26
Buu $28
BQU $0478
BQu $0678
Rou $Ral1
QU $pA1D
2QU $BA29
eQU $8800
2QU $BBFF
eau $Bc0
BQuU scoac
Bou $coap.
Bou $cose
Bou $c08r
Bou $c089
POINTE SUR LA PAGE DE SUFFER DE
TRAVALL
NUMERO DE VOLUME
NosECT
No PISTR
PISTE DE DESTINATION
COMPTEUR SERVANT AUX DELAIS DU
MOTEUR
COMPTEUR POUR LE BUFFER
SECONDAIRE
NUMERO DE SLOT
LE NUMERO DE LA PISTE ACTUELLE
RATI.RAA +
MOUVEMENTS
DU BRAS. UTILISE LORS DES
PHASES ON/OEP
TABLE DE CONVERSION AL 'ECRITURE
ADRESSE DE DEBUT DU BUFFER
PRIMATRE.
DRLATS POUR TRS
ADRESSE OE DEBUT DU BUFFER
SECONDAIRE
SWITCH DE LECTURE DATA
SWITCH D'ECRITURE DATA
SWITCH POUR MODE LECTURE
ECRITURE
ZONE ALLUMANT OU ETEIGNANT LES
21
30
51
59
54
55
36
57
58
59
oo
ARBRE
67
59
70
1
72
3
4
75
76
Ss ay
8
Beeesessaazrers
Seeex ee
104
105
106
107
108
109
110
11
112
23
ue
115
16
ny
118
119
4 PHASES
( $c080.c087)
en
* PRENIBL-NIARERILTZE POUR ECRIRE
. ENSUITE.
PRENIBL © LDX #500
ior #802
PRENIBI DEY
LDA (BUFPTR),¥
4sk
ROL NIBLBUF2,X
ISR
ROL NIBLBUF2, x
STA NIBLBUF,Y¥
Nx
CPx 4856
‘BCC PRENIB:
px #900
TA
‘BNE PRENIBI
4855
10x
2BO1E ‘LDA NIBLBUF2, x
AND 4$3F
wraLaur2, x
‘STA
ex
SPL LBB1E
RIS
CONVERTIT 256 OCTETS (8 BITS)
EN 342 NIBBLES (6 5I7S)
DR LA FORME OOXXXXXX
PAGE A CONVERTIR EST EN BUFPTR
METHODE DE CONVERSION 6+2 (DOD
3.3)
BUFFER SECONDAIRE
BUFFER PRIMAIRE
conr 85 ocTRTS...
3 FOIS DE SUITE, POUR EN
CODER 256
TL ¥ A 86 NIRALES DANS LE
BUFFER SEC.
CHARGER LES NIBBLES UN PAR
UN...
LES NIBBLES SERONT DE LA FORME
0x00
REMET-LE DANS SON BUFFER
IL EN RESTE >
OUI, ALORS AU PROCHAIN...
‘¢wRITE:LA VRAIE ROUTINE QUI ECRIT
‘ LBS NIBBLES DES DUFFERS
‘ PRIMAIRE ET SECONDAIRE
RITE sec
STX 127 DANS X IL ¥ A LE NUMERO DE StoT
+16
STX 10678
‘LDA WRLTCH,X ‘TESTE UNE PROTECTION A
L"ECRITURE
‘LDA RDMODE, x
BMI LBgBd SI LE BIT & (N) ~ 1, PROTECE
‘LDA NIBLBUFZ
STA COMPTEUR PIXE LE COMPTEUR DE NIBBLES
LDA ASFF CHARGE UN OCTET DE
SELF-SYNCHRONISATION
STA ECRIT LE SUR LE DISK
ora
PHA PERTE DE TEMPS DE 3+442=9
CYCLES
PLA
woe
wy #804 METTRE MAINTENANT 4 SELF-SYNC.
LB84A PHA FALT EN DELAL DE 3#4=7 CYCLES
PLA
JSR WRINIBL2 —-PUIS VA BCRIRE
ney DEMANDE A PASSER AU PROCHAIN
BNE La64A S'IL EN RESTE...
WA #503 CHARGE LE DEBUT DU PROLOGUE
DANS L‘ACC.
USR WRINIBL! ‘ET VA ENSUITE L‘ECRIRE SUR IF.
DIsK
LDA ASAA $D5/$AA/$AD REPRESENTE LE
PROLOGUE DU
USR WRTNIBL1 CHAMP DATA.
LDA #SAD
USR WRTNIBL1 = —-L'ECRITURE. DU PROLOGUE EST
FINIE
120
121
123
124
126
127
128
229
130
11
192
133
134
135
136
138
139
140
141
142
143
us
M6
147
148
143
150
4151
152
4153
154
155
156
157
138
159
160
161
262
163
164
165
166
167
168
169
170
17
172
173
17
175
176
i”
178
179
180
181
162
183
194
185
186
187
188
189
190
191
TA
DY #556
BNE 1B869
LDA NIBLBUF2, ¥
BOR NIBLBUF1,Y
TAK
LDA DATA3,X
Dx 127
STA WRLTCH, X
15866
LDA RDLTCH,X
per
ANE 18866
LDA COMPTEUR
Ne
1B87E FOR NIBLBUF, ¥
max
‘LDA DATAI, x
LOX 1.0678
STA WRLTCH, X
LDA RDLTCH, X
‘LDA NIBLBUF, ¥
my
BNE LB87E
TAX
LDA DATA, X
‘LOK 127
JSR WRINIBLI
IDA $snR
JSR WRINTBLL
LDA FRA
JSR WRINIBLI
‘LDA #SEB
JSR MRINTAID
IDA ISEE
USK WRINIBEL
LDA RDMODE, X
LDA RDLTCH.X
RIS
naan
WRTNIBLI Ce
WRINIBL2
WRINTBLS
PREPARE A ECRIRE 86 NIBBLES DU
AUP.SEC.
TIS PRIS
WRITE LOAD (WRMODE DOIT AVOIR
ETE MIS )
ECRIRE L'OCTET (AVANT -> WRITE
MODE)
‘ON LES PREND DE HAUT EN BAS
S'IL EN RESTE A ECRIRE...
LE CODAGE DES NIBBLES A
LL 'ECRITORE
WRITE LOAD
ECRIT L'OCTET
PREPARE A CODER LE PROCHAIN
NIBBLE
PREXD DU BUFF..PRIMAIRE, DE BAS
BN HAUT
AU PROCHAIN DE CES 256
NIBBLES.
PREPARE LE CHEKSIM
ET VA L"ECRIRE...
CHARGE LE DEBUT DE L'EPILOGUE
BT VA L'ECRIRE..
$DE/$AA/3EB EST L ‘EPILOGUE DU
Hae.
FINIR L'ECRITURE DE L'EPILOGUE
PREPARE POUR DES ENTREES
FAIT L' INVERSE
LE TEMPS EST IMPORTANT: 32
CYCLES
POUR L'ECRITURE D'UN OCTET.
WRITE LOAD
WRITE DYTE
* postwraL: DECONR 447 NIRALES
z (6 BITS) OOXXXXXX EN
. 256 ocTeTS (6 BITS)
beeen nna nae nneneneceeneaeeeenee
POSTNIBL Dy #$00
POSTNIBI LOX #356
POSTNIB2 DEX
‘AMI POSTNIB1
LDA NIBLBUF, ¥
SR NIBLBUF2,X
om
LSR NIBLBUF2, X
roL
STA (BUFPTR),¥
my
ceY COMPTEUR
BNE POSTNIB2
FATTS-EN 85 D'UN COUP...
ENCORE UNE FOIS 3.V.P
DECODE CEUX DU BUFFER PRIMALRE
ET CEUX DU SECONDAIRE
SELON LA METHODE DU 6+2
BUFPTR DONNE L'ADRESSE DE LA
PAGE OU
SONT RANGES LES OCTETS
UTTLTSARLES
FAIT 4 FOIS 86 NIBBLES
on?
J aeme nn eneeee nen eneee
22
Pom's n° 21
193
194
195
196
197
198
199
200
201
203
204
206
207
208
209
210
2u1
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
233
236
237
238
239
240
241
242
243
244
245
246
256
* READ
sae
READ
WAITDATA
WATTDATAL
WAITL
warT3
DATABLOC
DATABL2
18913
18915
13925
1B92F
25939
+ LET ON SECTEUR DE DATAS
DEPULS LE DISK ET STOCKE
DANS LES NIBBLE BUFFERS
wr
DEY
EQ
EDA
‘BPL
BOR
REEERRESSE &
sty
wy
RPL
sTY
wy
EPL
#520
RDERR
RDLTCH, X
WAITDATAL
#905
NAITOATA
RDLTCH, x
WAIT2
warTL
#556
RDLTCH, X
war7a
#3aD
WAITL
#300
COMPTEUR
RDLTCH, X
DATABL2
‘$BA00, ¥
COMPTEUR
NIBLBUF2, ¥
pazaatoc
COMPTEUR
RDLTCH, X
13918
$BA00,¥
NIBLBUF, ¥
18913
RDLTCH, X
13925
9BA00,¥
ROLTCH, X
1B92F
#908
RDLTCH, x
18939
5a
(LE 2ND D'ABORD DE HAUT EN BAS)
(LE 18R ENSUTTE DE BAS EN HAUT)
LTT OW DATA
BM FAIT, ATTEND LE PROLOGUE
DS/AA/AD
CE N‘BTAIT PAS SON DEBUT, ALORS
RE-LIT
ON ATTEND LE 2EME MORCEAU
‘IL EST FAUX 222
PREPARE LE COMPTEUR A 86 (S56)
PUIS LA FIN DE CE PROLOGUE.
C'EST CA?
LE PROLOGUE FST 10, AUTOUR pes
86 NIB.
QUI SERONT MIS DANS LE BUFFER
SECOND.
ST RANGES DE HAUT EN BAS
LECTURE D‘UN DATA DEPUIS LE
DIsK
JUSQU'A CE QU'IL SOIT
CONVENABLE
OU LE RANGE-T-ON CE NIBBLE ?
A CET ENDOIT DANS LE BUFFER
SCONDAIRE:
JZ EN RBSTE A LIRS,
ALLONs=Y
ALORS
DANS L'ATTENTE D'UN DATA
‘COWVENABLE
C'EST RATE,
CASE (1)
TL LOT MANQUE UNE
ON LE RANGERA OU CE NIBBLE ?
ICT DANS LE BUFFER PRIMATRE
OU ILS SERONT STOCKES DE BAS EN
HAUT
ON EN ver 256, SoZr 342 aU
TOTAL
LECTURE D'UN CHECKSUM
CE BYTE EST 700 MOCHE !
COMPARE AVEC CELUI CALCULE EN
CHARGEANT
ERREUR, ILS SONT DIFFERENTS !!!
OW LIT OW DATA
BOUK QU'TL EST LAID !
QUI DOIT ETRE LE DEBUT DE
L'EPILOGUE
ENCORE UNE ERREUR POSSIBLE
HEUREUSEMENT, CA SEMBLE ETRE
Bow...
ICT, ON S'ATTEND A UN SAA
C'EN EST UN ? (0/X)
LA LECTURE EST TOUT A FAIT
CORRECTE !!!
NON, ALORS ON LE SIGNALE,
PART...
eT ow
* RDADR : LIT LE CHAMP ADRESSE
(aan
RDADK
MISE A JOUR DU COMPTEUR
261
262
263
264
265
267
268
269
270
271
272
24
275
276
288
289
290
291
292
293
294
296
297
298
299
300
301
302
303
304
305
306
307
308
309
319
311
w12
313
ou
313
316
317
318
319
322
323
374
325
327
328
15948 ay
BNE
INC
BEQ
NAITOAT «LDA
BPL
warTDl
warro2
g
WAITD3 «= LDA
ADRBLOCK
ADRBLOC2
ADRBLOC3 LDA
* ATTEND $OE $AA ,L'EPILOGUE,
13988 LDA
BPL
oe
BNE
me
18995 LDA
BPL
oe
BNE
coorD cic
RIS
WALTDAT
COMPTEUR
RDERR
ADLTCH, X
WAITDAT
#805
rReae
ROLTCH, X
waITDZ
458A
WAITDI
#303
RDLTCH, X
warrD3
4596
NAITDI
#300
127
RDLTCH, X
ADRBLOCE
COMP TEUR
RDLTCH, X
ADRBLOCI
COMP TEUR
Tee, ¥
127
ADRBLOCK
RDERR
RDLTCH,X
19988
sue
RDERR
RDLTCH,X
15995
#9A8
RDERR
IL ¥ A EU TROP D'ERREUR !!!
LECTURE D'UNE DONNEE DU DISK
SEULEMENT SI ELLE NEST PAS
CONVENABLE
CA DOIT ETRE $D5 POUR LE
PROLOGUE
ERREUR, OW RE-ESSAYE
C'EST DON, ON CONTINUE...
LECTURE DU DEUXIEME OCTET D'UN
PROLOGUE
LE EME BIT DOIT BTRE A 0
LE PROLOGUE DU CHAMP ADRESSE:
DS/AR/96
RE-BSSAYE, MAIS C'EST PAS
ALbueaTe f
C'EST POUR LA PROCHAINE ETAPE
CETTE LECTURE DOIT DONNER $96
BT DONC
MARQUER LA PIN DU PROLOGUE
TOUT EST A REFAIRE...
LECTORE D'UN DATA
S'IL NEST PAS VALABLE
DEBUT DU COUAGE.
LE VOLUME, PISTE, SECTEOR,
CHECKSUM SONT
CODES SUR DEUX OCTETS DANS LE
cuane
ADRESSE. D‘OU LES 2 LECTURES...
+++SUITE DU CODAGE...
Tl ¥ AVATT $3 POUR LIRE LES 4
DowNEES
SI Y=0 VA QUAND MEME LIRE,
ARRETE A SEF
SI LE DERNIER (CHECKSUM) <> 0,
-ERREUR!
SINON, C=1
MAINTENANT, ON LIT
L'EPILOGUB.. .
CRT OCTET N'EST PAS DIGESTE
(ORNARKK)
S'LL L'EST, GA OLY ETRE $v
SINON, IL ¥ A ERREUR
EN FAIT, ON NE VA LIRE OU'UN
PARTIE DE
LIEPILOGUE: $DE/$AA/($EB)
LE CHAMP ADRESSE N'EST PAS BON
BONNE LECTURE !, PAS D'ERREUR
(cma)
+ SEEKABS:POSITIONNE LA TETE DE
* LECTURE SUR LA PISTE
’ DESIREE
SEEKABS TX SLOTNUM SAUVE LE NUMERO DE SLOT
STA TREY LA PISTE DE DESTINATION
ow cortaK ON ¥ EST DEJA ?
BEQ LB9FC Our, ALORS C'EST FINI.
LDA #00 ON MET A JOUR LE COMPTEUR
STA COMPTEUR
LB9AD LDA CURTAK ou on EST...
STA 127
SEC A QUOI ON RETIRE.
‘SBC TREN OU ON VA
Pom's n° 21
2
330
331
32
334
335
337
938
333
340
341
342
943
a4
345
346
347
348
349
350
351
357
354
355
356
357
358
359
360
361
362
364
365
366
367
368
369
370
im
372
373
a7
375
376
37
378
379
380
382
363
304
385
386
307
388
389
390
391
392
393
34
395
396
397
398
399
400
401
402
403
BEY LESEA IDENTIQUE, ALORS PHASE X OFF
‘BCS LB9CO ON EST TROP LOIN !
EOR SEF ON N'EST PAS ASSEZ LOIN
INC CORTRK ALORS PASSE A LA PROCHAINE
ISTE.
ace 1B9C5 70s PRIS
1899 ADC 4565
DEC CURTRK PASSE A LA PRECEDENTE PISTE...
1B9C5 (CMP COMPTEUR
RCC LROCR
LDA COMPTEUR
1B9cB ar 130c
BCS LB9D0
may
18909 sec PHASE X ON, LE BRAS VA BOUGER !
JSR LB9EE VA LE FAIRE CHANGER DE PLACE...
LDA DATAI, ¥ CHARGE LE DELAT
USR $BA00 ET VA ATTENDRE...
LDA 127
cc C=O -> PHASE X OFF
JSR LB9F1 VA LA METTRE OFF CETTE PHASE
Hoan.
LDA DATA2, ¥ CHARGE UN DELAI POUR LES
NOUVEMENTS
DU BRAS, ET EXECUTE-LE...
IL EN RESTE ?
IL FAUT ENCORE VERIFIER (TJS
pRrs)
* BOUGE LA TETE DE LECTURE
LB9EA JSR WAITARNOV ATTENTE...
cue C=O DONC PHASE OFF
2B 9BE LDA CURTRK
1B9E1 AND #303 N* PISTE: 000000xx -> NUMERO DE
PHASE
ROL Q0000xxC (C=0 :OFF , C=l :ON)
ORA SLOTNUM AJOUTE LE NUMERO DU SLOT
TAX
LDA PHSOFF,X MET ON OU OFF LA PHASE REQUISE
IDX SLOTNUN REPREND LE NUMERO DU SLOT
BEC RIS
* BOUCLE D'ATTENTE POUR LE
* MOUVEMENT DU BRAS EN UNITES DE
* 100 MICRO SECONDES
ORG $BA00
cag $8a00
WAITARMOV LOX 4$11 2 cYcLes
wreeey DEX 2 crcLEs
BNE WIRMV 3 CYCLES => (243) #15+242=79
crcies
INC MONTIME JL VOLT ¥ AVOIR LE COMPTEUR DE
TEMPS
‘BNE WIRMV1 QUI SE TROUVE DANS L'IOB (6+3 =
9 cre.)
INC MONTIME+I
wreevi = SBC 2 crcLes (92)
$8C #501 4 CYCLES (96)
SOIT TOUJOURS A LA FIN ENVIRON
100 psec
BNE WAITARMOV
a
+ WRTFORM: FCRIT LE CHAMP ADRESSE
‘* PENDANT L'INITIALISATION.
ORG $8C56
087 $8C56
RRIFORM = SBC
LDA WRLTCH,X TESTE S'IL Y A PROTECTION A
L'ECRITURE
LDA RDMODE, X
BMI WRITE IL Y EN A UNE, ALORS ARRETE
LIOPERATION
LOA 4SEF DEBUT DE L‘AuTO-
404
405
406
407
408
409
420
412
412
413
414
415
416
47
418
419
420
422
422
423
424
425
426
au
nn
442
403
498
445
446
448
449
450
451
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
a7
472
473
SINCHRONISATION. . .
CELA PERMET D'ECRIRE
‘L'ACCUMULATEUR
STA WRMODE, X
Que RDLTCH, x
PHA LIAPPLE VA TROP VITE POUR LE
DRIVE, Ib
PLA NE FAUT PAS L‘OUBLIER !
* ECRIT LE PROCHAIN NIBBLE D'AUTO
* SYNCHRONISATION. IL ¥ EN AY...
werr3 JSR WRITEND == 2°12 pS. D‘ATTENTE.
JSR WRITEND
STA WRLTCH,X WRITE LOAD
CMP RDLTCH,X WRITE AYTE
we
ver AU PROCHAIN NIBBLE
BNE WRITS ‘SIL EN RESTE...
LDA #8D5 ECRITURE DU PROLOGUE DU CHAMP
ADRESSE
aR wvIDLD CONSTITUE DE $D5/$AA/396
LDA 432A
SR WYIBLB
LOA #596
JSR WWIBLB
LDA voL PUIS CONNE L'USAGE LE VEUT, IL
nur
JSR NBYTE ECRIRE LE VOLUME, LA PISTE, LE
SECTEUR
LDA TRKNO
SR wOYTE
LDA SECTNO
USR WBYTE
LDA VOL OW FAIT LE CHECKSUM DU VOLUME,
BOR TRENO DU NUMERO DE PISTE
BOR SECTNO DU NUMERO DE SECT.
PHA OW LE SAUVE POUR USAGE
ULTERLEUR
ISR PUIS ON CONTINUE LE CODAGE
RA BUFPTR ON A ALORS LE 1ER OCTET DU
cHncKsi
STA WRLTCH,X QUE L'OW ECRIT...
LDA ROLTCH,X
PLA REPRENDRE LE RESULTAT
PRECEDEMENT SAUVE
CRA BSAA POUR ORTRNTR LE 2EME OCTET DU
CHECKSUM
JSR NNIBLA (1a 2 OCTETS DANS LE CHAME
ADRESSE}
LDA #SDE PUIS ON FINI ENFIN PAR
LARP TLOGUR
SR wvTDLD
LDA FAA UN EPILOGUE, C'EST $DE/9AA/9EB
SR WWIBLB
IDA ASE
SR WNTRIB
ac
errs LDA RDMODE,X ON S'ARRETE D‘ECRIRE
LDA RDLTCH,X
WRITEND RIS ET ON RENTRE.
seyre Pan ROUTINE QUT RCRIT UN OCTET EN
DOUBLE
Ise CODE LES INFO. ADR. EN BITS
PAIRES ET
ORA BUFPTR IMPAIRES, ET LES ECRIT TOUT LES
32 psec
STA WRLTCH,X WRITE LOAD
GME ROLTCH,X WRITE BYTE
PLA
me UN NOP PREND 2 CYCLES
=e DONC ON ATTEND 6 CYCLES.
woe
RA FSA $aa = $10101010
WIBLA Me
WWIBLE | NOP
PHA
PIA
STA WRLTCH,X —_ECRIRE LE DEUXIEME OCTET
ow KULTCH, x
RS
Suite de RWTS page 26 >
Pom's n° 21
OFFRES SPECIALES BOUTIQUE IEF
Pour les LECTEURS de POM’S
EXTENSION MAC
Extension 128 K 4 512 K pour MAC
Garantie 1 an I.E.F.
Prix spécial lecteur POM’S 3 362 Frs H.T
3.990 Frs T.T.C
(Nous consulter pour extensions supérieures)
FLOPPY DISK _ cuinon
©4811
5” 1/4 compatible Apple Ile et Ilc sme cs
* 160 Ko sous DOS spécial
* ultra silencieux
© detection de piste O par photo détecteur
vitesse ultra Stable par moteur a entrainement direct
DRIVE seul :990 Frs H.T
1174 Frs T.T.C
DRIVE + cable : 1 080 Frs H.T
1 280 Frs T.7.C
DRIVE + cable + boitier;1 172 Frs H.T
1390 FrsT.T.C
(prix par quantité sur demande)
1/2 hauteur « haute fiabilité « garantie 1 an
Ce lecteur de disyuette a été homologué
par la FRAMIF, 'Aérospatiale, le club Thomson, etc...
P R Oo M os = (Urgent quantité limitée)
- Carte 80 colonnes étendue 990 Frs T.T.C
- Disquettes 51/4 9,90 H.T par boite de 10 (11,75 Frs T.T.C)
— Moniteurs 12” haute résolution vert 990 Frs T.T.C
— Promo IIc Noel : Apple Il¢ + Moniteur + Souris + Logiciel :9 990 T.T.C
— Promo MAC Noel: MAC étendu 4 512 K:19 990 Frs T.T.C
BOUTIQUE I.E.F. : 403, rue de Vaugirard (porte de Versailles) 75015 PARIS Tél. :48.28.06.01
Nom: eit Prénom: Tel:
Adresse:
Société: .- " Profession:
Je passe commande de:
O Extension MAC a 3 990 Frs T.T.C O PROMO
[1 Floppy Apple modéle ..... ais . 28
Je joins un chéque d'acompte de 20% soit: ....
PIT
Pom's n° 21 25,
RWTS 2
(Assembleur BigMac)
at)
SReS BRAYSYRYRARONVNY
BINSSREGRRLRKESSssRazar #8 es
NY Negeqana
‘ rsx rr ‘
4 READ/WRITE TRACK-SECTOR .
. ($8000. BEAE) ,
. .
* © PAR APPLE COMPUTER *
* ’
¢ DBSASSEMBLE PAR P. NEVEU *
*
one $p000
ops $6000
MOTOROFF QU $C088
ETEIND LE MOTEUR
MOTORON = -FQU $c0B9 ALLUME LE MOTEUR
DRVOEN QU $COBA BRANCHE LE DRIVE 1
DRVIEN = BQU $c08D DRIVE 2
ROLTCH = BQU $C08C SWITCH DE LECTURE DATA
WRLTCH = BQU $c0aD SWITCH D'ECRITURE DATA
ROMODE = BQU $CO8E SWITCH POUR MODE LECTURE
wRMODE = EQU $COBF ECRITURE
PHSOEF = -EQU $C080 ZONE ALLUMANT OU ETEIGNANT LES 4
PHASES
* ( $c080.c087 )
PRENIBL QU $B800 NIBBLELIZE POUR ECRIRE APRES.
WRITE: FOU $RA2A CRIT LES RUPFERS PRIMATRE +
SECONDAIRE
POSTNIBL © EQU $B8C2 DECODE 342 NIBBLES EN 256 OCTETS
READ ‘QU $BEDC LIRE UN SECTEUR DU DISK ->NIBBLE
BUFFER
RDADR Bou $8944 LIRE LE CHAMP ADRESSE
SEEKABS QU $B9R0 TETE DE LECTURE SUR LA PISTE
DESIREE
WAITARMOV EQU $HA00 ATTENTE POUK MOUVEMENTS DU BRAS
DSKFORM —EQU $BEAF ROUTINE DE FORMATAGE
DRVOTRK = EQU $0478 TOUT CELA SE TROUVE CACHE DANS L
DRVITRK = EQU SO4F8 TROUS DE LA PAGE TEXT
slor BQU $05Fe LE NUMERO DE SLOT
cURTRK = EQU $0478 LE NUMERO DE LE PISTE ACTUELLE
SEBKCNT = BU $06K8
RETRYCNT QU $0578 LE COMPTEUR D'ESSAIS
roapt, Fou $48 LIADRESSE DR LA TABLE TOR
MONTIME == -EQU $16
rosPHt QU IOBPL+1
PIRSDEST QU $3C
DEVCTBL —_EQU PTRSDEST
cu BOU $2c
SECT EQU CSUM+I LE NUMERO DE SECTEUR
TRAN EQU $2A PISTE DE DESTINATION
DRIVND = BU $35 LE NUMERO DE DRIVE
TRACK QU SECT+1 LE NUMERO DE LA PISTE
VOLUME = EQU TRACK+1 LE NUMERO DE VOLUME DU DISK
COMPTRUR FOU $26 POUR LF RUFFER SECONDATRE
TBDEAR ——-BQU $40 ERR! UNE CHOSE ANORMALE 5'EST
PROOUITE
IBvee =—-EQU $20 ERR! LES VOLUMES LUS / VOULUS
DIFFERENT
IBNPER ——-EQU $10 ERR! DISK PROTEGE CONTRE L'ECRIT(
STY ToaPL AVANT D'ENTRER, ALY POINTENT SUR
Lice
STA ropeH
a
“4
w
7%
“
79
SQSReLSe
Syegaueesss
105
106
107
108
109
110
un
uz
113
ua
us
116
u7
ue
29
120
121
134
136
137
138
139
140
141
142
143
4
445
146
147
148
149
oy #02
STY SEEKCNT
py #304
STY $04F9
zy #1
LDA (IOBPL), ¥
TAX
Loy #$0F
CHARGE LE NUMERO DE SLOT
CHARGE LE NUMERO DU PRECEDENT
SLOT, COMPARE
CME (1OBPL),¥
By SAMESLUTC
ST LE MEME, PAS DE PROBLENE
* ON UTILISE UN NOUVEAU SLOT.
* ATTENDRE L'ARRET DU DRIVE.
* POUR LE SAVOIR, OW LIT LES
* DATAS DU DISK, ILS DOIVENT ETRE
* LES MEME PENDANT AU MOINS 9
* MICRO~SECONDES
TA SAUVE LE NOUVEAU NUMERO DE SLOT
PHA
EDA (IOBPL),¥ CHARGE LE ‘VIEUX*
TAK
PLA
PHA
STA (IOBPL),Y SAUVE LE NOUVEAU
LDA RDNOOR,X — METS~TOI EN MODE DE LECTURE
STILLON —_LDY 4908 LES DATAS DOIVENT RESTER STABLES
LDA RDLICH,X PENDANT 96 ySec
NOTSURE CMP RDLTCH,X LES DONNEES CHANGENT ?
BNE STILLON GBbi on
DRY
BNE NOTSURE STABLE DEPUIS SUFPISAMENT DE
rTeses 7
* LE PRECEDENT DRIVE EST ETEINT MAINTENANT
PLA REPRENDRE LE NOUVEAU NUMERO DE
DRIVE
TAX
* ON TESTE SI LE MOTEUR EST ALLUME,
SI NON, ON LE DEMARRE
SAMESLOT LDA RDMODR,X ON SF MET FN MODE LECTURE
LDA RDLTCH, x
Bor #908
SSLOT1 LDA RDLTCH, X
PHA ON ATTEND ENCORE UN PEU AVANT DE
RELIRE
PLA
PUA
PLA
ST SLOT DELAI, ET CA PEUT ETRE UTILE PLUS
TTARD
CMP RDLTCH,X —-VERIPIE SI CA MARCHE
BNE SSLOT? (A TOURNE, LES DATAS ON CHANGE!
ex CONTINUE A ATTENDRE QUE CA CUANGE
BNE SSLOT1 ST CE N°EST PAS FINI
SSLOT2 PHP SAUVE LE RESULTAT DU TEST
LDA MOTORON,X ALLUME LE MOTEUR
py 46 COPTE TOUS LES POTNTEURS
PTRMOV LDA (IOBPL), ¥
STA PIRSDEST-6,¥
nr
cPY #50A ILS SONT TOUS COPIES ?
BNE PTRMOV
Loy 4503
LDA (PTRSDEST), ¥
STA $47
Loy 42 MAINTENANT, AU TOUR DES PARAMETRES
LDA (IOBPL),Y DRIVE 1 ov 2 ?
py 4$10 C'EST LR MEME DRIVE QUE CRLUT
ormrse
CMP (IOBPL),¥ — AUPARAVANT ?
BEQ OK OUI, PAS LA PEINE D'ATTENDRE LE
MOTEUR
STA (IOBPL},¥ MAINTENANT, ON UTILISE CE DRIVE
PLP SIGNALE QU'IL ETAIT ETEINT (TEST)
oy 4390
PEE
a ROR
BOC OKI C=0 ; DRIVE 1 UTILISE AVANT
LDA DRVOEN,X ENGAGE LE DRIVE 1
BCS DRVSEL C=1 : DRIVE 2 UTILISE AVANT
26
Pom's n° 21
150
151
152
153
154
155
156
157
158
159
160
162
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
164
189
186
187
188
169
191
192
193
194
195
196
197
198
199
201
202
203
205
206
207
208
209
210
211
212
213
214
715
a7
ag
on
DRVSEL
‘LDA DRVIEN, x
ROR DRIVNO
PIP
PEE
BNE DRVSEL2
Loy #7
DRVSELI JSR WAITARMOV
BNE DRVSEL1
20x $0568
DRVSEL2 LDY #4
EDA (IOBPL), ¥
JSR MYSEEK
PLE
BNE TRYTKR
Lpy $47
BPL TRYTRK
* LE MOTEUR ETAIT ‘OFF,
MoTOr apr #$12
CONWAIT DEY
BNE CONWAIT
INC MONTIME
BNE MOTOR
ANC mowrise'+1
BNE MOTOR
ENGAGE LE DRIVE 2
SAUVE LE NUMERO DE DRIVE UTILISE
DANS C
BOUCLE D‘ATTENTE
CHARGE LA PISTE
‘©? VAS-¥
LE MOTEUR ETAIT ALLUME ?
S41 QUI, Nt PAS ATTENDRE
ATTENDRE QU'TI PRENNE DE LA VITESSE
DELAI DE 100 MICROSECONDE A CHAQUE
Fors
4 LE DISK EST A LA BONNE VITESSE,
+ OW PEUT LIRE...
4 ST CE N'EST PAS LA COMMANDE DE
* PORMATAGE, LOCALISER LE SECTEUR
* CORRECT POUR L'OPERATION
TRYTRK = -LDY #S0C
LDA (1OBPL), ¥
BEY GALLUONE
cM #504
BEQ FORMDSK
ROR
PIP
BCS TRYTAK2
PRENIBL
#830
RETRYCNT
LDx SLOT
‘TRYTRK2
BCC RUKIGHY
DEC RETRYCNT
TRYADR
CURTRK
‘TRYADR2
TRYADR? LNA
‘LDA #360
JSR SETTRK
DEC SEEKCNT
BEQ DRVERR
LDA 44
STA $04r9
‘EDA #300
JSR MYSEEK
PIA
ISR
oocar. MYSERK
OME TRYTRK2
PRENDRE LE NUMERO DE CODE DE LA
COMMANDE
Sd C'EST ZEKU, C'EST TERMINE. ..
FORMATE LE DISK ?
EH OUI !
(@=1 POUR LIRE, C=0 POUR BCRIRE
A SAVER
POUR L"ECRITURE,
NIBBLES.
ON VA DONC EN FAIRE...
SEULEMENT 48 ESSAIS
‘Ib FAUT DES
MET LE NUMERO DE SLOT DANS X
LIRE LE CHAMP ADRESSE
HMM ! GA PASSE POUR CETTE FOIS...
SAUVE LA PISTE QU'ON vEUT
ON RE-CALIBRE ENCORE !
VA SUR LA PISTE 0
RT CETTE FOIS-CI VA A LA PISTE
conREcTE
* LE CHAMP D'ADRESSE EST BIEN LU
* S'ASSURER QUE C'EST LA PISTE,
% SECTROR RT LE VOLUME VOULI.
RORIGHT — LDY TRACK
CPY CURTRK
BEQ RITRK
ON EST A LA BONNE PISTE ?
SI OUI, C'EST BIEN
* LE DRIVE ETAIT SUR ONE PISTE
* DIFFERENTE. BSSAYE DE
* RECALIBKER A PARTIR DE CETTE
29
230
231
239
ma
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
a
272
273
214
275
276
277
278
zy
297
301
302
303
304
305
306
307
308
309
310
311
* piste.
LDA CORTRE
PHA
TxA
JSR SETTRK
PIA
DEC $04F8
BNE GOCAL
BEQ TRYADR3
PLA
LDA #IBDERR
PIE
IMP HNDLBAR
BEQ ALLDONE
UMP DSKFORM
* LE DRIVE EST SUR LA BONNE PISTE,
RITRK zor #3
LDA (1O8PL), ¥
PHA
LDA VOLUME
LDY #505
STA (10BPL),¥
PLA
BEQ CORRECTVOL
CMP VOLUME
BEQ CORRECTVOL
LDA #1BVIME
BNE IMPTO1
CORRECTVOL LDY 45
LUA (108PL), ¥
TAY
LDA $BFB8, ¥
CMP $20
BNE TRYADR2
* CORKECTSECT:
PIP
BOC WRIT
JSR READ
PHP
BCS TRYADR2
ew
1px 40
STX COMPTEUR
JSR POSTNIBL
LDX SLOT
cue
HEX 24
HNDLERR = SEC
mpy #$0n
STA (IOBPL), ¥
LDA MOTOROFE, x
Rs
JSR WRITE
‘BCC ALLDONE
LDA #TAWPER
BCS HNDLERR
meer
SAQVE LA PISTE DE DESTINATION
ON VA RECALIBRER
SINON, ON VA TOUJOURS ICI
ON RETIRE LA PISTE ACTUELLE
ERREOR !
VERIFIE LE VOLUME
C'EST UN DISK ACCEPTABLE ?
REPRENDRE LE VOLUME ATTENDU
TOUS LES VOLUMES SONT ACCEPTES
C'ETAIT LE BON VOLUME
CHARGE LE CODE DE L'ERREUR
TOUJOURS PRIS
VERIFIE SI C'EST LE BON SECTEUR
ClEST PAS CA!
Cel : LIRE, C=0 ECRIRE
ALORS VA DONC LIRE.
SAUVE LE STATUS DE LA LECTURE
MAUVAISE LECTURE
ON VA DECODER TOUS LES NIBBLE POUR
AVOIR DE BEAUX OCTETS UTILISABLES
C'EST QUEL SLOT AU FAIT ?
AVEC LE PROCHAIN OCTET CA FAIT UN
‘arr’
INDIQUE UNE ERREUR
DONNR TTT LF NUMERO D'ERRFUR
ARRETE LE MOTEUR...
VA ECRIRE LES NIBBLES MAINTENANT
PAS D'ERREUR.
FRREMR ! HORRROR !
* C'EST LA ROUTINE QUI CHERCHE LA PISTE N DANS LE SLOT X/16
* IF DRIVNO<O THEN DRIVE 0
* IF DRIVNO>0 THEN DRIVE 1
MysteK PLA
bby #301
LDA (DEVCTBL), ¥
RRR
PIA
‘BCC SEEK
ASL
USK SEER
LSR CORTRK
RIS
STA TREN
JER xTOY
LDA DRVOTRK,
BIT DRIVNO
BMI WASDO
LDA DRV1TRK, ¥
STA CURTRK
LDA TRIN
SEEK
CEST UN DISK A 2 PHASES ?
CARRY = NOMBRE DE PHASES
1 PHASE PAR PIsTE |
SAUVE LA PISTR DR DRSTINATION (#2)
MET Y ~ NUMERO DE SLOT
‘SI MOINS, DRIVE 1
C'EST OU ON SE TROUVE
ET GA, OU ON VA
Pom's n° 21
ZT
312 BIT DRIVNO 326 SETTRK PHA
313 BMI ISDRVO 327 LDy #502 CHARCE LE NUMERO DE DRIVE
14 STA DRVITRK, ¥ 328 LOA (TOBPL),Y
m1 BEL GOSEEK TOUJOURS PRIS 329 ROR MIS DANS CARRY
316 ISDRVO «STA DRVOTRK, ¥ 330 ROR DRIVNO DANS DRIVNO
317 GOSEEK = JMP SEEKABS REMUES-TOT 331 JSR XTOY
318 xTOY TA TRANSFERE X/16 DANS ¥ 332 PIA
319 ESR 333 ASL
320 LR 334 BIT DRIVNO
321 ISR 335 ‘BML ONDRVO
322 sR 336 ‘STA DRVITRK, ¥
323 TAY a7 BPL SETRIS
324 RIS 338 ONDRVO = STA DRVOTRK,¥
325 339° seats «RIS
3 LDA #$AA
RWTS 3 % snes
. 60
(Assembleur BigMac) a iy 1856 NETTOIE LE BUFFER SECONDATRE
pramwo
@ 10a #900 OW COMENCERA PAR LA PISTE 0
1 eB ‘STA TRKNO
2 4 =CLNIBUF STA NIBLBUFI1,Y REMPLIK VE $00...
3 6 DEY ‘DE HAUT EN BAS POUR LE SECOND
+f * 66 BNE CLNIBUF PASSE AU PROCHAIN...
3 ¢ DISK II * 67 CLNIBUF1 STA NIBLAUF,Y PUTS FAIT LE PRIMAIRE
© * PURMATEUR SEIZE sEcrEURS +
7 * ($BEAF .BFAG) > co ver EGALEMENT.. ~
@? * 69 BNE CLNIBUF1 JUSQU'A CE QUE CA SOIT TEKMLNE.
oq ¢# * 70
20 . © PAR APPLE COMPUTER. * n LDA 4#$50 $50 = 80
m+ : 2 JSR SETTRK
12 * DESASSEMBLE PAR P. NEVEU 2 3 LDA #328 928 - 40, NOMBRE DE SYNC.BYTES
Be * “ STA SYNCOUNT
5 76 * VA CHERCHER LA PISTE DESIREE
16 7
ra 78 ‘TRREORM LDA TRKNO—==PREWORE LE NONERO DE LA PISTE
a one sacar DesiRes
19 ops $8000 "9 ‘JSR MYSEEK SE METTRE AU DESSUS
20 80 JSR TRKWRT VA FORMATER LA PISTE EN QUESTION
21 taeaneene enw nnennman ass aaaaee a LDA #508 CHARGE UN CODE D‘ERREUR AU CAS
2 a
23 * LABELS a2 BCS ERROR ‘S'IL ¥ A BU UNE ERREUR (C=1)
a 8 10a #830 4a wees sco Peels
(250 teeeaa ase aaaaaeemewenecesesssss= a ‘STA RETRYCNT ‘SE LE RAPPELER !
2% 85 LBEES SEC C=1 AU CAS OU ON NE POURRAIT
27 12D Fou $20 CONT INUFR
20 purem BQ” $36 POIVEE SUR LA PAGE DF BUFFER DE 06 DEC RETRYCHT —‘TENTE DE RE-ESEAYER
TRAVAIL 7 BE ERROR (MAIS C'EN EST TROP
29 =~ =SECTNO BQU S3F NUMERO DE SECTEUK a8 ‘USK -KUADK ‘SINON, LIT LE CHAMP D'ADRESSE
30 ve EQU $41 NUMERO DE VOLUME 89 BCS LBEES RE-ESSAYER SI C'EST RATE
31 TRKNO EQU $44 NUMERO DE PISTE %” LDA L2D
32. SYNCOUNT = FOU $45 2 BNE LBEES ERRRUR ?!
3 reset. Bou 448 ADRESSE De LA TABLE 108 2 Jee READ pore 277 ta noers ‘naa masse
” ra Bes 1a5e5 0st "EST RATE
RETRYCNT = EQU $0578 CUMPIBUK D*ESSAIS ct INC TRKNO PASSE A LA PROCHAINE PISTE
36° «=WRITE EQU $B82A ECRIRE LES NIBBLES DES BUFFERS S LDA TRKNO
‘37 = READ BOQU $B6DC LIRE UN SECTEUR ET STOCKE LES 9% CMP #523 34 PISTES DEJA ?
Piotr ° pce meron cs, ‘cor CONTINUE
Rn «Baw ensee Lr Le Guam aveses we me 22, awone 1p prox tor Per, ‘ame
= pois
40 * LE NIBBLE BUFFER: $88U0.8C55 wy ‘BCC DSKDONE TUS PRIS
4a 100 ERROR Loy #$0D MET LE CODE D'ERREUR
42 =NIBLBUF BOU $BB00 ADRESSE DE DEBUT DU BUFFER PRIM 101 STA (IOBPL),¥ DANS LA TABLE IOB POUR ETUDF
© wipiaort Bo sBorF ULgER TERE
44 Nipinue2 boy $0¢00-—=—CADRESSE_DE DEBUT DU BUFFER oe ec See ere
‘SECONDAIRE 103 \DSROOME © LUA mUrEMOeY, x: ETELNT 18 NOTEOR
45° WRTFORM = EQU SBC56 CHAMP ADRESSE PENDANT 104 RIS ET RETOURNER D'OU ON VIENT...
L'‘INITIALISATION 105
46° © MYSEEK QU SBESA (CHERCHE LA PISTE 106
farm eames 107 memmr LA #600 comesncs AU 1n0 sncrson De ta ersea
mm 100 STA scr ==. “ENRBOLSTRER
49 = «=MOTOROFF 8 EQU $cO8é ETEINT LE MOTEUR 109 Lvr #380 128 SELF.SYNC A ECRIRE
50 0 ‘BNE LBFI7 ‘TJS PRIS
‘Sl 111s LBFI5 LDY SYNCOUNT
2 112 1aF17 age merroRw VA ORIRE Le chine D'ADRESEE
= 13 bes tore? peacom !
a ia JSR RRITE VA ECKING LE CONTENU DES BUFFERS A
2 sro wor #503 PREND LE VOLUME DESIRE bay
56 LDA (IOBPL),¥ us ‘BCS LBF87 HORREUR !!
57 ‘STA VOL STOCKE-LE ICI 116 INC SECTNO PROCHAIN SECTEUR
Pom's n° 21
117 LDA secmH0 oN EN EST Ov EXACTEMENT ? 163 BNE vereRRI
ue ow #910 16 scemeURS DEVA ? 204 JSR READ BT VA LIRE LE CUNMP DATA
us BoC LBFIS PAS ENCORE, ON CONTINUE 163 BCC TRENRT Ih N'Y A PAS D'ERREUR, SAUTE...
zu 166 VRFERR1 DEC RETRYCNT
21 Loy #$0F IL Y A 16 SECTEURS A MARQUER 167 BNE LBF71 ON PEUT RE-ESSAYER
122 STY SECTNO 168 SEC PLUS D'ESSAI A FAIRE, C'EST RATE
123 nna #830 48 ESSATS MAXIMOM SONT AUTORISES 169 1BFS7 RIS ALORS RENTRE A LA MAISON
124 STA RETRYCNT —STOCKE-LE POUR NE PAS L'OUBLIER 170
125 1er32 STA CARTE,Y —-Y ‘METIRE DES $30 AUSSI. 171 * ROUTINE QUI MARQUE LA CARTE DES
26 bey 16 EN TOUT 172 > =+* SECTEURS INITIALISES LORSQU'UN
127 BPL LBF32 PAS UN DE MOINS ! 173° * SECTEUR EST VERIFIE
128 1m”
29 Loy Sywcomr —-ATTENDRE SELON syNconNT 275 scmmap DY 12D
130 1BF3A JSR LBFE7 12 excuse 176 LDA CARTE, ¥ CHARGE POUR VOIR...
131 JSR LaF8? +12 crcuss 177 BME VRFERR IL ¥ A ERREUR, C'EST NEOATIF !
132 JSR LBF8/ +12 CYCLES 178 LDA #$FF C'EST BON, ON VA Y METTRE $FF
133 PHA + 3 CYCLES 179 STA CARTE, Y VOILA, C'EST FAIT
134 ‘PLA + 4 CYCLES 180 ‘DEC SECTNO AU PROCHAIN SECTEUR
135 nce + 2 cveues 182 BPL VRFYIRK «= -ET VERIFIE LES TOUS
136 bey 12 cvoues 162 LDA TRKNO ON EN BST A QUELLE PISTE ?
137 BNE LBF3A + 4.51 PRIS, SULT 51 AU TUIAL PAK 183 wine LEAS PAS A LA DERNIERE EN TOUT CAS
TOUR 184 LDA SYNCOUNT
138 185 cM #$10
139 JSR RDADR VA LIRE LE CHAMP ADRESSE 186 BCC LBF87
140 Res LRP71 ST Tt YA UNE ERREUR 187 Dec syncomr — sf SYNe.comvT > 16
7 Lon 12D LECTURE CORRECTE, ON EST AU 160 Dee s¥NcounT
SECTEUR 0? 109 LEAS Cl C'EST FINI, ET SANS ERREUR
142 BEQ VERIFY OUI, ALORS VERIFIE 190 ‘RTS
143 LDA #$10 NON. 191
4 (CMP SYNCOUNT 192 * CETTE CARTE COMMENCE EN SBFA8
445 LDA SYNCOUNT 193 * ET CONTIENT LES SECTEURS
MG sac #301 194 * INITIALISES:
47 STA SYNCUUNT 4195 * $30 AVANT, $FF APRES.
M7 CMP #$05 196 * ( $BFA8.BEB7 )
49 BCS LBF71 197
150 sec 198 caRTE = BU *
151 Rrs 199
152 200 1st OfF
153° VREYTRK USK ROAUK VERUEIE LE CHAMP ADRESSE zu
154 BCS VRFERR Ib ¥ A EO ONE ERREOR 202 stbssnsesessesossaveceossnsensars
‘155 VERIFY JSR READ VERIFIE LE CHAMP DATA 203 * 7
156 BCC SCTMAP PAS D'ERREUR, SAUTE PAR DRSSUS 204 * SOURCES: $
157 VRFERR DEC RETRYCNT RE-ESSAYE DEPUIS LE DEBUT 205 * x
157 BNE VREYTRK 206 4 * -BENEATH APPLE DOS «
159° LBF7I JSR RDADR LIRE L& CHAMP ADKESSE 207 * -POM'S 9 me
160 BCS VRFERRI ERREUR SUR LE CHAMP ADRESSE ! 208 4 4* -CALL APPLE : ALL ABOUT DOS i
161 LDA 12D 209 * +
162 cw §S0F 210 seeeeessseseensuesssssssssssesses
Vous avez un Apple //e avec Chat Mauve ou un IIc ?
Vous disposez de Pascal 1.2 ?
° xk
Profitez de l'interpréteur COGO
e 3 Par Nicolas Montsarrat
I s'agit d'un systéme graphique double-haute
résolution écrit en Pascal.
COGO vous permet de manipuler des graphiques Ce programme, destiné 4 résoudre des problémes de
grace a un langage de description des objets _ géométrie plane, comporte des instructions de
- points, angles- et 4 l'emploi de fonctions primitives _ stockage sur fichier afin de permettre la reprise
de manipulation trés puissantes : cercle, tangente, dun calcul.
intersections, paralléles, etc. Il est ainsi possible ‘
de tracer des grilles, des cercles, des segments de NB: Sur l'Apple //c, l'affichage se fait en simple
droite, des tangentes communes a deux cercles, de _ haute résolution.
calculer des distances, des angles...
L’€diteur permet une saisie rapide du langage.
Pein reece & 150,00 F TTC, franco
a Saisie iter mise au int, OU
plows snag litee eee oD Bon de commande page 74
au sein d'un programme,
Pom's n° 21
29
Ce programme vous permet de décrypter des secteurs codés.
Il contient différents algorithmes qui ont chacun pour
fonction, d'une maniére différente, d'effectuer le décodage
d'informations cryptées. Il vous offre ainsi la possibilité de
voir afficher en clair du texte codé mémorisé 4 un
emplacement donné. Ceci est particuliérement utile, par
exemple pour voir afficher les textes de nombreux jeux
d'aventure, dont les réponses sont la plupart du temps
cryptées par les auteurs du logiciel.
KS Pag
SS SS PSPS PD SPR, x
LPCCPY UE LI
Paul F iit
Attention : cette fonction ne
vous est procurée que pour vous
permettre de profiter au maximum
de vos logiciels d'aventure, en
permettant d'aller plus avant grace
a l'aide fournie par le décodage.
Au lieu d'en rester aux trois
premiéres images du jeu, vous
pouvez aller beaucoup plus loin et
profiter bien plus pleinement de
votre logiciel d'aventure. En
aucun cas cependant, vous ne
pouvez utiliser cette capacité de
décryptage en portant atteinte aux
droits des auteurs du logiciel que
vous étes parvenu a décrypter.
Il existe bien entendu d'autres
utilisations possibles de ce logiciel
dont le mode précédent ne
constitue qu'un exemple : il vous
est ainsi loisible d'appliquer des
techniques de décodage a n'im-
porte quel texte, qu'il s'agisse de
fichiers, de programmes, ou d'in-
formations quelconques. Vous
pouvez également vous livrer au
plaisir du décodage, en tant
qu'exercice intellectuel.
D'autre part, le programme vous
permet également d'effectuer des
vérifications sur des informations
que vous avez préalablement
codées, et de vous assurer que le
cryptage est correct.
Une fonction particuligre permet
par ailleurs de voir afficher trés
rapidement la totalité des carac-
téres d'un secteur, sur l'écran de
l'Apple; il est ainsi possible d'ob-
tenir une vue d'ensemble de ce
qui se trouve sur la totalité de la
disquette; ceci vous permet
notamment de déterminer 4 quels
emplacements se trouvent les
informations cryptées et celles qui
ne le sont pas.
Joi
q’emP
Mod
Au début, vous choisissez une
iste et un secteur a décrypter;
lorsque cette sélection est faite,
vous entrez immédiatement dans
l'écran de décryptage, qui offre
une vision compléte des 256
caractéres présents dans le secteur
choisi.
Note : si le code du caractére est
celui d'un caractére de contréle,
un point est affiché 4 la place du
Te.
A droite et en haut du texte
apparait le filtre, élément fonda-
mental du décryptage que vous
allez ensuite appliquer au texte, et
qui se compose de trois parties :
octet 1, octet 2 et octet 3.
En bas et a droite se trouvent deux
mémoires, MEM1 et MEM2, qui
seront ensuite utilisées par
certains algorithmes.
En bas et a gauche de I'écran
apparait la commande, en carac-
téres inversés. Vous sélectionnez
les commandes 4 l'aide des
touches "fléche a droite”, "fléche
a gauche", et "Return".
Faites votre choix & I'aide des
deux fléches, et validez la com-
mande choisie avec un "Return".
Programme
DECR.SOURCE
(Assembleur Lisa 2.5)
NDLR: les numéros de ligne non
affectés correspondent 4 des lignes
vides ("44 ; ", par
exemple).
1 NLS
2 WNOLET EPZ $20
3 WNOWDTH EPZ WNOLFT+S1
4 WNOTOP —EPZ WNOWDTH+S1
5 WNOBTM —EPZ WNDTOP+S!
6 cH RZ $24
ro EPZ CH+S1
A CKSH = REZ S38
10 spnAYT PZ SFI
21 WARMST — EQUI $300
12 cost —fQt! $302
23 INTDOS QU $3EA
24 SOPTEV QU $3F?
15 IRQLOC
16 KBD
17 KBOSTRE
18 SPKR
19 TRTCLR
20 TXTSET
21 MIXCLR
22 LOWSCR
23 MISCR
24 roRRs
25 HIRES
26 sTROUT
QU $3PE
BQU $co0o
OU $c010
B0U $c030
ou $c0S0
EOU TXTCLR+S1
QU TXTSET+S1
ROU MIXCIRES?
FOI LOWSCRESI
FOU MIScR+$1
EQU LoRES+$1
QU SNR
27 RMD FOU SEFAE
28 PRNTYX QU $940
29 PRNTAX FOU $P941
20 PRBLK2 QU SPO4A
31 RASCALC QU $FBCI
32 BS Bou $Fc10
33 vs BQU $FC1A
3¢ VTAB © -BQU $8022
35 HOME © EQU SPCSB
36 LE BU $FCE6
37 RoKSY QU $PD0C
38 KEYIN — BQU $FD1B
39 PRBYTE —EQU SPDDA
40 cour = BQU SFDED
41 SETINV BQU $FE8O
42 SETNORM EQU SFER4
43 OUTPORT EQU $FE9S
46;
47 BELL —-EQU $87
48 LARROW EQU $88
49 RETURN EQU $8D
50 RARROW QU $95
51 ESC BQU $9B
52 CTRLZ —-EQU S9A
552
56 ORA QU $09
57 BOR BOU $49
58 AND BQU $29
59 ASL EOU SOA
60 LsR BOU S4E
42:
a JSR INITVECT
64 INTRO ISR HOME
és ISR PRINT
66 EX 908080
o ASC "PROGRAMME DE DECRYPTAGK™
‘eo HEX 8D
6 ASC Nawnnnnnn anna nnn nnn nnn
20 ‘HBX 8D
n ASC "DE SECTEURS caDES PAR”
30
Pom's n° 21
Les différentes
fonctions
Pour décrypter, l'outil dont vous
devrez user judicieusement est le
"filtre". Il faut spécifier certaines
valeurs dans les trois octets qui le
composent; dans certains cas, ccci
est cependant réalisé directement
par le programme; aucune con-
naissance du langage machine
n'est requise pour l'utilisation des
fonctions principales. Certaines
fonctions, lorsqu'elles sont sélec-
tionnées, agissent directement sur
le filtre, et la modification effec-
tuée sur ce dernier est affichée
instantanément a I'écran.
Ainsi, le "ou logique", le "et
logique" et le "ou exclusif", parmi
les commandes, agissent direc-
tement sur le filtre : le code
opération en langage machine de
l'opération choisie s'inscrit dans
Yoctet | du filtre.
Pour agir directement sur le filtre,
vous disposez de six fonctions
accessibles par les commandes; en
général, vous n'agirez directement
que sur l'octet 2 du filtre; la
modification des octets 1 et 3 du
filtre est dangereuse et ne vous
sera utile que si vous avez des
connaissances suffisantes en lan-
gage machine.
Voici les six commandes qui
agissent directement sur le filtre :
¢ Incrémenter octet 1 : ajoute 1
en hexadécimal 4 I'octet 1 du
filtre;
* Décrémenter octet 1 : enléve 1
en hexadécimal a l'octet 1 du
filtre;
+ Incrémenter octet 2; ajoute 14
l'octet 2 du filtre;
* Décrémenter octet 2 : enléve 1
a l'octet 2 du filtre;
« Incrémenter octet 3: ajoute 1 a
loctet 3 du filtre;
+ Décrémenter octet 3 : enléve 1
a loctet 3 du filtre.
Dans tous ces cas, vous devez
sélectionner la commande vouluc,
puis la valider avec "Return". En
maintenant constamment la pres-
sion sur la touche "Return", on
obtient une incrémentation ou
décrémentation trés rapide.
OU logique
Cet algorithme réalise un "ou
logique" avec la valeur spécifiée
dans l'octet 2 du filtre, pour
chacun des 256 octets du secteur
sélectionné. La valeur 09, qui est
le code-opération du "ORA" en
langage-machine, est placée dans
Toctet 1 du filtre.
ET logique
Ce deuxiéme algorithme réalise un
"et" avec la valeur spécifiée dans
l'octet 2 du filtre. La valeur 29,
code-opération du "AND", se
trouve dans l'octet 1 du filtre.
OU exclusif
Idem. Réalise un “ou exclusif"
avec la valeur placée dans l'octet 2
du filtre. Le code-opération du
“EOR", 49, est placé dans I'octet
1 du filtre.
Echange de bits
Cet autre algorithme effectue un
échange entre deux bits donnés de
chaque octet parmi les 256 du
secteur choisi. On précise dans
MEM1I et MEM2 une valeur entre
0 et 7, qui est le rang des 2 bits
dont on veut effectuer la permu-
tation. Avant d'utiliser cet algo-
rithme, vous devez donc spécifier
deux valeurs différentes, compri-
ses entre 0 et 7, pour les deux
variables utilisées par l'algo-
rithme, MEM1 et MEM2. Pour
modifier ces valeurs, utilisez les
commandes suivantes :
* Incrémenter MEM1 : ajoute 1
en hexadecimal a4 la valeur
actuelle de MEM1.
* Décrémenter MEM1 : enléve 1
a MEM1.
* Incrémenter MEM2: ajoute 14
MEM2.
* Décrémenter MEM? : enléve 1
a MEM2.
Lire secteur
Cette commande pe
Showing the first 100000 of 273385 characters.