Text content (OCR)
eee he
ISSN: 0294-6065
4.
Sommaire
Editorial
Communiquez grace au format DIF
Un programme de TRACE sélective
Un Apple 4 la clinique
Les mémoires de masse
Réponse au concours de Pom’s
Création de tables de formes
La carte M/DOS 6502 4 l’essai
Un catalogue général en Pascal
Chargez vite vos fichiers binaires
Les codes ASCII épluchés
Robotwar
Un PRINT USING d’intérét général
Notions de base’ les fichiers
La 7 W.C.CF. (San Francisco)
Apprentissage de l’assembleur (II)
Courrier des lecteurs
Les clubs ont la parole
Micro-informations
Bibliographie
NUMERO 4 - JUIN 1982 - 35 Francs
58 rue Notre-Dame-de-Lorette - 75009 PARIS
Tel. : 282.19.80 - Télex : 290350 F
Boutique
aa
———
Ordinateur Apple #/ 128 K
Disque dur 5 M.O. profile en option,
maniteur $.0.5. + basic + 1 soft au choix
Sete il + 48 K + floppy
ur + moniteur 12°
pettechisse2" H
Re Un verb service avant et aprés-vente.
e Les conseils du spécialiste e Dépannages rapides par e Une garantie 1 an piéces |
ur le matériel et le notre service aprés-vente et M.O. sur tous les 5)
logiciel. intégré. produits.
rez!
Des micro-prix sur tous les micros.
compe
DOCUMENTATION GENERALE SUR DEMANDE,
6 mois. Leasing En ranon des fluctuations monétaires ces prix sont susceptibles d étre modifies sans préavis. Nous consulter pour confirmation,
1
JCR, linformatique service compris.
Editorial
Notre environnement d’utilisateurs de l’informatique individuelle évolue chaque jour, comme nous avons
pu le constater avec l’arrivée des SORD, IBM et autres SIRIUS... Cette remarque reléve presque d’une
Platitude, tant nous savons notre domaine d’intérét évolutif. Des changements structurels sont cependant en
train de s’effectuer, qui vont beaucoup plus loin que la simple apparition de périphériques ou de logiciels
nouveaux. En un mot, les constructeurs « classiques » pénétrent en force, et avec des moyens promotionnels
extrémement puissants le domaine de I’informatique individuelle, comme nous pouvons nous en convaincre
avec les informations suivantes.
Selon une étude publiée par Computer Business News en mars demier, l’évolution prévisible pour les
quelques années 4 venir est importante. En 1981, les parts de marché étaient les suivantes : TRS (28 %),
Apple (25 %), Hewlett-Packard (11 %), Commodore (10 %), Xerox + DEC + IBM (10 %), autres (16 %)
Selon les prévisions, les chiffres de 1985 seraient les suivants: TRS (15 %), Apple (12 %), H-P (14 %),
Commodore (3 %), Xerox (17 %), DEC (11 %), IBM (23 %), autres (5 %). Ceci dit, étant donné I’expansion
prévue pour ce marché, la baisse de 50 % de part de marché de TRS et Apple devrait en fait correspondre @
une hausse confortable du chiffre d'affaires. Ainsi, les ventes d’Apple au premier trimestre 1982 ont été de
131 millions de $ (66 % de hausse sur 81), avec un bénéfice de 10 % du chiffre d'affaires.
Nous aurons donc !’occasion de pennettre aux utilisateurs de langue frangaise d’échanger leur savoir-faire
sur Apple pendant encore longtemps. Dans ce numéro, Michel Crimont tennine sa série sur le programme de
catalogue général en Pascal. Christian Colmant vous offre une revue des mémoires de masse. J.-F. Duvivier
présente un tableau de référence complet des codes ASCIl, afin de vous éviter d’avoir a feuilleter des sources
multiples pour rechercher certains renseignements de base. Enfin, Dominique Compére, un lecteur de Pom’s,
Propose des programmes en BASIC, largement commentés 4 |’attention des débutants, destinés 4 faciliter la
création et l'utilisation de tables de formes, en graphique haute résolution.
Toutes les félicitations de |’équipe de Pom’s vont @ Dominique Devemay, qui a réussi & résoudre notre
probléme-concours, Nous avons regroupé ses remarques et celles de l’auteur du probléme, J.-F. Duvivier,
dans un article explicatif. Nous vous apportons dans ce quatriéme numéro de nombreuses infonnations de
toutes sortes et une grande variété de programmes. A titre de compensation, les mordus de |’assembleur
trouveront leur plaisir dans les articles de Gilles Mauffrey et Jacques Tran-Van. Nous faisons dans ce numéro
lexpérience de réduire le texte, ce qui nous permet de vous proposer l’équivalent de 10 pages
supplémentaires.
Nous rappelons aux lecteurs qu’ils peuvent.commander les disquettes de Pom’s séparément, ainsi que les
numéros antérieurs. Nous approchons cependant de la rupture de stock sur le numéro 1, dont plus de 2 000
exemplaires ont été vendus avant la fin du mois d’auril.
Hervé Thiriez
Rédacteur en chef
Directeur de la publication — rédacteur en chef : Hervé Thiriez — Siege social : Editions MEV — 49, rue Lamartine — 78000 Versailles
— Rédoction et abonnements ; 59, bd de Glatigny — 78000 Versailles — Tél, (3) 918.13,07 — Regie publicitaire . Force 7 — 41, rue de
ta Grange-aux-Belles — 75483 Paris Cedex 10 — Tél. (1) 238.66.10 — Diffusion auprés des boutiques informatiques et libroiries
Editions du PSI — 41-51, rue Jacquard — B.P. 86 — Tél. (6) 007.59.31.
Ont colloboré @ ce numéro: Christan Colmant, Dominique Compre, Michel Crimont, Xavier Dalloz, Dominique Devernay,
Jean-Frangois Ouvivier, Bruno Estrangin, Gilles Mauffrey, Jean-Louis Meillaud, Gérard Michel, Hervé Thiriez, Jacques Tran-Van —
Conseillers techniques: Olivier Herz et Gérani Michel —- Maquette ; Jean Mourot — Dessins : Laurent Bidot et Jean Mourot.
Pom's n° 4
La tentation est grande, dés que l'on peut
amener un gros ordinateur a communiquer avec
un ordinateur individuel, de transférer des
fichiers entre ces deux matériels, afin par
exemple de profiter des nombreux programmes
disponibles sur l'ordinateur individuel.
Ainsi, n'est-il pas possible d'interroger un
fichier géré par un gros ordinateur pour le
traiter Aa l'aide d'un programme de calcul
(Visicalc), de gestion de base de données (DB
Master) ou d'édition de graphiques
(Visiplot), a titre d'exemples ?
Mm fait, cela est plus facile qu'il n'y
parait a priori. Il faut d'abord réussir a
établir la communication de facon a pouvoir
créer le fichier sur disquette. Mnsuite, il
suffit de mettre les données sous un format
qui les rende accesibles A des programmes
tels que ceux cités plus haut. ln format
unique suffit pour atteindre cet objectif, le
format DIF.
1. Le transfert de l'ordinateur central vers
L' Apple
la solution 4
1'équipement
ce probleme est spécifique de
jouant le réle d'ordinateur
central.
Le cas simple est celui d'un ordinateur muni
d'une interface RS 232. Du cdté de 1'Apple,
la communication s'effectue au moyen d'une
carte de communication. Un logiciel de
communication comme VISITERM permet alors de
saisir les données dans un fichier.
Nous avons été confrontés a un autre cas,
celui de la communication avec un ordinateur
CII-HB 61 DPS. Ce matériel est prévu pour
fonctionner seulement en relation avec des
terminaux. Il] faut alors que 1l'Apple se
comporte A son égard exactement comme un
terminal. Nous avons pour cela ajouté 4 notre
Apple une carte de communication spéciale
fabriquée par SOFRIG. Deux courts programmes
(un pour le 61 DPS et un pour 1'Apple)
permettent de créer un fichier séquentiel en
caractéres ASCII.
2. Communiquer sans programmer avec Visicalc
et DB Master
La société Personal Software a défini un
format de fichier séquentiel, dont le but est
de servir de norme de communication entre des
programmes différents, Sans aucune program-
mation, des programmes utilisant le format
DIF peuvent échanger des données 4A loisir.
Ce format est appelé DIF, Data Interchange
4
Pom's n°4
Format; il
Personal Software ainsi que par ceux de
Stoneware, la société qui a produit le DB
Master. La description détaillée des normes
du format DIF se trouve dans les manuels de
Visicalc et DB Master; nous y renvoyons le
lecteur. Le programme que nous présentons
ci-dessous s'inspire trés largement du modéle
de programme : CREATING A DIF FILE.
Pour traduire le fichier issu. de
l'ordinateur, nous le recopions préalablement
dans un tableau chargé en mémoire centrale.
Cette méthode ne convient qu'au transfert de
petits fichiers. Dans le cas de fichiers
importants, il faudra mettre dans le format
DIF les enregistrements les uns aprés les
autres.
Le tableau
en un fichier de
est accepté par les programmes de
obtenu ainsi est ensuite traduit
format DIF. Ce format
comporte un chapeau (header) qui décrit la
structure du fichier, notamment le nombre
d'tenregistrements (vectors) et de rubriques
(tuples) par enregistrement.
Fnsuite, chaque début d'enregistrement est
signalé par "BOT" et, pour chaque rubrique
d'un enregistrement:
a) quand la rubrique est numérique, il faut
un code "0", suivi de la valeur numérique et
de la lettre "Vv";
b) quand ia rubrique est alphanumérique, on
doit avoir un code "1", suivi de la valeur
"Oo" et de la chaine.
3. Un aspect des relations entre ordinateur
individuel et ordinateur central
Les données
individuel peuvent
recueillies sur un ordinateur
tre manipulées 4 volonté
sans mobiliser l'ordinateur central. Elles
peuvent étre traitées et/ou complétées
localément “puisque des logiciels tels que DB
Master savent fusionner des données
d'origines variées (en utilisant un logiciel
complémentaire, le Utility Pack).
Toutefois, la perspective la plus
intéressante me parait étre l'utilisation de
l'ordinateur individuel pour la manipulation
des données et la mise en forme de textes ou
de graphiques, le stockage des données étant
pris en charge par l'ordinateur principal.
La grande diffusion des logiciels pour
micro-ordinateurs les rend accessibles a wm
coit modéré. Ceci conduira a mon avis a un
partage des t&ches entre grosses et petites
machines: l'ordinateur individuel servira a
manipuler les données a 1'échelon individuel,
selon les besoins spécifiques d'un
utilisateur. Il devient ainsi le support
d'une expression personnelle.
re as
NDLR - Les
secteurs doivent
utilisateurs de Visicale 16
consulter le numéro de leur
version Visicalc, qui apparait lors du boot.
Si celui-ci est '193B0", il faut essayer de
la faire remplacer par une bonne version. fh
effet, il y ades bogues dans cette version,
dont le pire est que la sauvegarde d'un
fichier DIF A partir de Visicale peut rendre
la disquette illisible; pour couronner le
tout, ce phénoméne est aléatoire. Attention !
ILIST
10 REM :CETTE MAQUETTE
20 REM :TRADUIT UN FICHIER ASCII
SEQUENTIEL
30 REM :RECU PAR EX. D’UN 41 DPS
40 REM ‘EN UN FICHIER -DIF-
50 REM $<DATA INTERCHANGE FORMAT
>
60 REM :<REGISTRED TRADE MARK>
70 REM $<PERSONNAL SOF TWARE>
80 REM
90 REM $LE PROGRAMME COPIE LE FI
CHIER DANS UN TABLEAU
100 INPUT “NOM DU FICHIER A LIRE
1 "GFS
110 INPUT "NB D’ENREGISTREMENTS
$M ENK
A TRAVERS LA PRESSE APPLE DECHAINEE
La Pomme d'Or revient ce mois-ci a Henry
Roberts qui répond aux questions des lecteurs
de CALL-A.P.P.L.E. dans une rubrique inti-
tulée APPLE DOCTOR (numéro d'octobre 1981).
Nous traduisons ...
Question :
partout. De
cet interét?
ne peut pas?
ne parle que du Pascal un peu
quoi s'agit-il et pourquoi tout
Que peut-il faire que le BASIC
Réponse : Le Pascal tire son nom d'un
mathematicien Suisse, nommé Blais Pascal
(sic) qui vivait il y a une centaine d'an-
nées. ( n'a jamais pu me fournir la raison
de ce choix, alors que Pascal est mort bien
avant que le premier ordinateur ne soit
construit!
NE S'AGIT-IL PAS PLUTOT D'UN MOINE BELGE DE
LA FIN DU MOYEN AGE QUI, LE PREMIER, A DIT
SON CHAPELET SUR UNE MACHINE DE WOZNIAC!
120
130
140
150
160
170
189
190
200
210
220
230
240
250
260
270
280
290
300
310
320
330
340
350
340
370
INPUT "NB DE RUBRIQUES :"3R%
O¢ = CHR$ (4)
OFS = 0% + "OPEN" + FS
RDS = D0$ + "READ" + FS
CL$ = D$ + "CLOSE" + F$
DIM N$(NZ%,R%)
PRINT OF$$ PRINT ROS
FOR I = 1 TO N%
FOR J = 1 TO R%
INPUT NS(I - 1,J - 1)
NEXT J
NEXT I
PRINT CL$
REM
REM -EN UN NOUVEAU FICHIER
REM -LE PROGRAMME UTILISE
REM LE NOM DU FICHIER
REM LE NB DE VECTEURS
REM (ENREGISTREMENTS.
REM LE NB DE TUPLES
REM (RUBRIQUES)
REM LE TYPE DES DONNEES
REM «TYPE 0 = NUMERIQUE
REM «TYPE 1 = CHAINE
RE eee ea
Pom’s n°4
~
- PRINT "NOM DU FICHIER DIF A 690 IF T = 1 THEN V = O:S$ = N&
CREER 3" oe Say
390 REM -LE PROGRAMME SAISIT LE 700 REM -ET L’ECRIT
NOM DU FICHIER 710 GOSUE 910
400 INPUT F$ 720 NEXT J
410 OF$ = D$ + "OPEN" + FS 730 NEXT I
420 RD$ = D$ + "READ" + F$ 740 REM -PUIS ECRIT FIN DES DONN
430 CL$ = D$ + "CLOSE" + FS EES
440 KTS = D$ + "WRITE" + FS 750 T = - 13V = 038% = "EOD"
450 PRINT OF$ 760 GOSUE 910
460 REM -PUIS SAISIT LE NB D’ENR 770 RINT CL$
EGISTREMENTS 780 PRINT "FIN DE LA CREATION DU
470 REM DANS LA VARIABLE NY FICHIER DIF "}F$
480 NV = NX 790 STOF
490 REM -ET LE NB OE TUPLES 800 REM -PROCEDURE D’ECRITURE DU
500 REM DANS LA VARIABLE NT <DIF HEADER?
510 NT = RX 810 PRINT WTS
520 REM -ET ECRIT LE <DIF HEADER 820 PRINT "TABLE": PRINT "0,1"
2 GOSUB 880
530 GOSUB 800 830 PRINT "TUPLES"$ PRINT "0,"3N
540 REM -PUIS SAISIT LE TYPE DE Tt GOSUE 880
CHAQUE DONNEE 840 PRINT "VECTORS" PRINT “0,"3
550 DIM TYX<NT) NV GOSUB 880
560 FOR I = 0 TONT-1 850 PRINT "DATA": PRINT "0,0"
570 PRINT "O=NUM 1=CHAINE" GOSUE 880
580 PRINT "LE TYPE DE LA RUBRIGU eso eRe
E "$I + 13" EST 3
590 INPUT TYX(I) 870= RETUBN
880 REM -PROCEDURE D’ECRITURE DE
600 NEXT I itt
610 FOR I = 1 TO NV REHGENE, VIDE.
a2 0 « REMC ECRET.LE, DESUMEZUMTUP 890 PRINT CHR$ (34)} CHR$ (34)
Fe 900 RETURN ;
gaur c - «60 ccoLet nee 910 REM -PROCEDURE D’ECRITURE DE
640 GOSUB 910 SSPENNEES
920 PRINT WTS
650 REM -RECHERCHE CHAQUE DONNEE Sao caccalnbrwee Y
660 FOR J = 1 TO NT ee ESE oe
670 T = TY%(JS - 1) 750 ERD
680 IF T = 0 THEN V = VAL (NS(T 760 ei
- i,d - 199388 = "y" we
XY 6 Pom’s n°4
Un programme
de TRACE sélective
Ce Programme permet d'obtenir la trace trace sont soit verifiées, si elles ont été
sélective d'une série d'instructions d'un fournies, soit initialisées dans le cas
programme assembleur. Pour rendre ce contraire.
programme aussi simple et aussi court que
possible, les sous-routines moniteur et DOS Le programme de trace proprement dit débute
ont été utilisées trés souvent. Le corps du alors. Si une instruction doit étre tracée,
programme (la sous-routine STEP) est elle est tout d'abord désassemblée 4 l'aide
pratiquement identique 4 celui du moniteur de de la sous-routine moniteur INSDSP (F8D0),
l'Apple II avec BASIC entier en ROM. Ce sinon seule la longueur de 1'instruction est
programme exige un Apple 48k; il est calculée par la sous-routine INSDS2 (F88C);
utilisable en mode moniteur ou en mode cette longueur est conservée 4 l'adresse 2F
direct. par le moniteur. Msuite, les instructions 4
exécuter, c'est-a-dire les instructions qui
U a’ n_du programme ne correspondent pas & des sauts, des
branchements ou des retours, sont exécutées
Pour l'appel de ce programme, la commande aprés restauration des registres grace 4 la
CHAIN du DOS a été modifiée en une commande sous-routine RESTORE (FF3F), et les
TRACE; cette commande, pour ne pas étre différents registres sont édités par REGDSP
confondue avec la ‘commande BASIC, doit &tre (FAD7). Le programme donne de plus la
suivie du nom du programme 4 tracer et décomposition du registre d'état pour que
éventuellement du numéro du drive, de l'utilisateur puisse suivre plus facilement
l'adresse de départ du trace et de l'adresse le déroulement du programme.
finale du trace. La syntaxe est la suivante :
TRACE nomprogramme(, Dx, Rad, Baf ) les instructions de saut et de retour donnent
chacune des informations entre paranthéses simplement lieu 4 un calcul de l'adresse de
étant facultative. Si le numéro de drive est l'instruction suivante. Les instructions de
absent, le drive précédemment utilisé sera branchement sont transformées pour se
cris par défaut. Si 1'adresse de départ du brancher soit sur BREL si le test est
trace est omise, l'adresse de début de positif, soit sur NBREL dans le cas
>rogramme sera prise par défaut. Et enfin, si contraire. Dans tous les cas, l'adresse de la
l'adresse de fin de trace est omise, prochaine instruction 4 exécuter est alors
l'adresse de fin de programme sera prise par calculée, a l'aide des différentes
défaut. Ces données numériques peuvent étre sous-routines moniteur PCADJ, une fois les
données sous forme décimale ou hexadécimale; registres conservés.
dans ce dernier cas, elles doivent @étre
précédées du signe $. Il est possible de suspendre a tout moment
l'exécution du programme en appuyant sur la
Les modifications du DOS et le chargement du touche ESC. Pour interrompre définitivement
programme de TRACE sont faites par le le programme, il faut taper CONTROL-C.
programme PRTR. Quand vous en avez terminé
avec le programme TRACE, je vous conseille de Limites du programme
rebooter le DOS, car certains paramétres
auront été modifiés, et la commande CHAIN Comme l'utilisation des sous-routines
supprimée. moniteur SAVE et RESTORE modifie les adresses
48-49, cela interdit de tracer des programmes
Analyse du _ programme faisant appel au DOS, qui les utilise.
Quand on tape "TRACE nomprogramme, R$ad,B$af"; D'autre part, on ne peut tracer que des
nomprogramme est mis en adresse AA75 et instructions du programme lui-méme et non des
Suivantes, ad en AA6E et AA6F, af en AA7O et instructions en ROM par exemple. Nous
AAT1, Les premiéres instructions sauvent les laissons le soin au lecteur de modifier le
registres et chargent le programme en mémoire programme pour éliminer la premiére
centrale, par appel aux sous-routines limitation. Quant a la seconde, dans certains
moniteur SAVE (FF4A) et DOS BLOAD (A35D). cas, elle ne peut étre éliminée. Pour s'en
persuader, le lecteur pourra regarder ce qui
L'adresse de fin de programme est alors se passe quand on veut tracer la sous-routine
calculée, et les adresses de début et fin de de sortie écran COUT ...
KN ty
————= Pom’s_ n° 4
( 7
10 HOME $ PRINT "LA COMMANDE CHA
IN OU DOS EST CHANGEE EN": PRINT
" UNE NOUVELLE COMMANDE TRAC
Eve PRINT
20 PRINT "BLOAD B.TR": CALL 2159
SOURCE FILE: TRACE
0083: 1 CONTRC EQU $83 « CONTROL-C
OO9B: 2 ESC EQU $98 «x ESCAFE
O3EA: 3 RECON EQU $3EA
FF 4At 4 SAVE EQU $FF4A a SAUVEGARDE DES REGISTRES
FFOF: S RESTORE EQU $FF3F « RESTAURATION DES REGISTRES ;
FeD0:; 6 INSTDSF EQU $FBDO « DESASSEMBLE 1 INSTRUCTION
o02C3 7 RTNL Eau $2C
02D: 8 RTNH EQU $2D j
00 2F 3 9 LENGTH EQU $2F * LONGUEUR DE L’ INSTRUCTION
00483 10 STATUS EQU $48
003A: pee EQU $3A « COMPTEUR DE FROGRAMME
003E: 12, Ben EQU $3E * A TRACER
AA72¢ 13 DFG EQU $AA72
AAGOS 14 LFG EQU $AA60
AACE: 15 OTR EQU $AA6E «x DEBUT DE TRACE
AA7 03 16 FTIR EQU $AA70 « FIN DE TRACE
FC AB: 17 DELAY EQU $FCAB * ROUTINES
F948% 18 FRBLNK EQU $F948 * CLASSIQUES
FOED: 19 COUT EQU $FDED « VOIR REF.
FD8E: 20 CROUT EQU $FD8E »« MANUAL
cooo: 21 KBD EQU $C000
C010: 22 KBOSTRB EQU $C010
FF6938 23 MON EQU $FF69 * RETOUR AU MONITEUR
Fe8sc: 24 INSDS2 EQU $F88C
FSB2: 25 INSDSi EQU $F882
FAD7: 26 REGDSF EQU $FAD7 « IMPRESSION
FADA? 27 REGDSF1 EQU $FADA x DES REGISTRES
F9S48 28 FCADJ2 EQU $F954 * CALCUL D’ADRESSES
F956: 29 FCADJ3 EQU $F956 = DU PROGRAMME
FCS8: 30 HOME EQU $FCS8
A3SD3 31 DLOAD EQU $A35D « ADRESSE SS-ROUTINE BLOAD
AASF 32 CDOF EQU $AASF « ADRESSE CODE INST. DOS
0032: 33 CLOAD EQU $32 « 2xCODE DOS BLOAD
— NEXT OBJECT FILE NAME IS TRACE.DBUJO
94003 34 ORG $9400
9400:20 4A FF 35 JSR SAVE
9403320 S8 FC 36 JSR HOME
94063A9 32 37 LDA £CLDAD
9408:8D SF AA 38 STA CDDF
940B:20 SD A3 39 JSR DLDAD * CHARGEMENT OU PROGRAMME ’
940E3AD 60 AA 40 LDA LFG « CALCUL
9411318 41 CLC *« DE
9412:6D 72 AA 42 AoC DFG « L’ ADRESSE
9415:38D D9 95 43 STA FFI « DE
94183AD 61 AA 44 LDA LFG+1 “x FIN
9416836D 73 AA 45 AOC DFG+1 x OU
941E:8D DA 95 46 STA FFI+1 * PROGRAMME
94213AD 73 AA 47 LDA DFG+1 « VERIFICATION
9424:CD 6F AA 48 CMF DTR+1 « DES ADRESSES
9427390 16 49 BCC ADFIO « DE DEBUT ET
9429°3F0 09 50 BEQ SUIVER = FIN DE TRACE
942E°380 6F AA si STA DTR+1 «x ET VALEURS
\ 8 Pom’s n°4 /
Ne a
W¢
942E3A0 72 AA 52 LDA DFG «x PAR DEFAUT
9431:34C 3C 94 53 JMF MDD2 «x EVENTUELLES
1 94343A0 72 AA S54 SUIVER LDA DFG x DE 47 A 72
} 9437:CO 6E AA 5 CMFY DTR
943A:90 03 56 BCC ADFIO
943C:8D 6E AA 57 MOD2 STA OTR
94BF34C S1 94 58 AOFIO JMF VERFIN
9442°3AD DA 95 59 OEFZ LOA PFI+1
9445:8D 71 AA 60 STA FTR+1
9448°3AD D9 95 él LOA FFI
944B:8D 70 AA 62 STA FTIR
G44ES9C 67 94 63 JMF TRO
4 9451:AD 71 AA 64 VERFIN LOA FTR+1
94543F0 EC 65 BEQ OEF2
9456:CD DA 95 66 CMF FFI+1
9459390 04 67 BCC SUIFIN
| 94SB3FO 02 68 BEQ SUIFIN
} 945D:360 E3 69 BCS OEF2
945F3AD 70 AA 70 SUIFIN LOA FTR
| 9462:CO D9 95 71 CMP FFL
li 94653B0 DB 72 BCS OEF2
94673A0 72 AA 73 TRO LOA OFG
i 946A385 BA 74 STA FCL
946C3AD 73 AA 75 LOA OFG+1i * INITIALISATION DU FROGRAMME
946F°385 3B 76 STA PCH
9471320 94 94 77 TRACE JSR WAITI
9474320 B& 94 78 JSR SITR
94773B0 09 79 BCS FREEX
9479320 BF 94 80 JSR WAIT
947C0:20 DO FB 81 JSR INSTOSP
947F34C 89 94 82 JUMP EXEC
94B23AZ 00 83 FREEX LDX £00
9484:A1l 3A 84 LDA (FCL,X)>
9486:20 8C FS 85 JSR INSDS2
9489320 ES 94 86 EXEC JSR STEF
948C34C 71 94 87 JMF TRACE
948Fs 88 xx SOUS FROGRAMME DE SAISIE CLAVIER ET DELAY
948F AI CB 89 WAIT LDA £203
9491320 AS FC 90 JSR DELAY
94A9ASZC 00 CO 91 WAITI BIT KED
9497310 1C 92 BFL WRTS
94993A0 00 CO 93 LDA KBD
949C3C9 9B 94 CMP £ESG
949E3D0 08 95 BNE WRTSO
94A0:2C 10 CO 96 BIT KBOSTRB
94A3:2C 00 CO 97 W2 BIT KBD
9406310 FB 98 BFL W2
" 94AB3AD 00 CO 99 WRTSO LDA KBD
94AB32C 10 CO 100 BIT KBDSTRB
94AE3CI 83 101 CMP £CONTRC
94B0:D0 03 102 ENE WRTS
} 94E2.23456 2ZE*9S*® “103 JMP SORTIE
9465360 104 WRTS RTS
94BSs 105 «xx SOUS PROGRAMME VERIFICATION A TRACER DU NON
| 94B63AS 3B 106 SITR LDA FCH
94B8:CO 6F AA 107 CMP DTR+1
94BB:90 22 10B BCC NON
94BDiD0 07 109 ENE SITR2
94ABF AS 3A 110 LDA PCL
94C1:CO 6E AA 111 CMF DTR
a 9)
Pom’s n°4
TT
( saca:90 19 112 BCC NON
94C6IAS 3B 113 SITR2 LDA FCH
94CBiCD 71 AA 114 CMP FTR+1
94CB:90 0B 115 BCC OUI
94CD:D0 10 116 BNE NON
94CFIAS 3A 117 LDA PCL
94D1:CD 70 AA 118 CMF FTR
94D4:90 02 119 BCC OUI
94D6:D0 07 120 BNE NON
940818 121 OUI cLc
94D93A9 00 122 LDA £00
94DE:8D CF 95 123 STA INDIC
94DE360 124 RTS
94DF 238 125 NON SEC
94ED2A9 01 126 LDA £01
94E2:8D CF 95 127 STA INDIC
94E5260 128 RTS
94ES! 129 xx ANALYSE ET EXECUTION DE L’ INSTRUCTION
94E6 168 130 STEP PLA « NOUS REFRENONS
94E7:85 2C 131 STA RTNL « ICI LE STEP
94E9268 132 PLA x DU MONITEUR
94EAS85 2D 133 STA RTNH « DE L’APPLE II
94ECIA9 EA 134 LDA £$EA « BASIC INTEGER
94EE!8D C46 95 135 STA INSTR « SANS AUTOSTART
94F1!8D C7 95 136 STA INSTR+1
94F4:8D C8 95 137 STA INSTR+Z
94F7IAZ 00 138 LOX £00
94F9tA1 3A 139 LDA (FCL,X) IBLOAD CHARGE+0Bs,Aas9000
94FB3FO 2C 140 BEQ BREAK eh ALNSE
94FDIA4 2F 141 LDY LENGTH
94FFIC9 20 142 CMF £$20
9501:F0 50 143 BEQ JSF Binet
a oy aie peti inal te
9505!F0 3C 145 BEQ RETOUR x
95073C9 4c 146 CMP £$4C oe & & 2s o1 opies 90
9509!F0 53 147 BEQ JUMP 9 9A 80 01 90
950B3C9 6C 148 CHP £86C fs ts pte eae ae
950D:F0 50 149 BEQ INJUMP Ge 22 Do 28 Ay 96 G5 Ci
950F:C9 40 150 CMF £$40 retzz ice eu aelanleeire
95113F0 2C 151 BEQ XRTI aa co CN 18\ 98 EF iB 98
9513:29 1F 152 AND £$1F }
9515249 14 153 EOR £814 2 Daten tM 30
9517:C9 04 154 CHF £$04 AZ AI 20 FS 9C 4c 12
9519:F0 02 155 BEQ RELAT a oelmatee a aetee ap
951B!B1 3A 156 ECIN LDA (PCL),+Y 81 1€ DO 05 Az 08 4C OA
951D!99 C6 95 157 RELAT STA INSTR,Y cS ibe tenes set ae HAE
seal lg is oe re REE ate
9521!10 F8 159 BPL ECIN
9523!20 3F FF 160 JSR RESTORE Falaolesl cal cues eras
9526:4C C6 95 161 UMP INSTR 87 00 FO 12 20 BE cE 20
9529:20 82 F8 162 EREAK JSR INSDS1 RAR A PAR at SES
952C!20 DA FA 163 JSR REGDSF1 Bp F487 Ay 40 BD ED 67
952F:20 EA 03 164 SORTIE JSR RECON
9532:A9 00 165 LDA £00 ne eB a te AAvAD LOE A
95343A2 03 166 LOX £03 67 23 AB BD AE Aa CP
9536:9D 6E AA 167 SORO STA OTR,X PURE URSA Ge 1201 (89 Ue oo
95393CA 168 DEX E@ €0 1€ De FO B9 9c Ba
953A 310 FA 169 BFL SORO
953C:4C 69 FF 170 UMF MON
953F 218 171 XRTI cLc
9540268 172 PLA
10
\ Pom’s n° 4
canine
BO
r
|
9541385 48 173
9543268 174 RETOUR
9544285 3A 175
} 9546268 176
j 9547385 3B 177 FCINC2
i 9549305 2F 178 PCINC3
| 9546320 56 F9 179
954E384 38 180
9550318 181
| 9551390 14 182
9553318 183 JSF
9554:20 54 F9 184
95573AA 185
9558398 186
9559348 187
9SSABA 188
9556348 189
/ 955C3A0 02 190
| 955E 318 191 JUMP
| 955F 3B1 3A 192 INJUMP
95613 AA 193
| 9562388 194
9563:B1 3A 195
9565386 3B 196
9567:85 3A 197 NEWPCL
9569:B0 F3 198
956BtA5 2D 199
200
201
202
203
204
205
206
207 PASEC
208 xx SOUS
9570320 8E FD 209 ECRFEIN
STA STATUS
PLA
STA PCL
PLA
STA PCH
LDA LENGTH
JSR FCADJ3
STY FCH
CLC
BCC NEWFCL
CLC
JSR FCADJ2
TAX
TYA
PHA
TXA
PHA
LDY £$02
cLC
LDA <(FCL),Y
TAX
DEY
LDA <(FCL),Y
STX FCH
STA PCL
BCS JUMP
LDA RTNH
PHA
LDA RTNL
PHA
LDA INDIC
BNE FASEC
JSR REGDOSF
JSR ECRFIN
RTS
PROGRAMME ECITURE COMPLEMENTAIRE
JSR CROUT
95SB0%AS5 48 210 LDA STATUS
9582:8D D0 95 211 STA TAMFON
95852A0 08 212 LDY £$08
9587369 DO 95 213 P00 LDA TAB-1,Y « ECRITURE
958A:C9 AD 214 CMP "£ oe
9S8C3D0 06 215 BNE FOL
| 9SBE:4E DO 95 216 LSR TAMPON « DETAILLEE
9S9134C AE 9S 217 JUMP =LOOF
9594320 ED FD 218 FO1 JSR COUT x DES
9S973A9 BD 219 LDA £’=
9599320 ED FD 220 JSR COUT
| 9SICS4E DO 95 221 LSK TAMFON « REGISTRES
| 9S9F 390 05 222 BCC PO
: QSALSAI Br 223 LDA £’1
{ 9SA3B34C AB 9S 224 JUMP VAL
| 9SA63AI BO 225 FO LDA £'0
| 95A8320 ED FD 226 VAL JSR COUT
9SAB320 48 F9 227 JSR FRELNK
9SAE 388 228 LOOP DEY
9SAFiD0 Dd 229 BNE FOO
9581360 230 RTS
9562318 231 BREL cLC * BRANCHEMENT
9SB3°A0 01 232 LOY £$01 «x RELATIF
9SBS:B1 3A 233 LDA (PCL),Y
Y Pom's n°4 Lf
OX =o rlrll—”—“‘“a‘—OO
( *\
95B7:20 56 F9 234 JSR FCADJ3« CALCUL DE LA NOUVELLE ADRESSE
95BA:85 3A 235) STA FCL
9SBC398 236 TYA
95BD338 237 SEC
958E:380 87 238 BCS FCINC2
9500320 4A FF 239 NBREL JSR SAVE «x FAS DE PROBLEME
95C3338 240 SEC « SAUVEGARDE LES REGISTRES
95C4:B0 83 241 ecs PCINC3* ET CALCULELA PROCHAINE ADRESSE
9SC63EA 242 INSTR NOF « PLACE
9SC7iEA 243 NOF «x DE L’ INSTRUCTION
9SCBiEA ZAG NOF «x A TRACER
95C934E°COr 9S “245 JMF NEREL
95CC34C B2 95 246 JMF BREL |
9SCF 300 247 INDIC DFE 00
95D0°00 248 TAMFON ODFB 00
249 TAB ASC ‘’NV-EDIZC |
,
250 FFI DFE 00,00
wax SUCCESSFUL ASSEMBLY: NO ERRORS
SOURCE FILE: MAJDOS
0073: 1 HIMEM EQU $73
94008 2 DEBUT Eau $9400
9D 263 3 AFTR EQU $9026
4 LABE EQU $A893
S RH EQU $A968
6 EH EQU $A96C
7 PARTR EQU $A911
OBJECT FILE NAME IS MAJDOS. OBJO
O86F: 8 ORG $86F
OBSFZAP 00 9 LDA #>DEBUT
0871385 73 10 STA HIMEM
08733A9 94 Fy LDA #<DEBUT
0875385 74 12 STA HIMEM+1
0877338 13 SEC
0878:AS 73 14 LDA HIMEM
OB7ASE9 01 15 SBC #01
087C:8D 26 90D 16 STA AFTR
QB7FAS 74 17 LDA HIMEM+1
0881:E9 00 18 SBC #00
0883:8D 27 90D 19 STA AFTR+1
08846°A2 04 20 LDX #04
0888:8D A4 08 21 LOOF LDA TRAC,X
088B:9D 93 AB 22 STA LABE,X
O88E:CA 23 OEX
Q88F210 F7 24, BFL LOOF '
OB8913A9 FF 25 LOA #$FF
0893:8D 68 A? 26 STA RH
0896:8D 6C A? 27 STA BH 5
08993A9 AD 28 LDA #$A0 |
089B:8D 11 A? 29 STA FARTR
§B9ESA9 76 30 LDA #$76
0BANS8D 12 AP 31 STA FARTR+1
08A3360 32 RTS
0BA454 S52 41 33 TRAC OCI ‘TRACE
08A7:343 CS
uma SUCCESSFUL ASSEMBLY: NO ERRORS
(12
Pom’s n°4
=
Un Apple 4 la clinique
antérieurement, se mettait 4 éclater avec un
fatidique JOB ABORTED particuliérement génant
dans ce type d'application ...
1. Description générale
Pom's a rendu visite au professeur David
Lewin, qui avait été désigné en 1968 par le We seconde version vit le jour en Cobol sur
congrés des gynécologues de langue francaise un IRIS80, suivie par une troisiéme version
Pour voir comment on pouvait utiliser un en GAP2 sur IBM32. Le professeur Lewin
ordinateur dans la gestion de dossiers s'était mis 4 la programmation et a réalisé
médicaux en obstétrique et gynécologie. Le ces deux derniéres versions, la premiére avec
professeur Lewin a eu la gentillesse de nous les conseils d'Alain Berdugo. Désirant avoir
expliquer comment il s'y était pris, et wi matériel sous la main, il se mit a
pourquoi il utilise maintenant un Apple 4 cet l'Apple, et écrivit la derniére version en
effet. Basic et langage machine (sans assembleur,
s'il vous plait).
Le probléme essentiel soulevé par la gestion
informatique de dossiers médicaux est que Le programme tourne maintenant parfaitement
ceux-ci comportent potentiellement une grande et parvient 4 enregistrer sur une disquette
masse et une grande variété d'informations. en DOS 3.3 jusqu'a 1000 dossiers, ce qui est
—&n outre, pour tout simplifier, ces une perf ormance . fh effet, un dossier
informations sont de types et de qualité trés comporte le nom et les coordonnées de la
diverses (par exemple, comment mémorise-t-on patiente, Plus 150 informations. Or, la
une radio 7). Vouloir mémoriser la totalité disquette 16 secteurs ne dispose méme pas de
des informations relatives A un patient est 150 octets par patiente, si l'on désire en
tres difficilement envisageable, d'autant gérer 1000 ! Ceci est devenu possible par une
qu'un dossier s'enrichit en permanence de recodification compléte des informations.
données chronologiques. kh outre, certaines
) données sont trés longues, par exemple un Une dizaine d'autres obstétriciens sont
) électro-cardiogramme de 24 heures ! maintenant équipés de ce systéme clés-en-main
) grace au professeur Lewin. Le programme
Il faut done choisir de mémoriser une Permet la saisie, l'archivage, la recherche,
quantité limitée d'informations, sinon il la mise & jour et certaines analyses
faudrait compter en méga-octets par patient. statistiques.
2. L'obstétrique Depuis 1969, les fiches d'inscription
manuelles sont toutes regroupées et
Dans une premiére étape, le professeur Lewin incorporées dans une base de données qui est
choisit de s'tattaquer au seul probléme de en fait la plus importante base de données en
l’obstétrique. L'avantage, dans ce cas obstétrique du monde, avec 600.000 dossiers.
particulier, est que l'horizon est limité & Pour le moment, les analyses effectuées sur
une durée inférieure & une année : il n'y a cette base de données ne sont pas encore
done pas cumul permanent pour chaque réalisées sur matériel Apple! Par contre, les
patiente. Un autre avantage de l'obstétrique fiches provenant des praticiens déja équipés
est qu'il existait depuis déja fort longtemps par le professeur Lewin sont regroupées en
une fiche de renseignements quantitatifs qui Plus dans wun fichier particulier, dont on
était remplie habituellement de fagon sait qu'il est encore plus fiable, puisque le
manuelle, Il a done suffi d'analyser cette Programme de saisie réalise un certain nombre 1
fiche en détail, et de concevoir la meilleure de tests et filtre les données. Ce
fagon de la formaliser pour obtenir le dessin Sous-fichier pourra @tre traité et analysé
; de l'enregistrement a prévoir pour chaque avec un Apple équipé d'un disque.
patiente.
3. La gynécologie
Le premier programme fut écrit en Fortran sur ;
un CII 10070; il tournait en 5 heures un la gynécologie représente un probléme de
quart, et comportait 5.500 instructions. Des toute autre nature, car il faut alors, comme
la fin de la premiére année, il fallut en en médecine classique, garder le dossier
réécrire une bonne partie a cause d'un d'une patiente de facgon permanente. hh outre,
changement de systéme d'exploitation |! Le contrairement au cas de l'obstétrique, les
programme, qui marchait parfaitement données intéressantes ne sont pas en
a
13 )
Pom’s n°4
CRrnnnnnnnnnnnnnn as —
{
dominance des informations quantitatives : il variante du programme de gestion de dossiers
y a de nombreuses données qualitatives que en gynécologie.
l'on ne peut se permettre d'ignorer. 4. Conclusion
La question qui se posait alors était donc la
suivante ; faut-il mettre en place un fichier Outre les aspects de gestion de dossier, les
mixte avec des composantes fermées (structure deux programmes peuvent apporter en temps
fixe) et ouvertes (possibilité de texte réel une aide clinique importante. On peut
libre) ? Faut-il définir comme dans le grace a eux interroger le systéme quand un
premier cas un fichier fermé, ou au contraire probléme délicat se pose, et faire des
définir un fichier ouvert ? Dans tous les cas recherches sur les relations entre diverses
rencontrés par le professeur Lewin, en données physiques et de santé, entre des
matiére d'informatisation de dossiers problémes, leurs traitements et les résultats
médicaux, les fichiers de structure mixte ont statistiques, ...
abouti a des échecs. Un fichier ouvert a par
conséquent été défini, avec pour seule partie In conclusion, ce qui est intéressant dans t
fermée la partie signalétique, dont on peut cette expérience, c'est que l'on ait pu
en effet difficilement se passer. arriver 4 effectuer un certain nombre de
travaux sur un petit matériel, aprés l'avoir
Le programme résultant est donc une sorte de fait sur un matériel beaucoup plus puissant. '
base de données, dans laquelle l'utilisateur C'est le contraire de 1'approche courante,
définit ses propres rubriques. A l'intérieur dans laquelle on a_tendance a avoir besoin
de chacune d'entre elles, il peut utiliser d'un matériel toujours plus puissant. kh
des mots-clés qu'il définit lui-méme, avec un outre, on constate que le professeur Lewin a
glossaire de 1000 mots au maximum. Le dG se mettre A tout programmer pour pouvoir
programme se charge de la recherche des @étre satisfait du programmeur. Heureusement
dossiers dans lesquels se trouvent des pour les SSCI que ce n'est pas le cas le plus
conjonctions données de mots-clés, ou des fréquent !
mots-clés donnés. A part cela, toutes les
fonctions habituelles d'une gestion de Epfin, il faut noter que l'approche fichier
fichier sont disponibles. Sur le méme ouvert est utilisable non seulement dans le
principe, un programme de gestion domaine gynécologique, mais | dans l'ensemble
bibliographique a d'ailleurs été concu, comme de la profession médicale, et méme au-dela.
ETUDIE © opportunité d'utilisation de l'outil micro-informatique
e intégration entre informatique traditionnelle et personnelle
e politique de la communication dans I'entreprise
FORME e formation 4 l'utilisation de la micro-informatique
REALISE e réalisation de programmes 4 la demande }
LIVRE e livraison de systémes clés en main. avec des progiciels de
GESTION DE STOCK, PAYE, COMPTABILITE.
Nous sommes gestionnaires avant d’étre informaticiens. L'informatique doit s'adapter a l'homme, et non l'inverse
Louti! micro-informatique répond particuliérement bien a ce souci de qualité et d’efficacité du travail,
dans des conditions conviviales.
Nombreuses références en informatique traditionnelle - divers matériels - et en informatique individuelle - principalement
Apple - auprés des PME et des groupes industriels.
\ logma.. Centre La Chataigneraie - 29, avenue de Versailles - 78170 La-Celle-St-Cloud - Tél. : (3) 918.13.07 rae
W14 Pom’s n°4 S
ST
Sur tout micro-ordinateur, le probléme de la
capacité de stockage se pose toujours tot ou
tard, pour une multitude de raisons ;
nécessité de placer un grand nombre de
programmes sur support magnétique, ou de
mémoriser des fichiers de grande taille.
Les utilisateurs d'Apple se sont vite rendu
compte qu'un espace de 140K octets, sur une
disquette 5% pouces, était vite saturé;
heureusement, il existe plusieurs facons de
Pallier cette limitation. La moins onéreuse
est bien entendu de manipuler tel un jongleur
des disquettes 5$ pouces sur un drive unique.
On investit rapidement dans un second lecteur
» qui autorise un doublement ae la capacité
en ligne et, surtout, facilite grandement les
copies de disquettes. Au-dela, on passe aux
mémoires de masse qui sont en général des
disques de plus grande capacité. Nous vous
présentons dans cet article les principales
mémoires de masse disponibles sur le marché
pour Apple ou équivalents Silex et ITT 2020.
Notre objectif est ici de présenter les
principaux supports de stockage éprouvés sur
le marché fran¢ais, plutSt que de réaliser un
dossier complet sur l'ensemble des mémoires
de masse compatibles avec un Apple.
On distingue habituellement deux types de
supports magnétiques de masse : d'un cédté les
disques souples (floppies) de grande
capacité, de l'agtre les disques durs.
Analysons les principaux avantages et
inconvénients de chaque solution.
Le disque souple (floppy)
le lecteur de disques souples
pouces a l'avantage douteux d'étre le
cher par K-octet, avec ses 140K en
face, simple densité. In compensation,
c'est, aprés la cassette dont nous ne parlons
méme pas tant son utilité est réduite, le
matériel de iecture/écriture de mémoire de
masse (si l'on peut dire) dont le cofit fixe
est le plus bas.
Les lecteurs de disques souples 8 pouces, du
fait de leur diamétre plus important,
acceptent une capacité de stockage plus
grande, allant de 256K octets 4 1M octet (1
még a-octet=1.000K), selon qu'il s'agit de
lecteurs simple ou double face, et selon la
densité d'enregistrement. Bien que d'un cofit
relativement élevé, ce type de lecteur offre
un compromis valable entre l'investissement
et la capacité de stockage. De plus, du fait
de leur antériorité sur le marché
professionnel, les disques souples 8 pouces
sont un standard portable des matériels
Pour
de 5%
plus
simple
commencer,
i.
Les mémoires de masse
(norme IBM 3740);
utilisant cette
de fichiers
professionnels normalisés
il devient possible, en
norme, d'opérer des transferts
d'un ordinateur d'une marque donnéée a un
ordinateur d'une autre marque. La société
francaise Léanord a d'ailleurs pris une place
prépondérante, avec la gamme des SILDISC, sur
le marché des disques souples 8 pouces pour
Apple. L'inconvénient majeur de ces lecteurs
réside dans leur cofit, qui les réserve a une
clientéle professionnelle.
Depuis peu, des lecteurs de disques souples
5% pouces de grande capacité sont proposés
par IEF, une autre société francaise. Chacun
de ces disques, travaillant en double face et
grande densité, peut stocker 1M octets. le
contréleur IEF supporte deux lecteurs, comme
le contréleur Apple, et permet donc de
disposer de 2M octets en ligne. Ce lecteur
représente aujourd'hui le meilleur rapport
investissement/capacité, quel que soit le
systéme d'exploitation (SED) utilisé. Il
exige cependant, et c'est compréhensible,
l'emploi de disquettes spécialement
contrelées.
—n conclusion, les disques
l'avantage de 1'interchangeabilité et de la
transportabilité, en compensation de leur
capacité réduite par rapport A celle des
disques durs.
Les disques durs (hard disks)
souples offrent
De conception totalement différente, les
disques durs ont une trés grande capacité de
stockage, allant jusqu'aux 380M octets
obtenus chez Micromos avec plusieurs disques
durs de type Cynthia (fabrication Honeywell).
Un disque dur représente un investissement
élevé, mais posséde le coidt par K-octet le
plus bas de tous les supports magnétiques.
Le premier disque dur disponible sur le
marché Apple fut le célébre Corvus, de 10M
octets, distribué en France par Micrologie.
Tf est partagé en plusieurs volumes
représentant chacun un équivalent-disquette
de 140K sous DOS. Par contre, sous Pascal, il
est capable de gérer des fichiers de toutes
capacités. Dans sa ga Corvus propose
aujourd'hui des disques 10 et 20M
octets.
Les utilisateurs d'un tel disque, scellé sous
vide dans sa boite, ont tout de suite saisi
le risque encouru en cas de destruction
inopinée d'un gros fichier. Aussi a-t-on
étudié le probléme de la sauvegarde des
informations sur un autre support. the
possibilité consiste a recopier sur des
15 J
Pom's n°4
eat
a
r
disquettes 54 pouces, mais il faut 67 lesquelles plusieurs utilisateurs asepoaant.
disquettes et beaucoup de patience pour chacun de leur poste de travail, accédent aux
effectuer une sauvegarde compléte. kn outre, mémes fichiers.
si un fichier est de taille supérieure 4
OK, il faut le découper pour pouvoir le
Sauvegarder, ce qui ne simplifie pas
l'opération. C'est pourquoi la sauvegarde sur
magnétoscope est devenue la solution la plus
fréquente; de plus, le magnétoscope passe
ainsi au titre des frais professionnels ..,
Conclu: n
L'Apple III n'a rien apporté de neuf en
matiére de disques souples. Par contre,
l'existence du Profile qui apporte 5M octets
Aa un prix abordable prouve 1l'existence du
besoin des utilisateurs en mémoire de masse.
le disque dur Cynthia, commercialisé par IEF, On peut simplement regretter que rien n'ait
Microexpansion, Micromos et MIS, est une été prévu pour la sauvegarde des informations
solution é1égante a ce probléme de stockées sur le Profile: qui a envie de faire
sauvegarde. On dispose dans une méme unit€ 35 copies de disquettes consécutives, dans le ‘
d'un disque fixe de 10M octets, et d'un pire des cas ?
disque amovible de méme capacité. La Q peut penser aujourd'hui que le bon
sauvegarde s'effectuant sur une cartouche compromis réside dans la solution mixte
amovible, plus de probleme d'échange de souplesdur, avec sauvegarde du disque dur sur ’
fichiers ni de recopie de sécurité. le disque souple, sous réserve que celui ait
Les disques durs disposent en outre d'un une capacité suffisante comme dans le cas du
systéme de multiplexage qui permet de relier IM otets sur 5% pouces. D'autant que le
plusieurs Apples & un disque donné et de disque dur peut étre relié a plusieurs Apples
réaliser ainsi des applications dans ou autres ordinateurs individuels.
TABLEAU COMPARATIF DES PRINCIPALES MEMOIRES DE MASSE POUR APPLE II-SILEX-ITT 2020
Caractéristiques Sildise Sildise Floppy Corvus Galaxian Cynthia
Modéle E Modéle F T-E SFr 140
Constructeurs Léanord Léanord TABIPS Micrologie Micro- Micromos
ou distributeurs Exp.+ MIS + I.E.F.
Capacité standard E1:2* 256K Pts2tgi2k 1M octets 5-10-20 2* 10M 2* 10M
Ea:8*51ek ~F2:2" 1M 2M octets M-octets
Extensions possibles 2e unité 2@ unité 2@ unité 2 unité Non Non
Systémes d'exploitation
DOS Oui Oui Oui Oui Non Oui
Pascal UCSD Oui Oui Oui Oui Non Oui
CP/M Non Oui Oui Oui Non NC
M/DOS Non Oui Oui NC Oui Oui
Support axgn 2egn IM: #5 "2 Disque 2disques 2 disques
2M2t5"h scellé fixe+amov fixe+amov
Compatibilité IBM Non. Oui Non Non, Non Non,
Taux de transfert 250Kbit/s 500Kbit/s 250Kbit/s NC 920Koct /s 920Koct/s
Sauvergarde --- --- — Magnétos. Disque Disque
Sy.miroir amovible amovible :
Dimensions 1*L*h cms 47.62.13 32.55.31 ef. Apple Selon type 68.50.25 68.50.25
Poids 15 kes 18 kgs idem idem 45 kgs 45 kgs |
Prix de base (H.T.) £1: 16800F F1:25500F It: 11000F 36.000 F 59.000 F 59.000 F
E2 23000F F2 29500F 2M 19000F 10M octets
Prix/K-octets (H.T.) £1:32,62F F1:24,90F 1M: 10, 74F 3, OF 2, 88F 2,88F
£2:22,46F F2:14, 4OF 2M: 9,50F
Nb Apples connectables 1 1 1 1a 64 1a4 116+
wale Pom’s n’4 J
|
PLIST
20733 CALL -936: TAB 19% VTAB 13
20734 DEVINETTE= ASC("POMS")x PEEK
(-1823)/ PEEK (-1595)«POMS *
POMS
20735 POKE PEEK (-7782),12% POKE
PEEK (-4710),184
20736 POKE 2069, PEEK ¢ RND (4096
»)
20737 PRINT “POMS"
20738 POKE FOMS,FOMS
20739 POP
Nous avons regroupé ici les explications de Ceci revient donc a POMS=DEVINETTE.
Dominique Devernay (initialement condensées
en quelques formules lapidaires, jetées sur * Ligne 20737 : sans commentaires. Mais
le papier dans l'ivresse de la victoire), et attention, car nous en arrivons au point le
celles de J.-F. Duvivier, beaucoup plus plus délicat.
didactiques (a 1'époque de leur rédaction, le
pauvre J.F.D. croyait &tre le seul 4 détenir * Ligne 20738 : depuis les manipulations
la Vérité...). sur les variables de la ligne 20736, la
é variable POMS vaut 215. Cette ligne effectue
* Ligne 20733 : pas de mystere. done un simple POKE 215,215 soit en
ee F F ri hexadécimal POKE $D7,$D7. Pour en mesurer la
Ligne 20734 : elle attribue 4 la variable portée, il est nécessaire de connaftre un peu
DEVINETTE la valeur 215. Bh effet : la structure d'une ligne de programme INTEGER
. ASC(POMS)=ASC(P)=208 stockée en mémoire. Chaque ligne est ainsi
. PEEK(-1823) est une constante, car représentée
l'adresse -1823 se trouve dans le
moniteur. De fait, PEEK(-1823)=144
. PEEK(-1595)=139 (cf. ci-dessus) |
. La variable POMS est égale 40, * ets] T 7
car elle n'a pas encore ete utilisee. Nombre ~Numérode Token des Fin ligne
Eh conséquence, POMSAPOMS = Oad = 1 d'octets la ligne instruct. ($01)
. Fn résumé, DEVINETTE = 208*144/139*1 =
215,48 = 215 (on est en INTEGER). L'interpréteur BASIC INTEGER analyse la
* Ligne 20735 : $E19A (-7782) et $ED9A mémoire octet par octet et exécute les
(-4710) se trouvent en ROM et contiennent instructions. A chaque fin de ligne,
donc des valeurs constantes (respectivement c'est-a-dire chaque fois qu'il rencontre m
78 et 79). Cette ligne peut donc s'écrire $01, il sait que les trois octets suivants ne
POKE 78, 12:POKE 79,184. Les adresses 78 et 79 représentent plus des instructions mais sont
correspondent. aux registres servant de des informations sur la ligne suivante
' "pacines" pour le générateur de nombres (longueur et numéro). Il positionne un "flag"
aléatoires. Si RDKEY n'est pas appelé entre (littéralement "drapeau"), situé en page zéro
temps, ND(4096) donne obligatoirement 2060, 4 l'adresse $D7, lui permettant de savoir
en raison des valeurs chargées dans les dans quelle configuration il se trouve. Si la
: registres (12 et 184). valeur en $D7 est supérieure a 128,
l'interpréteur sait que les octets suivants
* Ligne 20736 : en raison des explications sont des instructions; si elle est
ci-dessus, cette ligne équivaut a POKE inférieure, il sait que les trois octets
2069,PEEK(2060). Elle modifie lta table des suivants sont des "informations de ligne".
variables de 1'INTEGER, située a partir de
l'adresse 2048 ($800). Plus précisément : Lorsque 1l'interpréteur a analysé la ligne
2060 = adresse de l'octet de poids faible 20738, il a trouvé un $01 signalant la fin de
de la variable DEVINETTE ligne et a donc positionné $D7 a une valeur
2069 = adresse de l'octet de poids faible inférieure a 128. Il exécute ensuite
de la variable POMS. l'instruction décodée (le POKE 215,215) qui
17
\ Pom’s n°4 J
EE
a
4
ce ce ee ew sere. justement $07 A une valeur supérieure a
7-7 - -) - 128.
eee ee * Ligne 20739 - La ligne 20739 est stockée
Lara oi eral - ene - enn canmebbuit, en, méhoteee:
+ APPLESOPT — AvPLE sar 05-03-51-77-01, soit :
[ amr 1 + L 05 : nombre d'octets de la ligne
de BASIC = MOPPE BrANPICO ( + APPLESOPT er, ROX 03-51 : représente 20739 en Hexa
eratligrs Ucjare atze. 0? comida 77) cmc Oke pOUne IN MhetnootLone POP
aetas : LL) ] 01 : fin de ligne.
Quand 1l'interpréteur en arrive a cette ligne
20739, il trouve trois octets indiquant la
_ | 1 longeur de la ligne et son numéro, mais sur
U la foi de son "flag" $D7, il "croit" que ce
sont des instructions. La ligne 20739 est ;
donc analysée comme suit :
05 = "token" pour SAVE (sur cassette)
shee: apm tree} 03 " séparateur d'instructions
oS sae eS 51 -= "token" de.l'instruction END
; 77 = POP (ne provoque pas d'erreur puisque
i Bee as veurteas counts fs END a été rencontré).
ip Rs , sims, | Ainsi, aprés le “POKE 215,215", 1'Apple
pees ——mg—| exécute un SAVE sur la sortie cassette
ci ch (responsable du temps d'arrét observé ainsi
Lee centre disease. ( | gue des deux ‘bip') et un END. D'ailleurs,
comme le fait remarquer D. Devernay, un POKE
-27142, 3 permet de lister cette derniére
ligne bien malmenée :
20738 POKE POMS, POMS:SAV
Brix donnée b tltre indicatif, pouvant
Sire vodltiés aane préavic
—
:POP
REVENDEORS Rendez-vous maintenant pour les prochains
PONTACTEZ- 50 concours, qui permettront peut-@tre a D.
—= =
Devernay d'assurer son approvisionnement en
Pom's jusqu'a 1'aube du troisiéme millénaire!
LVJULVUUSE
Ul 100 M2 D’EXPOSITION
@erpic Hetlll
SOUBIRON S.A.
En plein coeur de TOULOUSE
c'est
100 m? d’exposition spécialisée
Une équipe de techniciens
@ votre service pour :
Etudes
Programmes
Mise en place
Formation
Service aprés-vente
9, rue Kennedy . 31000 TOULOUSE
CONTRAT D’ENTRETIEN : S.A.V. DEPANNAGE RAPIDE
\_ 18
Pom’s n°4
Création de tables de formes
La toute-puissante instruction DRAW du BASIC
Applesoft permet, entre autres choses, la
création de caractéres de formes et de
tailles trés diverses. Mais cette instruction
est liée a l'existence de tables de formes
(shape tables) un peu délicates a créer,
comme on peut le constater en lisant le BASIC
Programming Reference Manual, pages 92 4 95.
Les deux programmes détailiés ci-aprés sont
destinés a faciliter la création de ces
tables. Le premier, CONSTRUIT, rend pratique
le dessin de formes et le second, ASSEMBLE,
assemble les formes construites en une table
de formes selon la logique requise par
Applesoft. La disquette Pom's contient les
fichiers suivants, dont certains ne sont pas
listés ici, faute de place :
MENU ; oriente i'utilisateur
programmes de création graphique
entre les
les limites de dimension de la grille) et la
eréation d'un tableau de vecteurs. L'analyse
est effectuée de haut en bas et de gauche A
droite pour les lignes impaires, et de droite
a gauche pour les lignes paires.
Afin d'éviter la génération de vecteurs
inutiles, et pour économiser ainsi la place
mémoire, chaque ligne ne comportant que des
vecteurs de déplacement horizontal (1 ou 3)
est remplacée par un vecteur unique de
déplacement vers le bas (2). Ceci est réalisé
tant au'il n'v a pas eu de ligne comportant
Analyse du programme
190 a 280
Texte de présentation. Utilise la routine
. TRANSFERT : autorise un transfert rapide de de cadrage située en 1950. L2S est la
graphismes variable de travail pour le texte 4a
MINUSA, MINUSB, ..., MINUSZ : formes de 26 cadren
minuscules 290 a 350
. TAB-MINUS : table regroupant les formes des Demande la largeur LA% et la hauteur HA%
26 minuscules du graphisme a traiter (maximum 24 points
. ESSAYE : programme démontrant l'utilisation chacune). La touche RETURN appuyée deux
de TAB-MINUS pour entrer directement du texte fois consécutivement indique ia fin de
en minuscules a l'écran A partir du clavier. travail, traite@iien 610.
360
le programme CONSTRUIT Appel de la routine expliquant
l'utilisation des touches du clavier en
Avec ce programme, il est aisé de dessiner ou 900.
de corriger a l'écran une forme placée 4 370 4 380
l'intérieur d'une grille dont les dimensions Definition de la ligne de grille qui sera
auront été définies au préalable. Pour affichée dans le cas de création d'un
réaliser le dessin, 7 touches du clavier sont graphisme.
utilisées come suit 390
Débranchement vers la routine en 1480.
déplace le curseur vers le haut 400 a 420
déplace le curseur vers le bas Affichage de la grille pour création d'un
déplace le curseur vers la droite graphisme. Boucle sur la hauteur HA%
Se ... déplace le curseur vers la gauche obtenue en 290-350.
ero +. enregistre le point a la position 430 a 590
du curseur Routine de saisie des informations
espace .. efface le point 4 la position du passées par l'utilisateur, que ce soit en
curseur création ou en mise 4 jour. les quatre
RETURN .. indique au programme la fin du opérations de déplacement sont commandées
dessin par la fléche gauche (480-500), la lettre
"BY (510), la lettre "RH" (520) et la
leewaicne*aial Moangwe@A: beiall Ainenréaeateain fléche droite (530). Les signes "*" (540)
point de la figure haute résolution finale. et "2" (550) marquent le signe "*" a la
position du curseur et déplacent d'une
la pression sur la touche RETURN provoque case vers la droite. la touche
l'analyse de chaque point de 1'écran (dans d'espacement (560) met la position du
19
Pom’s n° 4 S
mel
.
~
curseur a blanc (effacement) et avance le 1220 si la position de 1'écran comporte
curseur. Le contréle de ia position du un "*", stockage du vecteur 5, indicateur
curseur en fonction des valeurs de HA% et du premier vecteur avec trace trouvé et
LA%® est réalisé dans la section 570-580. saut vers la fin de boucle.
La touche RETURN (590) est utilisée pour 1230 : dans le cas contraire, stockage du
identifier la fin de la saisie; on vecteur 1 et position de 1'écran 4 blanc.
appelle alors la routine 1160, qui 1250 :; s'il nty a pas de vecteur trace
analyse l'écran, le sauve sur disquette, dans la ligne (IN=0), retour arriére de
et revient en 240 pour demander le LA®-1 dans le tableau des vecteurs, et
prochain graphisme. mise A 2 du vecteur du ter caractére de
600 la ligne.
Retour a la lecture du clavier. ‘ 1260 : dans le cas contraire, on ajoute 1
610 a 740 au dernier vecteur pour forcer le
Routine de fin de travail, qui propose déplacement vers le bas, et 1 a l'indice
dtexécuter le programme ASSEMBLE ou de de la boucle sur les lignes afin de
clore le traitement. traiter la ligne suivante (ligne paire).
750 & 890 1270 : si la fin de boucle est atteinte,
Trois routines pour émettre des bruits attendre avant l'analyse.
note haute, note moyenne et note basse. 1280-1330 +: comme 1200-1270, mais pour
900 a 1150 une ligne paire, donc de droite 4 gauche.
Routine destinée a afficher le texte 1350 : fin de la boucle des lignes, donc
explicatif sur l'utilisation des touches de l'analyse de 1'écran.
du clavier. Ltaffichage est limité a 1355 ajout de deux vecteurs 4 zéro dans
trois fois durant l'exécution du le tableau.
programme ; tant pis pour ceux qui 1360 wait avant _—sauvegarde.
n'auront pas encore compris ... L'utilisateur doit appuyer sur une touche
1170 a 1360 r 5 pour en sortir.
la touche RETURN a été enfoncée. Ce 7370 A 1380
sous-programme _ analyse le contenu de Demande le nom du fichier disque qui
l'écran caractére par caractére, dans les recevra le tableau des vecteurs.
limites de LA% et HA%. Eh 1180, l'indice 1399 4 1470
Ky du tableau des vecteurs et Sauvegarde du tableau des vecteurs, dont
l'indicateur IN du premier vecteur avec la structure est la suivante : un entier
trace sont initialisés.
rt 2. 2. 2
Définitivement, les minuscules accentuées
avec la, ROM“LC”
Sans modification sur votre Apple’
vous pouvez avoir des caracteres
MAJUSCULES, minuscules, avec jambages
descendant, accentueés, graph., etc... La” ROM L.C.”
est compatible avec plusieurs Softwares:
sur APPLEWARITER, MAGIC WINDOW, TEXT/ED etc...
votre a La Boutique Nolre, Centre Beaugrenelle.
: Rue Linols 75015 Paris Tel: 575.59.96
(q| Revendeurs, contactez-nous.
*Pour Apple ll plus Rev. Tou ptus. |
L Pom’s n°4 /
donne le nombre de vecteurs du tableau;
il y a ensuite un entier par vecteur.
Retour au début de programme en 240.
1490 a 1630
Demande s'il
d'une mise
de vecteurs
une création;
1650.
1640
Instructions de sortie du programme.
1650 4 1850
Routine de lecture des vecteurs et trace
sur l'écran en mode texte selon leur
contenu.
1860 a 1930
Création du tableau LIt donnant les
adresses de début de chaque ligne de la
page 4 en mode texte (c'est vrai,
j'aurais pu les calculer ...)
s'agit d'une création ou
a jour d'un tableau (fichier)
existant. Retour en 400 pour
la mise A jour débute en
le programme ASSEMBLE
Ce programme réalise l'assemblage des formes
qui dessinées, puis sauvées par CONSTRUIT.
avoir regu l'adresse mémoire of sera
écrite la table ($6000 est un bon choix; de
toute facon, une table de formes est
“pelocatable"), et les noms des fichiers a
prendre en compte, le programme ASSEMBLE 1it
ces derniers et crée une table de formes. A
la fin de chaque fichier, la forme
correspondante est affichée en _ haute
résolution.
aprés
& fin de travail,
étre sauvée sur
la table de formes peut
disquette. Son contenu est
ensuite affiché & l'aide de 1'instruction
DRAW. Le programme pousse enfin la
gentillesse jusqu'd fournir A l'utilisateur
les deux POKEs a introduire dans le programme
appelé 4 utiliser la table de formes.
Remarque 3 il suffit de modifier les
instructions du programme CONSTRUIT entre les
numéros 480 et 530 pour remplacer les codes
de déplacement selon les quatre directions
cardinales par les codes traditionnels I, J,
K et M.
Tel qu'il est concgu, ASSEMBLE est adapté a
l'assemblage de formes ayant été créées sous
un nom ayant une racine commune, la derniére
lettre seule identifiant les formes a
assembler les umes aux autres. Quand on crée
avec CONSTRUIT des
=
formes destinées 4 étre
assemblées, il faut alors prévoir de leur
donner des noms adéquats. Si 1'on souhaite
donner aux formes initiales des noms variés,
il faut indiquer lors de 1'assemblage une
racine vide (on répond par un RETURN a
blanc).
Analyse du_programme
100 a 160
Création du tableau destiné a la
conversion de 1l'adresse de chargement de
la table.
190
Fonction modulo pour la conversion
décimale-hexadécimale.
200 4 260
Fntrée du nombre de figures 4 assembler
et des noms des fichiers source (SUB
1470).
270 a 290
Entrée de l'adresse mémoire (hexa) ou
doit @tre chargée la table.
300 a 330
Construction du début de la table en
mémoire ; nombre de définitions et index
de la premiére définition.
340 a 380
Calcul, mise en place et affichage de
l'adresse de la table dans les positions
connues d'Applesoft (SE8 et SE9).
400
M = adresse de la premiére définition, et
L = adresse ou sera écrite la prochaine
définition.
430 & 530
Boucle sur le nombre de figures
assemblage de la définition, calcul de
l'adresse de chargement de 1a prochaine
et affichage de la forme construite.
550 & 605
Sauvegarde (facultative) de la table sur
disquette. L'adresse et la longueur sont
affichées aprés la sauvegarde.
610 4 740
Affichage du contenu de la table.
770 a 860
Conversion hexadécimal a décimal de
l'adresse entrée au clavier en 270.
870 a 900
Sous-programme de conversion.
1230 a 1420
Lecture et chargement d'un fichier
source.
1470 & 1580
Entrée des noms des fichiers sources a
traiter.
5000 a 5500
Routine de création des octets de la
table A partir du tableau de valeurs
entiéres créé par CONSTRUIT. Toutes les
valeurs lues, comprises entre 0 et 7
inclus, sont combinées pour former les
octets de la table selon la iogique de
1' Applesoft.
7000 a 7090
Traitement de fin de programme.
gi |
Pom'’s n°4
ree
‘fs ‘
LOAD CONSTRUIT 420 NEXT NL
JLIST 430 REM
4990 REM ROO OOOO OIOIOIOROIOIOIOIOIO ONO
200) REM 202 OOO GIO OCR OIOIOIOIOROIOIOION « «
™ ™ ™ REMPLISSAGE x
« CREATION GRAPHISME * = bot
* HAUTE RESOLUTION x JOO IOIQIOIOIOIOIOIQIDIOIOIOIOIIIIO
™ « 450 LET VT = 1tHT = 1
x 08 FEVRIER 82 a 460 VTAB VT? HTAB HT
™ ™ 470 GET RPS
JOR 480 IF ASC (RF$) = 8 AND HT > 1
110 REM THEN HT = HT - 1% GOTO 460
120 DIM TBX(600) 490 IF ASC (RP$) = 8 AND HT = 1
130 REM DEF NUMEROS DE LIGNE AND VT = 1 THEN GOTO 460
140 GOSUEB 1860 500 IF ASC (RP$) = 8 AND HT = 1
150 SPEED= 255 THEN VT = VT - 13 GOTO 460
160 TEXT ¢$ HOME 510 IF ASC (RP$) = 66 THEN VT =
170 GOSUE 2080 VT + 1
180 REM 520 IF ASC (RP$) = 72 AND VT >
190- KEM; --=="S=5- ss 1 THEN VT = VT - 1
PROLOGUE 530 IF ASC (RF%) = 21 THEN HT =
porn (all iil
200 L2$ = “VOUS DESIREZ CREER UN 540 IF RFS = "x" THEN PRINT RPS
DESSIN EN" 33HT = HT + 1
210 VT = 23 GOSUE 1950 550 IF RPS = "$" THEN PRINT "x"
220 L2$ = "HAUTE RESOL ;3HT = HT + 1
U. Niet 0 ING 560 IF RP$& = " “ OR RPS = "%."
230 VT = 43 INVERSE : GOSUB 1950? THEN PRINT RPS;3HT = HT + 1
NORMAL 570 IF HT > LAX THEN HT = 12VT =
240 L2$ = "ENTREZ LA LARGEUR ET L UT eth 1s
A HAUTEUR" 580 IF VT > HAX THEN VT = 13HT =
250 VT = 8:3 GOSUB 1950 1: GOTO 460
260 L2$ = "SOUS LA FORME : LL,HH 590 IF ASC (RP$) = 13 THEN
" GOSUE 1160: HOME % GOTO 240
270 VT = 103 GOSUB 1950 600 GOTO 460
280 L2$ = "(YALEURS MAXI RESPECTI 610 REM 23300 GG OOOO
VES = 24 ET 24)" x x
290 VT = 12% GOSUB 1950 = FIN DE TRAVAIL x
295 VTAB 21: PRINT " (2 FOTS x x
RETURN POUR TERMINFK) ORO ROO IO ICO IO RO IOIOIOIOIOIOIOIO IOI
iw 620 HOME
300 VTAB VT + 3% HTAB 16 630 YT = 10
310 INPUT "=>"3LARGE$,HAUTS 640 VTAB 73 PRINT " ENTREZ : "
520 IF LEN (LARGE$) = 0 THEN
GOTO 610 650 L2$ = "1 SI VOUS VOULEZ ESS
330 IF VAL (LARGES) <1 OR VAL AYER LES DESSINS"
(LARGE$) > 24 THEN GOSUE 75 660 GOSUB 1950
0: GOSUB 800: GOTO 1460 670 VT = 123128 = "2 SI voUS vO
340 IF VAL (HAUT$) <1 0R VAL ULEZ TOUT ARRETER a
(HAUT$) > 24 THEN GOSUB 750 680 GOSUB 1950
: GOSUE 800: GOTO 160 690 VTAB 16% GET Zz$
350 LAX = VAL (LARGE$):HAX = VAL 700 IF ZZ$ = "2" THEN GOTO 1640
(HAUTS >
360 GOSUE 900: REM EXPLIC. 710 IF ZZ$ < > "1" THEN 620
370 REM 720 D$ = CHRS$ (4) PRINT
380 LIS = LEFTS$ ("..seeceeeeeess 730 PRINT D$3"RUN ASSEMBLE"
Ahorigese aioe eA AAX). 740 END
390 HOME : GOTO 1480 750 REM <<<<<NOTE HAUTE>>>>>
400 FOR NL = 1 TO HAX 760 POKE 749,30
410 VTAB NL? HTAB 1! PRINT LI$; 770 POKE 768,80
ae
\ Pom's n°4 _ -
a
780
790
800
810
820
830
840
850
860
870
880
890
900
910
920
930
950
960
970
980
990
1000
1010
1020
1030
1040
1050
1060
1070
1080
1090
1100
1110
1120
1130
1140
1150
1160
1170
1180
1190
CALL 770
RETURN
REM <<<<<NOTE MOYENNE>>>>>
FOKE 769,30
POKE 768,130
CALL 770
RETURN
REM <<<<<NOTE BASSE>>>>>
POKE 769,30
POKE 768,180
CALL 770
RETURN
REM
FEM SOC OOOIOIOIOIOIOIORORORONORON OKC
x 4
« TOUCHES FONCTIONS x
«x x
JQIIOIOIOIOIOIOIOIOIOIIOIOOOO IO
REM
SX = SX + 1% IF SX > 3 THEN
RETURN 940 HOME
FLASH : VTAB 2: FRINT "ATTEN
TEON 3"
NORMAL $VT = 5iL2$ = "NOTEZ
BIEN L’UTILISATION DES TOUCH
Est
GOSUB 1950
VTAB 8
PRINT "-> (FL.DROITE) =
CURSEUR A DROITE";
VTAB 10
PRINT "<- (FL.GAUCHE) s
CURSEUR A GAUCHE";
VTAB 12
PRINT "H (LETTRE HH? s
CURSEUR EN HAUT “3
VTAB 14
PRINT "B (LETTRE 6) =
CURSEUR EN BAS "3
VTAB 16
PRINT "3 (2 POINTS) =
POSITION REMPLIE"3
VTAB 18
PRINT "ESFACE OU ‘x’ =
POSITION BLANCHE";
VT = 20
L2$ = "<RETURN> QUAND C’EST
FINI.":3 GOSUB 1950
VTAB 24
HTAB 32: FRINT “<RETURN>"3$
GET Z$
RETURN
REM
FEM 3000000000909 OO RCC NC
x «
« ANALYSE D’ECRAN «
x x
LET K4 = O3IN = 0
FOR A = 1 TO HAX
1200 FOR CA = 0 TO (LAX - 1)
3210 gel Ed (K4 2 K4atvt
1220 IF PEEK (LIX(A) + CA) = 17
0 THEN TBXA(K4) = S8IN = 13
GOTO 1240
1230 TBX(K4) = 1% FOKE (LIX(A) +
CA),160
1240 NEXT CA
1250 IF IN = 0 THEN K4 = K4 - (L
AX - 1)3TBX(K4) = 23 GOTO 13
50
1260 TBA(K4) = TEX(K4) + 183A =A +
1
1270 IF A > HAX THEN 1355
1280 FOR CA = (LAX - 1) TO 0 STEP
-*
1290 LET K4 = K4 +1
1300 IF PEEK (LIZX(A) + CA) = 17
0 THEN TBX(K4) = 73IN = 13
GOTO 1320
1310 TEX(K4) = 3% FOKE (LIZ(A) +
CA),160
1320 NEXT CA
1330 TBX(K4) = TBX(K4) - 1
1350 NEXT A
1355 K4 = K4 + 13TBX(K4) = O3K4 =
K4 + AITBX(K4) = 0
1360 GET RFS
1370 HOME :VT 12:L2$ = ''NOM DU
FICHIER : GOSUB 1950
1380 VTAB 14% HTAB 15: INPUT "3
NMS
1385 IF NM$ = '''’ THEN 240
1390 D$ = CHRS (4)
1400 PRINT D$;"OFEN "'3NMS
1410) PRINT O$3"WRITE "3NM$
1420) LET K4% = K4% PRINT K4%
1430 FOR A = 1 TO K4%
1440) FRINT TBX(A)
1450 NEXT A
1460 PRINT D$;"CLOSE "3NM$
1470 HOME : GOTO 240
1480 REM
1490 REM
1500 HOME
1510 VT = 12
1520 L2$ = "CREATION OU MISE A JO
UR ?"
1530 GOSUB 1950: VTAB 14% HTAB 1
te
1540 GET Z$
1550 IF Z$ = "C" THEN HOME :
GOTO 400
1560 IF z$ < > "M" THEN 1500
1570 HOME :VT = 12
1580 L2$ = "NOM DU FICHIER ?":
GOSUB 1950
1590 VTAE 143 HTAB 16% INFUT "'"3
NMS
23)
eae
f 4
1595 IF NM$ = "" THEN 1500 1950 REM 200000 OOOO
1600 HOME $ VTAB 233 HTAB 38% « x
PRINT nny ™ CENTRAGE DE L2$ x
1610 D$ = CHRS (4) * x
1620 GOTO 1650 JOO OOOOOIOIOIOIOIDIOIOIDIDIOI
1630 REM =========F=[=N======== 1960 LET X = FRE (0)% REM FREE
== MEM
1640 HOME :L2$ = "A BIENTOT ..." 1970 IF LEN (L2%) > 39 THEN
12: GOSUE 1950: VTAB 2 PRINT "TROP LONG ..."
1980 HTX = (40 - LEN (L2$)) / 2
Gr te tee a eg 1990 REM FIN CENTRAGE TITRE
MISE A JOUR DE GRAF 2000 VTAB VT: REM FOURNI
batestastaatartateeietetetestetateeaeed 2010 HTAB HTX? REM CALCULE
2020 PRINT L2$% NORMAL i
1660 PRINT D$;"OPEN "$NM$ 2030 RETURN
1670 PRINT D$;"READ "3NMS 2040 FLASH $ PRINT "LONGUEUR L2$
1680 INPUT K4x% 240"
1690 LET CA = O< = 1 2050 PRINT L2$% NORMAL : STOP
1700 FOR X = 1 TO K4% 2060 FLASH : PRINT "HTAB = “$HTX%
1710 INPUT TBX: IF TRX = 0 THEN
1770 2070 GOTO 2050
1720 IF TBX > 3 THEN POKE (LIX( 2080 REM
LI) + CA),170% GOTO 1740 2083 REM ROUTINE SON
1730 POKE (LIX(LI) + CA),174 2085 REM
1740 ON (TBX + 1) GOTO 1760,1800 2090 POKE 770,173%3 POKE 771,483 POKE
»1820,1840,1760,1800,1820,18 772,192: POKE 773,136: POKE
40 774,208: POKE 775,5% POKE 77
1750 STOF 6,206$ POKE 777,1% POKE 778,
1760), LE = WE ~ 1% IF LI <1 THEN 33 POKE 779,240% POKE 780,93
GOSUE 750: GOSUP 750:LI = 1 POKE 781,202
2100 POKE 782,208: POKE 783,245%
1770 NEXT X POKE 784,174%3 POKE 785,0% POKE
1780 PRINT D$;"CLOSE "3;NM$ 786,33 POKE 787,76: FOKE 788
1790 GOTO 430 72% POKE 789,33 POKE 790,96:
1800 CA = CA + 13 IF CA » LAX THEN POKE 791,03 POKE 792,0
GOSUB 800: GOSUB 800:CA = L 2110 RETURN
ax - 1 JLOAD ASSEMBLE
1810 GOTO 1770 ILIST
1620 LE.= LE, tplity Fi LI «> HAK of
THEN GOSUB B50: GOSUB B50: 10 LOMEM: 16384
LI = HAX + 1 12) REM OOOO OOOO IO IOIOIOIOIOIONOIONOIOM
1830 GOTO 1770 ™ x
1840 CA = CA - 1% IF CA < 0 THEN «= TABLE DE FORMES *
CALL - 10523 CALL - 10523 « «
CA = 0 JOO OIIOIOIOIOIOIOIOIOIOIOIDIOIOI
1850 GOTO 1770
1860 REM 19 SCALE= 1
1870 REM NUMEROS DES LIGNES 20 DIM TPX(600)
1880 REM 40 TEXT $ POKE 34,0
1890 DATA 1024,1152,1280,1408,15 50 HOME : VTAB 13 HTAB 12
36,1664,1792,1920,1064,1192, 55 INVERSE
1320,1448,1576,1704,1832,196 60 PRINT " ASSEMBLAGE ": NORMAL
0,1104,1232,1360,1488,1616,1
744,1872,2000 70 POKE 34,2
1900 OIM LIX%(24) 90 REM
1910 FOR LI = 1 TO 24 100 REM
1920 READ LIA(LTI) 110 DIM HEX$(16,2)
1930 NEXT LI 120 FOR I = 1 TO 16
1940 RETURN 130 FOR J =1 702
24
~ Pom's n°4 ,
F .
140 READ HEX$(I,J) 540 HOME $ VTAB 21
150 NEXT J 50 REM
160 NEXT I 5560 REM GOO OOOO OOOO
190 DEF FN MOD(A) = INT (CA / x x
256 - INT (A / 256)> « 256 + = SAUVEGARDE TABLE x
+05) x SGN (A / 256) x x
200 REM OOOO IOIOIOIOIOIOIOIOIOIC
POU SMe CST eS SSeS ee ete SSeS ee | 570 FRINT “VOULEZ-VOUS SAUVER LA
x x TABLE ? "
x QEBUT DU FROGRAMMEX 580 GET AS
x x 590 IF A$ < > "O" AND AS << >"
OIC OIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOK N" THEN 540
220 VTAB 4! CALL - 958 600 IF A$ = “O" THEN INFUT “QUE
230 INFUT "COMBIGN OE FIGURES A L NOM ? "$NS3N$ = "BSAVE" +
ASSEMBLER ? "$L$ NS + ",A" + STRS (MH) + ",L"
240 LET NN = VAL (L$) + STR$ (L - M)t PRINT $ PRINT
245 IF NN < 1 THEN GOTO 7000 _ _CHRS (4)5N$
250 GOSUB 1470 605 FRINT N$: GET AS
260 FRINT 610 REM
270 INFUT "ADRESSE HEXA = "SLs 620 FRELM 20000 000
280 GOSUB 770: PRINT : tg
290 LET L = VAL (L$)! REM ADDR x ESSAI FIGURES «
300 FPOKE L,NN? FOKE (L + 1),0 wd x
310 LET LL = 4 + os JOO IOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOR
320 GOSUE 870 ag NESTE x re 630 HOME $ VTAB 21: PRINT "ESSAI
330 on OES FIGURES."$
POKE (#2) U2 tUROKEMCL 4S Bee cnet aRoes
340 LET LL = Lt GOSUE 870 610 ROT=a 342 = Oaicame 0
350 POKE 232,L2: FOKE 233,L1 oan Ei eee ol
355 HOME : PRINT 3 PRINT $ HTAE 59) Deaw NA AT X2,Y2
5: PRINT "AJOUTEZ DANS VOTRE a piped
EROGRAHME ft PRINT 720 X2 = X2 + LA: IF X2 > 260 THEN
360 PRINT t PRINT TAB 08)% X2) Sela cee EAs 5
TNUERSE 730 NEXT Ni
732 FOKE 34,0
370 PRINT "POKE 232,";L23"%3 FOKE 749 GOTO 7000
233,"3L1 ; 760 REM
380 NORMAL : PRINT tM = FRE (0) 779 REM ------~----~---------
CONVERSION ADRESSE
S90) .GEReAS! FRENTE OCTHGR® SF esee | vest cee camara emmsinrmn=
400 LET M = LiL =L +2 + NN xm 2 780 FOR K = 1 TO LEN (L$)
790 LET J$ = MIO$ (L$, LEN (L$)
j 410 VTAB 21 - K+ 1,12)
TOL ete tr oet se eets iets eey 800 FOR I = 17016
x x 810 IF J$ = HEX$(I,1) THEN J = VAL
x DEBUT DE LA BOUCLEx (HEX$(I,2)}3 GOTO B30
| ™ « 820 NEXT I
| peest tet tis ett ett tte $4 830 LET M=M+ 16% (K-1) x J
i 430 FOR Ni = 1 TO NN J
440 GOSUE 1230 840 NEXT K
470 GOSUE 5000 850 LET L$ = STRS (M)
500 PRINT "FIN DE LA FIGURE ";N1 269 RETURN
* 4 870 REM
: POKE L,0 sen gre
510 IF N1 < >N Beg COP RE =
| ee hp pan Lee a i CONV DEC-->HEX (POKE)
q GOSUR 970: FOKE MM,L2? FOKE 9220000 WUT TTS OTR Teena
h (MM + 1),L1
| 520 LETL=L+1 890) LET Live! INT CLL / 25608L2"=
523 HGR FN MOD(LL)
524 DRAW N1 AT 140,80 900 RETURN
530 NEXT N1
25
XY Pom's n°4 /
_——— eee,
7 “= \
1230 REM 200 OOOO OR OIONOROIOROIOROIONOIOM 5070 REM
x x 5080 REM 1ER VECTEUR
™ LECTURE AUTOMAT. x 5090 REM
x x 5100 VEX(1) = VE(1)
[30 5110 NB = NB # 13VE(1) = 0
1310 LET NMS = NM$(N1) 5120 GOTO 5020
1320 LET D$ = CHR (4) 5130 REM
1330 PRINT D$$"OPEN “$NM$ 5140 REM ZEME VECTEUR
1340 PRINT D$$"READ "3NMS 5150 REM
1350 INPUT C2% 5160 VEX(2) = YVEX(1) + (VE(2) «8
1360 FOR C1 = 1 TO C2% )
1370 INPUT TP%(C1) 5170 IF VEX(2) = 0 THEN 5330
1380 NEXT C1 5180 NB = NB + 13VE(1) = O3VEX%(1)
1390 PRINT D$;"CLOSE "$NMS a
1400 LET TPX(C1) = 0 5190 GOTO 5020
14405 LET TPX(C1 + 1) = 0 5200 REM |
1406 LET TPX(C1 + 2) = 0 5210 REM 3EME VECTEUR
1407. LET TPX(C1 + 3) = 0 5220 REM
1410 C1 = 1 5230 IF VE(3) < > 0 AND VE(3) <
1420 RETURN 4 THEN 5280
1470 REM 5240 YVE(1) = VE(3)3VE(3) = 0
1480 REM onc 5250 FOKE L,VEX(2):L =L +1
™ id 5260 NB = 1
™ LECTURE DES NOMS x 5270 GOTO 5060
™ DES FICH.SOURCES x 5280 YEX(3) = VEX(2) + (VE(3) « 6
x ba 4)
210111 5290 IF VEX(3) = 0 THEN 5330
1490 DIM NM$(NN) 5300 POKE L,VEX(3)i:L =L +1
1500 HOME : INPUT "PREFIXE 2 "3P 5310 NB = 1:VEX(3) = O1VEX(2) = 0
FS : : = 0! =
1505 IF LEN (PF$) = 0 THEN LE = Peahe 7 nae eae ore
1: VTAB 24% HTAB 31: FRINT " 5320 REM
RETURN"? VTAB 5: HTAE 1: GOTO 5339 REM FIN DE FORME
1510 Ter LE = 2 52) REN
1e20 RAEN Pee EO NTTI 5360 REM VEX(3) CONTIENT VECTEUR
1530 PRINT "NOM "$NM$" "ZPFS3
4 pao 5370 FOKE L,VEX(3)tL =L + 1
1540 rae LE = 1 THEN INFUT ""3NM = 5375 POKE L,0: POKE L + 1,0! FOKE
1550 IF LE = 2 THEN GET NM$! PRINT Tate is ie han ee ee
NMS
1560 NM$(NM) = FFS + NMS Seoul EE nek un
ieee eee 6000 DATA —0,0,1,1,24213131494>
51516165797 181 81919,A10, Bol
5000 REM irl be peat pac va 140412,D+19,E,14, F915
x TABLE DE FORMES x 7005 REM
m= z 7010 HOME : VTAB 21
MERMERE AMERE EX ORS Ee 7020 FRINT " 1 FOUR CONSTRUIRE
5010 NB = 13 REM NUMERO VECTEUR "
5020 REM 7030 VTAB 23
7040 PRINT " 2 FOUR ARRETER "
LECTURE/CODIFICATION ;
7050 GET Z$
5025 VE$ = STR$ (TPX(C1)>$C1 = C 7060 IF Z$ = "2" THEN HOME ? END
1+1
5040 IF VE$ < "0" OR VE$ > "7" THEN7070 HOME : FRINT
5020 7075 IF Z$ < > "1" THEN 7010
5050 VE(NB) = VAL (VE$) 7080 D$ = CHR$ (4)
5060 ON NB GOTO 5080,5140,5210 7090 PRINT D$;"RUN CONSTRUIT"
26
Pom's n°4 /
—————
be
JLDAD ESSAYE 20 INVERSE ? PRINT "FHEBUS"; $ :
ILIST NORMAL? FRINT " VOUS FROFOSE 3"
30 VTAB 83 GOSUE 200% VTAEB 8:
300 HOME $ HGR2 : HCOLOR= 3 CALL - 958
320 PRINT CHR$ (4)3"BLOAD TAB-M 40 FRINT "1 CONSTRUIT FOUR CR
INUS »A$6000" EER VOS GRAFHISMES";
330 POKE 232,0% FOKE 233,96% RDT= SO VTAB 11
03 SCALE= 1 60 FRINT "2 ASSEMBLE POUR LE
340 L2$ = "QUANO CE TEXTE SERA EF S ASSEMBLER (DRAW)"$
FACE VOUS POURREZ ENTRER": GOSUB70 VTAB 20
2000 90 PRINT " (ENTREZ LE NUMERO D
350 L2$ = "DES CARACTERES ALFHABE E VOTRE CHOIX) "3
TIQUES AU CLAVIER": GOSUB 20 100 GET Z$% PRINT
00 110 IF Z$ = "1" THEN FRINT D$;"
360 L2$ = CHR$ (13)% GOSUE 2000 RUN CONSTRUIT"
370 L2$ CHR$ (13)% GOSUB 2000 120 IF Z$ = "2" THEN FRINT D$;"
380 L2$ = " JE NE PISPOSE FAS ENC RUN ASSEMBLE"
ORE DES CHIFFRES NI DES": GOSUB 130 FRINT D$;"CATALOG "
2000 140 GET Z$
390 L2$ = "CARACTERES MINUSCULES 150 GOTO 10
ACCENTUES MAIS IL PEUT"? GOSUB200 REM
2000 240 PRINT " 4 PROGRAMMES ¢
400 L2$ = "ETRE INTERESSANT DE LE "
S CREER AVEC CONSTRUIT "$ GOSUE250 VTAB 11
2000 260 PRINT " CONSTRUIT FOUR SAIS
410 FOR WAI = 1 TO 5000% NEXT WA IR DES GRAPHISMES "
I 270 FRINT
420 HGR2 ?X = 03Y = 0 280 PRINT " ASSEMBLE FOUR CREE
430° Less oy R UNE SHAFE TABLE "
440 GET L2$ 290 FRINT
450 GOSUB 2000 300 FRINT " ESSAYE POUR ESSA
460 GOTO 440 YER UNE TABLE ®
1999 END 310 PRINT
2000 REM 320 FRINT “ TRANSFERT FOUR COPI
2020 FOR A = 1 TO LEN (L2$) ER DES SOURCES SUR"
2030 N = ( ASC ( MID$ (L2$,A,1))) 325 PRINT
330 PRINT " U
2040 IF N = 13 THEN 2230 NE AUTRE DISQUETTE"
2050 IF N = 32 THEN X = X + 6% GOTO 350 VTAB 23
2200 360 FRINT "
2060 IF N - 64 > 26 OR N - 64 < <<RETURN?" §
1 THEN CALL - 1052% CALL - 370 GET Z$? PRINT
1052: RETURN 400 RETURN
2070 DRAW N - 64 AT X+Y 60000 REM
2080 X =X +6 60002 REM CREE LE 20/02/81
2200 IF X > 273 THEN X = 03Y = Y 60004 REM
9, 60006 REM DATES DE MISE A JOUR
2210 IF Y > 183 THEN TEXT $ HOME 60010 REM
3 END 60012 REM 15/03/82
2220 NEXT A 60014 REM 18/03/82
2225 %IF LEN (L2$) = 1 THEN RETURN JLOAD TRANSFERT
ILIST
2230 X = OY = Y + 93 IF Y > 183 THEN
TEXT $ HOME + END 5 REM 3000000000000 OOONOOIOOIOIOIOIOIOIDIOION
2250 RETURN x .
* TRANSFERT SOURCES x
ILOAD MENU x x
ILIST « CONSTRUIT x
Po 8 3 oo 3 20000000
10 HOME $ YVTAB 3:D$ = CHR$ (4) 10 SFEED= 2553 TEXT
27
Pom’s n° 4 /
r
20 POKE 33,40 oy os ae
90 REM ===========s====s==== 2 faci ¢ aa en
100 HOME % VTAB 12% INVERSE ORL ng
110 L2$ = "TRANSFERT GRAPHISMES" - eateata: 4
115 HTAB (40 - LEN (L2$)) / 2% FRINT 49 a1 Sa
L2$ ae aa
| 130 FOR WAI = 1 TO 1300: NEXT WA ei ng
I 35
180 NORMAL ! VTAB 15% HTAB 10% INFUT oa
“COMBIEN ? "$CX%% DIM NM$(CX 5 DF az ana
%),NB(CX%) Chase Aled
oon REM OF 33 40 11
291
300 HOME OF
310 INPUT “LONGUEUR,HAUTEUR (MAX ae
I> "$LO%,HA% OE
315 PRINT ae
320 NN = LOX x HAX!NN = NN x CX! 38
PRINT "DIM = “$NN3 GET AS 13
330 DIM TBX(NN) 33
332 PRINT 1?
335 0$ = CHRS (4) a
340 PRINT CX%$“ NOMS $ "$ FOR T = oa
1 TO CX% INPUT NM$(T)$ NEXT T Ob
343 PRINT é
345 RL = 1! REM ENTREE DANS TB%
350 FOR IN = 1 TO CX%
370 PRINT D$}"OFEN "$NM$CIN)
380 FRINT D$;"READ "$NM$( IN)
390 INPUT NBCIN)
400 FOR Z = 1 TO NBCIN)
410 INPUT TBX(RL)SRL = RL + 1
420 NEXT Z
430 PRINT D$;"CLOSE "NM$(IN)
440 NEXT IN :
445° PRINT = zs
450 FOR T = 1 TO CX% 0S OR az fn Ba
460 PRINT NM$(T)3" A "SNB(T)$" E AC OF 33 40 Fi
ann nehou e C1 08 26 ae a
eG Best 35 OF 33 40 31
2 ce an
490 PRINT “CHANGEZ LA DISQUETTE a ne ES on al
PUIS <RETURN> "3% GET A$
650 REM
PVA SPC ete eee eee Steet eee eed
x x
= SAUVE LE TABLEAU x .
x «x
Po ooo oo 6 5605 oo 5 00 8 2 Oo
668 RL = 130% = CHR$ (4)! PRINT
670 FOR IN = 1 TO CX% 6g '
690 PRINT D$$“OFEN “3NM$CIN) 3
700 PRINT D$$"WRITE "“$NM$CIND oo
710 FRINT NBCIN) 2 gf
720 FOR I = 1 TO NBCIN) ? 40
790 FRINT TEXCRLISRL = RL + 1 40
600 NEXT I 49
810 FRINT D$;"CLOSE ";NM$(IN) 20
840 NEXT IN oo
860 END FF
3 28 Pom’s n°4 /
nae
Nous en avions l'intention depuis longtemps,
a force d'en entendre parler; nous avons
enfin pu essayer la carte M/DOS 6502
fabriquée par Micro Informatique Service
(MIS), 4 Nice.
Vendue au prix public de 2.800 F HT,
M/DOS 6502 est compatible Apple,
Silex et systemes intégrés
caractéristiques principales
suivantes :
. 16K supplémentaires de mémoire centrale;
un systéme d ‘exploitation de disquettes
(SED) puissant;
. une gestion par masques des entrées et des
sorties;
précision numérique de 48 chiffres signi-
ficatifs en traitement particulier;
adaptabilité 4 toutes les cartes 80 colon-
nes compatibles Apple/ITT 2020;
. compatibilité des programmes de 110K A 40
méga-octets;
. jusqu'’a 16 méga-octets peuvent
d'un seul tenant.
La conception originale du SED
par masques des entrées et
permettent de gagner beaucoup
la réalisation d'un programme.
la carte
ITT 2020,
IEF. Ses
sont les
étre gérés
et la gestion
des sorties
de temps dans
Nous l'avons
constaté Par nous-mémes en mettant des
programmes au point sur M/DOS 6502; cela nous
a été confirmé par des SSCI qui utilisent
aussi la carte.
La gestion de fichier
La gestion de fichier est trés différente de
celle du DOS, tout d'abord par la nature méme
des fichiers utilisés, dont on distingue
trois types :
. les fichiers
. les fichiers
. les fichiers
séquentiels relatifs;
séquentiels indexés;
multiclés.
La carte M/DOS 6502 4a lessai
Une grande originalité du M/DOS 6502 est la
gestion dynamique des fichiers. Il n'est pas
besoin de définir une longueur d'enregis-
trement précise. Quand un fichier de type FSI
ou FM est créé, le systeme propose une
longueur indicative de référence qui sert 4
sa gestion du fichier, et que l'utilisateur
peut modifier a loisir. Le SED gére par
lui-méme la longueur d'enregistrement.
Quel que soit le type de fichier, lorsqu'un
enregistrement recherché a été trouvé, cet
enregistrement est lu automatiquement. les
opérations possibles a partir de 1a
correspondent aux ordres suivants :
NEXT - lit l'enregistrement suivant selon les
clés ou le pointeur (s'il s'agit d'un fichier
multiclés, l'utilisateur sélectionne la clé)
BORNE = fixe une limite 4 la clé du fichier
(FSR, FSI, FM)
XTRACT - sélectionne un sous-fichier par
sélection d'une sous-zone dans la clé (FSI,
mM)
XINDEX = met dans le pointeur d'un FSR le
numéro du prochain enregistrement qui sera
eréé par un ordre WRITE (FSR)
WRITE = écriture d'un nouvel enregistrement
(tous fichiers); refuse les homonymes
ADD - écriture d'un nouvel enregistrement
(FSI, FM); accepte les homonymes
UPDATE = mise a jour d'un enregistrement
(tous fichiers)
READ = lecture d'un enregistrement (tous
fichiers)
DELET - destruction d'un enregistrement (tous
fichiers)
le M/DOS 6502 étant résident sur la carte, la
place que le DOS occupe sur les disquettes
(si l'on désire booter sans jongler avec les
disquettes) est libérée.
La gestion par masque des entrées/sorties
les fichiers séquentiels relatifs (FSR) sont
semblables aux fichiers séquentiels du DOS. Tl s'agit 14 d'une idée trés intéressante;
seuls ceux qui n'ont jamais travaillé a
les fichiers séquentiels indexés (FSI) l'aide de masques peuvent ne pas réaliser
possédent une clé d'accés unique formée d'un 1'apport de caux.ci . Un des premiers
ensemble de variables BASIC. Quand un programmes que jiai écrits quand j'ai
enregistrement est recherché, ou bien il est commencé a travailler sur Apple est un
trouvé et tout va bien, ou bien il ne l'est programme de gestion des menus et des entrées
pas et un drapeau signale l1'échec de la par masque sur 1'écran.
recherche.
Pour définir un masque de_ saisie en M/DOS
Les fichiers multiclés (FM) possédent au 6502, il suffit (une fois 1l'éditeur de
maximum 10 clés, chacune de celles-ci étant masques chargé) de. rentrer a l'écran les
soit un ensemble de variables BASIC, soit un libellés exactement ot on désire les voir
pointeur de fichier relatif. apparaitre. Pour cela, il suffit d'utiliser
= Pom's n°4 2)
[eee
trent
Mi il
un fichwer
i Zone en sortia
ssrhguyitenesti Servira pour tenvoyer
sheet a un message
EXEMPLE DE MASQUE E/S
les instructions de déplacement du curseur 4 Inconvénient 3
l'écran (f1éches, barre d'espacement, Les masques d'entrées/sorties gérent divers
RETURN). Ensuite, les endroits ot doivent formats et/ou modes de représentation :
étre rentrées les données sont délimités avec alphanumérique, entier, réel, gestion (x
les signes "<" et ">". Le nom de la donnée décimales). Il est regrettable qu'il n'y ait
correspondante est inscrit entre les deux, pas pour l'utilisateur la possibilité de
quand il y a suffisamment de place, 4 cété définir deux ou trois formats complémentaires
autrement. dont il a souvent besoin. Par exemple, il est
utile en gestion d'avoir le format
XX2« .XXxX .xxx,xxX dans lequel les grandes sommes
sont rendues lisibles par le découpage en
tranches de trois chiffres. Note ; un
contréle interzone conditionnel est annoncé
pour la release XI.
L'utilisstion de mémoires de masse
M/DOS 6502 a €té congu de fagon que
l'adaptation d'un programme 4 l'utilisation
de mémoires de masse (disquette grande
capacité, disque lourd) ne nécessite aucune
modification. Il est possible d'écrire le Inconvénient 4
programme de maniére 4 le rendre 1, carte M/DOS 6502 n'est pas compatible avec
immédiatement opérationnel sur divers jes cartes langage possédant la ROM F8, ce
supports de ce genre. C'est pourquoi MIS, qui est génant pour les utilisateurs de
ainsi que d'autres fabricants OU Pascal ou ceux qui ne peuvent se satisfaire
distributeurs, propose des systemes M/DOS ges maigres 18K disponibles avec Visicalc
6502 multipostes. Christian Colmant en parle 3.8 MIS a, parait-il, 1l'intention de
dans son article sur les mémoires de masse. modifier légeérement sa carte de facon Aa
rendre la carte langage prioritaire, ce qui
Commentaires généraux éliminera ce probléme.
Quelles sont les critiques que l'on peut ;
émettre 4 l'égard de la carte M/DOS 6502 ? Inconvénient 5
La carte actuelle consomme trop et, lorsque
Inconvénient 1 i nous avons voulu 1l'utiliser avec le lecteur
le tout premier est que, et il s'agit la d'un jy q‘IEF (voir l'article sur les mémoires de
défaut hélas bien frangais, la documentation masse), nous n'arrivions plus A booter. Il a
est franchement mauvaise; quand au texte, il fallu changer des ROMs de l1'Apple et y
pourrait étre plus clair. Les fautes de installer de plus puissantes pour enfin
francais courent aprés celles d'orthographe. pouvoir travailler. Il est vrai que, si 24
Alors que le M/DOS 6502 s'adresse aux j'Apple comporte huit slots, cela ne veut pas }
utilisateurs Apple, aucune référence n'est gire que l'appareil fonctionne si on les
faite, lors de la présentation des divers utilise tous ...
types de fichiers, au vocabulaire du DOS ou |
aux notions courantes pour les Appleomanes. 7
Apres ces critiques, quels sont les aspects
Inconvénient 2 J positifs que nous pouvons souligner ? Nous
la place que l'on est censé gagner sur la reprenons ici ce qui nous a particuliérement
disquette en n'y chargeant pas de SED est intéressés sans énumérer tous les avantages
reperdue par les fichiers que M/DOS 6502 doit annoncés au début de cet article. Nous
mettre en place pour effectuer sa gestion ptavons pas eu l'occasion d'utiliser M/DOS
dynamique de la mémoire. ih effet, la gestion 6502 en multi-poste et ne pouvons donc faire
de fichier est prévue pour des fichiers de 16 aucun commentaire sur ses performances A cet
M-octets et 64K enregistrements. égard.
X = Pom's n°4 wien
RET
Avantage 1 7 ,
Hors le probleme soulevé ci-dessus, la
gestion par masque des entrées/sorties gagne
beaucoup de temps lors de la création d'un
programme. Les fonctions READ, UPDATE et
WRITE, en gérant les informations un écran a
la fois, évitent de pénibles séries
d'instructions de lecture et écriture, tout
en compactant énormément les programmes.
Avantage 2
les fichiers multiclés sont particuliérement
utiles et épargnent l'écriture de routines de
recherche d'enregistrements par clés, tout en
fonctionnant de facon trés performante.
Avantage 3
L'équipe qui a mis le M/DOS 6502 au point est
une, équipe sérieuse. Nous avons eu l'occasion
de discuter avec des personnes qui avaient eu
des difficultés avec la carte intiale; il ont
bénéficié d'un excellent service aprés-vente,
et les problémes ont été résolus a4 la
satisfaction générale.
Conclusion
Dans les précédents articles, nous avons
placé dans un seul fichier les répertoires de
tous nos disques Pascal. Chaque ligne
contient le nom du fichier et sa date, le
genre et le type de programme, le nom du
disque et le numéro de la boite ot il est
rangé.
Nous allons
effectuer,
profiter de ces éléments pour
a l'écran ou sur 1l'imprimante, des
sélections permettant de retrouver un fichier
par son nom bien sr, mais aussi de lister
les fichiers sélectionnés sur un type et sur
un genre déterminés, ou encore d'éditer un
catalogue par numéro de boite ou par disque.
Le programme précédemment écrit (cf. Pom's 2
et 3) reste valable; seules les procédures
TRI et LIRE, qui étaient indiquées a
améliorer, sont Aa remplacer par celles qui
Paraissent aujourd'hui.
la __ procédure LIRE
différentes options ;
propose maintenant
(0) : édition
précédemment
(1) = édition du catalogue
fonction d'un type et d'un genre
(2) : édition du catalogue par nom de disque
ou de fichier
compléte du catalogue comme
sélectionné en
V
Un catalogue général
en Pascal
Fn gérant la structure des données et des E/S
écran et imprimante indépendamment de la
structure du programme BASIC, ce systéme
permet une plus grande adaptabilité des
applications sans modification du code en
BASIC. ,
Notre conciusion générale est tout a fait
favorable. La principale critique que l'on
pouvait adresser sur le fond était le manque
de transportabilité = un programme écrit en
M/DOS 6502 ne tourne que sur Apple et devra
donc &tre réécrit si l'on change de matériel.
Cet argument risque de perdre de son poids,
puisque MIS étudie actuellement la
réalisation de M/D@S 6502 sur 8088, 8086,
seus MS/DOS, CP/M86 et sur 68000!
Remarques de la société MIS
1. Une nouvelle documentation est en cours de
véalisation.
2. lh contréle interzone conditionnel est an-
noncé pour la release XI.
3. Des efforts sont consacrés actuellement a
l'amélioration de la carte, afin qu'il n'y
ait plus de problémes de puissance.
(3) +: édition numéro de boite ou de
fichier.
Le choix
demandé
booléen
par
étant fait, et le programme ayant
s'il faut une impression ou non, (le
IMP prenant la valeur de la fonction
OUI), le CASE distribue la tache en fonction
de Ltoption demandée. Si IMP est vrai,
édition d'un trait sur l'imprimante, sortie
de quelques lignes de papier et demande pour
une autre recherche, le booléen QUIT (qui
prend la valeur de NOT OUI) permettant
l'interruption de la boucle globale WHILE NOT
QUIT.
Les différentes procédures de sélection sont
trés simples
- demande de précision dans le critére
- choix du critére
sortie de la procédure par un EXIT si le
critére est nul
- sinon, affichage 4 1’écran ou sur 1'im-
primante des facteurs de sélection et lec-
ture ligne par ligne du fichier par une
boucle FOR I := 1 TO NUMCAT~1 DO.
La boucle effectue une comparaison avec les
valeurs de sélection; quand la fiche est
bonne, elle est imprimée si IMP est vrai,
sinon affichée a l'écran. Le paramétre I sert
A indiquer le numéro du fichier.
31)
Pom's n°4
Quelques remarques
- dans TRIGT : le type et le genre sont des
lettres de Aa Y entrées lors de la création
de la fiche; en effet la valeur 2 sert ici
a supprimer le facteur de sélection, c'est a
dire que genre A type Z Signifie n'importe
quel type de genre A.
- dans TRINOM ; il est possible, si l'on
utilise des noms de fichiers trés structurés
(par exemple, quand tous les programmes
graphiques comportent les lettres GR et les
programmes utilitaires UT) de remplacer
l'égalité de la boucle FOR par l'utilisation
de la fonction POS du Pascal. Dans ce cas,
(GARDEANOMFILE:ST)
devient (POS(ST,GARDE A.NOMPILE)<)0). On peut
trouver de cette fa¢gon tous les noms ayant
une syllabe valide au lieu d'une égalité
stricte.
(U/G) EXTRPOMS. TEXT {C) 1982 M. CRIMONT 31/03/82
PROGRAMME DE CATALOGUE GENERAL +*)
(ROI IOIDIDIDIDIOIOIDIDIDIDIOIOIDIDIDIDIOIDIDIDIDIDIOIOIOIDIDIOIOIOIE)
a dl ald la *)
CORO TI I I LILI III IIS
PROCEDURE TRI;
VAR I S INTEGER;
BEGIN
MESSAGE (3,’ EDITION DU CATALOGUE GENERAL’ )3$
IF IMF THEN
BEGIN
MESSAGE (10,° mum SUR L’IMPRIMANTE *xxxx’ )
WRITELN(PAPIER, “EDITION DU CATALOGUE GENERAL‘ ?55)
WRITELN(FPAFIER) END;
TITRE;
FOR I:=i1 TO NUMCAT~1 DO
BEGIN
GET (GARDE) $
IF IMP THEN IMPRIME(I,GARDE*) ELSE AFFICHE(I,GARDE%)
END 4
END;
PROCEDURE TRIGT$
var I tINTEGER:
G,T,NUL ?CHAR}
BEGIN
NUL 3=/Z’3
MESSAGE(S, ‘CODE DE *’A’’ A ’’Y’’ OU /’Z’* POUR TOUS’)
MESSAGE (7, “CODE GENRE?’)$Gt=PRENCAR(C‘A’«./Z’,’ “103
IF G=’ ’ THEN EXIT(TRIGT)}$
MESSAGE (9,/CODE TYFE $’)$Tt=PRENCAR(L‘A’«./Z/4/ 713
IF T=’ ’ THEN EXIT(TRIGT)$
.
,
°
,
32
a
Pom's n°4
( GOTOXY (0,3) ;WRITE(EFB ) 3; +)
MESSAGE (3,’CATALOGUE TRIE SUR ‘)3
IF G<>NUL THEN WRITE( ‘GENRE?’ ,G)3
IF (G<>NUL) AND (T<>NUL) THEN WRITE(’ & ‘)3
IF T<>NUL THEN WRITE(’TYFE $’,T)3
IF IMP THEN
BEGIN
MESSAGE (10,’ wmaax SUR L’’IMPRIMANTE xxmmm’) 5
WRITE(FAFIER,’ ‘215,’EDITION DU CATALOGUE TRIE SUR ‘)3
IF G<>NUL THEN WRITE(FAPIER, ‘GENRE? ‘,G)3
IF (G<>NUL) AND (T<>‘’Z’) THEN WRITE(PAPIER,’ & ’)3
IF T<>NUL THEN WRITE(FPAPIER, ‘TYPE?’ »T);WRITELN(PAFIER) §
END;
TITRE}
FOR It=1 TO NUMCAT-1 DO
BEGIN
GET(GARDE);
IF ((GARDE*.GENREL1]=G) OR (G=NUL) )AND( (GARDE*.GENREL23=T )OR(T=NUL) )
THEN IF IMF THEN IMPRIME(I,GARDE*) ELSE AFFICHE(I.GARDE*)
END
END;
FROCEDURE TRINOM;
VAR I s INTEGER;
OF CHAR;
ST ‘STRING;
BEGIN
ST8='"3
MESSAGE(5,’<1> NOM DE FICHIER’);
MESSAGE(6,’<2> NOM DE DISQUE’)3;
MESSAGE (7,’OPTION ?’) SOP 3=FRENCAR(EC ‘1°, ’2/°3)3
MESSAGE(9,’NOM DU ’)3IF OF=’1’ THEN WRITE(’FICHIER:’) ELSE WRITE
(/DISQUE3’)$; IF OF=’1’ THEN I$=15 ELSE Ii=73
(K$Y-H)
PRENCHAINE (1, (0A 66 /Z' 9/04 00 49% 9 0 “IP 9 ST)3
Cx$Vtm)
IF ST=’’ THEN EXIT(TRINOM) 3
GOTOXY(0,3);WRITECEFB) 5
MESSAGE (3,’CATALOGUE DU ‘)3
IF OP=‘1’ THEN WRITE( ‘FICHIERS ’,ST)
ELSE WRITE(’DISQUE:’,ST);
IF IMP THEN
BEGIN
MESSAGE (10,° wxmax SUR L’“IMPRIMANTE *&uxm’) 5
WRITE(PAFIER,’ ‘315,’CATALOGUE OU ‘)3
IF OF=‘1’ THEN WRITE(PAFIER, ‘FICHIERS? ’,ST)
ELSE WRITE(PAFIER, ‘DISQUE:’,ST);WRITELN(PAPIER) $
| END}
TITRE;
] FOR I:=1 TO NUMCAT-1 DO
| BEGIN
GET (GARDE);
j IF (¢OF=’1’) AND (GARDE*.NOMFILE=S1) )
} OR ((OF=’2’) AND (GARDE*.NOMDISK=ST)) THEN
IF IMF THEN IMPRIME(I,GARDE*) ELSE AFFICHE(I,GARDE*)
END
END;
FROCEDURE TRINUM;
VAR I,N tS INTEGER;
OF ‘%CHAR;
BEGIN
Pom’s n°4
a
$=03
MESSAGE (S,’<1> NUMERO DU FICHIER’);
MESSAGE(&,’<2> NUMERO DE EOITE’)};
MESSAGE(7,’OPTION ?’) OF S=PRENCAR(C‘1’,’2°1)3
REPEAT
MESSAGE(9, “NUMERO ’);
IF OF=’1’ THEN WRITE(’DU FICHIER:’) ELSE WRITE(’DE BOITE:’)$;
ENTIER(4,N)
VWNTIL (N<NUMCAT 35
IF N=0 THEN EXIT (TRINUM)$
GOTOXY(0,3);WRITEC(EFE)$
IF OF=’1’ THEN
BEGIN
TITRE}
SEEK (GARDE ,N) } GET(GARDE ); AFFICHE(N,GARDE*)
END ELSE
BEGIN
MESSAGE (3,’CONTENU DE LA BOITE NUMERO ’ )$WRITEC(N)$
IF IMF THEN
BEGIN
MESSAGE (10,’ xmmmx SUR L’*IMPRIMANTE xuxmxm’ ) 3
WRITE(FAPIER,’ ’315,’CONTENU DE LA BOITE NUMERO ’,N)3$
WRITELN(PAFPIER) §
END;
TITRE};
FOR Ii=1 TO NUMCAT~1 DO
&EGIN
GET (GARDE);
IF GARDE*.NUMBOITE=N THEN
IF IMP THEN IMPRIME(I,GARDE*) ELSE AFFICHE(I,GARDE%)
END
END
END;
PROCEDURE LIRE;
VAR CHOIX ‘CHAR;
BEGIN
QUITS=FALSE};
GOTOXY (0,2) ;WRITE(EFE)3
MESSAGE(3,’LE CATALOGUE DOIT ETRE DANS LE DRIVE 2’);
WHILE NOT QUIT DO
BEGIN
GOTOXY (0,4) ;WRITE (EFE ) $ NUMLIGNE $ =63
MESSAGE (4,’<0>%EDITION COMFLETE’ );
MESSAGE(S,’<1>%EDITE FAR GENRE & TYFE’)};
MESSAGE(46,’<2>%EDITE PAR NOM (DISQUE OU FICHIER)’)$
MESSAGE(7,’<3>3EDITE PAR NUMERO (EBOITE OU FICHIER)’);
WRITE (INV); IMP: =FALSE;
MESSAGE(9,’OPTION ?’) $CHOIX3=PRENCAR(L‘0’..’3°1)3
MESSAGE(9,’VOULEZ-VOUS IMPRIMER ? ’);IMP$=OUTI}
WRITE (NORM) §
IF IMF THEN TRAIT;
GOTOXY (0,3); WRITECEFE) 5
SEEK (GARDE,1)3
CASE CHOIX OF
“O° S TRIS
‘1’ STRIGTS
“2° 3 TRINOM$
“3°3 TRINUM
END;
IF IMP THEN TRAITFIN3;
MESSAGE(22,’UNE AUTRE RECHERCHE (O/N) ? ’)$QUIT$=NOT OUI
END
+
g =a Pom's n°4
y,
— SS
ne
Chargez vite
vos fichiers binaires
Ce programme, baptisé &LOAD, effectue un valeur doit étre inférieure a4 512, pour ne
chargement. rapide de tout programme en pas écraser la pile ni la page zéro. Si le
binaire, y compris les images graphiques: nom du fichier est donné entre guillemets,
ceci est rendu possible par l'appel direct de les blancs sont significatifs, sauf s'il sont
la RWTS et le chargement direct de chaque placés a droite.
secteur a son adresse définitive (sauf le
premier et le dernier, pour ne pas "abimer" Dans cette version, la routine se dissimule
l'environnement). Grace a ce programme, une entre le DOS et ses buffers. Ces buffers sont
image graphique haute résolution est chargée descendus de deux pages, ce qui peut étre
en trois secondes, et méme moins si le moteur ennuyeux si on utilise &LOAD dans un
est déja lancé. programme qui positionne HIMEM trés haut en
mémoire.
Cette routine requiert 48K de mémoire, le DOS
3.3 A son adresse habituelle et l'Applesoft Une autre solution consiste 4 la dissimuler
en ROM. Elle peut étre appelée sous dans le premier buffer du DOS en $9AA6, ce
Applesoft, a partir d'un programme ou en mode qui permet, si l'on ne touche pas & MAXFILES,
direct. Elle ne fonctionne ni en Integer, ni un fonctionnement normal de la plupart des
en mode moniteur, car la commande "&" n'est programmes. I1 est en effet rare que l'on ait
pas interprétée dans ces deux cas. Hofin, plus de deux fichiers ouverts simultanément.
nous rappelions qu'elle ne s'applique qu'aux La procédure a suivre est alors la suivante
fichiers de type binaire. remplacer les lignes 68 & 70 par RTS, et
changer 1'ORG de la ligne 74 de $9B00A
Elle ne détruit aucune adresse mémoire de 1a $9AA6.
page 0, sauf bien sar celles utilisées par
RWIS. Elle nécessite un seul pointeur page 0, Le programme a été écrit a l'aide de
qui est d'tailleurs restauré a la fin, et des l'assembleur BIG MAC, qui est a mon avis
adresses inutilisées dans le DOS. intrinséquement supérieur au LISA 2.5. Il
autorise en particulier 1' assemblage
La syntaxe est la suivante : conditionnel et l'utilisation de minuscules
@énomfichier[,adresse de chargement] dans les commentaires.
ou bien :
&variablealpha(,adresse de chargement] Note de la rédaction : nous avons grace
&LOAD chargé en 9 secondes au lieu de 30 un
L'adresse de chargement est optionnelle; elle fichier de i44 secteurs. Question ; les
peut étre un nombre ou une variable adresses AA60 (longueur de fichier) et AA72
numérique, mais elle doit étre décimale. Sa (début) ne sont plus valables. Oi les
trouve-t-on
IBRAIRIE LA NACELLE
INFORMATIQUE e ELECTRONIQUE © AUTOMATISME e MICROPROCESSEUR
TOUS OUVRAGES ET ABONNEMENTS
FRANCAIS ET ETRANGERS
Tous les ouvrages francais ou étrangers signalés dans cette revue peuvent étre obtenus ou commandes 4 La Nacelle
2, rue Campagne-Premiére 75014 PARIS - Tél. 322 56 46
Métro Raspail - Parking a la hauteur du 120 bd du Montparnasse
ouvert tous fes jours lundi compris, sans interruption de 9 h 30.418 h 50, samedi fermeture 417 h 50,
35)
Pom's n° 4
ORG $9000 4
1
2 «
3 x
4 pete et SETS CSS CSS StS TSEC SSeS Se Ss
a x x
6 x &ELOAD x
7 x x
8 x Jacaves Tran-Van x
9 x «
10 pete CtS StS CSS ECS SOS SCS SOS SSS SES Sg
ry “x
12 x
13 « 18/04/82
14 x
15 x
16 PTR EQU $1E
17 START EqQu $1E
18 VALTYPE EQU $11
19 TRAF EQU $48
20 LINUM EQU $50
21 CHARGET EQU $B1
22 CHARGOT EQU $B7
23 TXTPTR EQU $B8
24 AMPERVT EQU $3F5
25 ERHANDL EQU $A6D5
26 CLNBUFF EQU $A7D4
27 ERRCOOE EQU $AASC
28 NAME EQU $AA75
29 LENGTH EQU $AAAB
30 SAV1 EQU $AAAC
31 SAV2 EQU $AAAD
32 TEMP EQU $AAAE
33 FLAG EQU $AAAF
34 ADRFLAG EQU $AABO
35 BUFFER EQU $B3BE
36 TAMPON EQu $B4BB
37 RWTS EQU $B7B5
38 roB EQU $B7E8
39 VOLUME EQU IOE+3
40 TRACK EQqu I0&+4
4l SECTOR EQqu) IOE+S
42 BUFADR EQU IOE+3
43 COMMAND SQU) IOE+12
44 BASCERR EQU $D412
45 FRMNUM EQU $DD67
46 FRMEVL EQuU $DD7B
47 CHKCOM EQU $DEBE
48 PTRGET EQU $DFE3
49: GETAOR EQU $E752
So SETVID EQU $FE93
¢
see
TT
Prete:
RS S88 LBS SSSAESSSCESAT AP aR ARSSSASSURISSESIS aA Ae SAG
a
cr
eo
fa
ny
©
eB
“a
Fe
2
fe
4
td
8
rt
8
”
6
a
oo
o
40
18
a
cy
ra
rr
ny
34
9
rf
Ec
60
"0
£6
4c
9
“wzte ac
W2e_ 83 IF a8
Si « ixeid
s2 x
9000: Ag 00 53 LDA #<ENTREE spositionne le vecteur
9002: 8D Fé 03 54 STA AMPERVT+1 $d’ ampersand
9005: A? 9B 55 LDA #>ENTREE
9007: 8D F7 03 56 STA AMPERVT+2
900A AP 4C 57 LDA #$4C 37 UMP’
900C: 8D FS 03 58 STA AMPERVT
900F AZ 00 5? LDxX #0
9011: BD 28 90 60 MOVEPGM LDA MOVEADR»X cache le pam entre
90143 9D 00 9B 61 STA ENTREE,X jle dos et ses buffers
90173 EB 62 INX
90183 D0 F7 63 BNE MOVEPGM
901A: 8D 2B 91 64 MOVEPGM1 LDA MOVEADR+256,X
901D: 9D 00 9C 65 STA ENTREE+256,X
9020: EB 66 INX
36
\s Pom's n°4 —~
r-
90213 DO F7 67 BNE MOVEFGM1
90233 AY 9A 68 LOA #$9A
9025: 8D 01 9D 69 STA $9001 sdecale les buffers des 2 pages
9028: 4C D4 A7 70 JUMP = CLNBUFF set les reconstruit
71 x
72 MOVEADR EQU x
73 x
74 ORG $9600
75 x
98002 AS 1E 76 ENTREE LDA FTIR jsauve les memoires page 0
9802: 8D AC AA 77 STA SAVI sutilisees par le pam
i" 9B05: AS 1F 78 LDA FTR+1
9807! 8D AD AA 79 STA SAV2
9B0A: 20 B7 00 80 JSR CHARGOT
9B0D! C9 22 81 CMP 4/"’ stitre entre apostrophes ?
; 9BOF: DO 28 82 BNE NOCONST
911: AY 06 83 LDA #6 smodifie CHARGET pour qu’elle
9813: 85 Ci 84 STA $C1 saccepte les espaces
91S: AO 00 85 LOY #0
9817: 8C EE B7 86 STY VOLUME jvolume prevu
9B1A3 20 B1 00 87 INPLOOP JSR CHARGET slit le caractere suivant
9B1Di C9 22 88 CMP, #70"
WB1iFs FO OC 89 BEQ ENDONAME 3fin du titre
9821: 09 80 90 ORA #$80 3leve le bit de poids fort
9823! 99 75 AA 91 STA NAME,Y ssauve le nom dans NAME
9826: CB 92 INY
9827; CO 1E 93 CPY #30 spas plus de 30 caracteres
9829: 90 EF 94 BCC INPLOOP
9B2Bi BO 34 9S BCS SYNTAX 3si trop lona, ‘SYNTAX ERROR’
9B2Di AY EF 96 ENONAME LDA #$EF
9B2F: 85 Ci 97 STA $C1 srestaure CHARGET
9831: 20 B1 00 98 JSR CHARGET
9B343 CO 00 99 CrY #0
9B36: DO 4C 100 BNE ENDSTOR s;termine par des espaces
9B38: 60 101 RTS sretour au BASIC
102 x
9839: AS BS 103 NOCONST LDA TXTPTR
9B3B: 48 104 FHA 3sauve le pointeur de CHARGET
9H3Ci AS B9 105 LDA TXTPTR+1
9B3E: 48 106 PHA
9B3F: 20 7B DD 107 JSR FRMEVL sevalue l’expression
9B42: 24 11 108 BIT VALTYPE scontrole le type de la variable
9B44; 30 08 109 BMI STRING 361i < 0, alphanumerique
9B46; AZ AB 110 LDX #$A3 scode de ‘TYPE MISMATCH’
9848: 20 FS 9C 111 JSR RESTORE
9848; 4C 12 D4 112 JUMP BASCERR jaffichage du message d’erreur
113° «
9B4E: 68 114 STRING PLA stecupere le pointeur initial
9B4F: 85 B9 115 STA TXTPTR+1
9BS1: 68 116 PLA
f 9B52; 85 BS 117 STA TXTPTR
9854; 20 E3 DF 118 JSR PTRGET s;trovve le pointeur de variable
98573 85 1E 119 STA PTR tle range dans PTR
9BS93 84 1F 120 STY PTR+1
f 9BSB: AD 00 121 LDY #0
9BSD: B1 1E 122 LDA (PTR),Y slonaveur du nom
9BSF: DO 05 123 BNE NONUL le string existe
9613 AZ OB 124 SYNTAX LOX #11
9B633 4C 0A 9C 125 JMP ERROR stetour au BASIC, et ‘SYNTAX ERROR’
9866; 8D AB AA 126 NONUL STA LENGTH
9869: CB 127 INY
9B6A: Bi 1E 128 LDA (PTR)+Y spointeur vers les valeurs
9B6C: 48 129 FHA jdans PTR
9B6D: C8 130 INY
a 37 J
Pom’s n°4
[2
( ~
9B6E: Bl 1E 131 LDA (PTR),Y
9B70: 85 1F 132 STA PTR+L
9B72: 68 133 PLA
9B73: 85 1E 134 STA FTR
9B75: AO 00 135 LDY #0
9B77: Bil 1E 136 STORE LDA (PTR) LY ssauve le titre dans NAME
9B793 09 80 137 ORA #$80
9B7B: 99 75 AA 138 STA NAME,Y
987E: C8 139 INY
987F:; CC AB AA 140 CFY LENGTH
9B82: DO F3 141 BNE STORE
9BB4: AP AD 142 ENDSTOR LDA #" " scomplete le nom par des espaces
9B86: 99 75 AA 143° SPACE STA NAME,Y
9B89: C8 144 INY
9BBA: CO 1E 145 Cry #30
9B8C: DO FS 146 BNE SFACE
9B8E: 8D BO AA 147 STA ADRFLAG 3flaq d’adresse < 0
148 «x
9B91S 20 F5 9C 149 JSR RESTORE srestaure le pointeur(si erreur)
9B94: 20 B7 00 150 JSR CHARGOT $y a-t-il autre chose derriere ?
9B97: FO 12 151 BEQ SEARCH snon
9B99; 20 BE DE 152 JSR CHKCOM alors il faut une virqule !
9B9C: 20 67 DD 153 JSR FRMNUM sevalue la formule qui suit
9B9F: 20 S52 E7 154 JSR GETADR sranae l’adresse dans LINUM
9BA2: AS 51 155 LDA LINUM+1 3si adresse de chargement < $200
9BA4: CF 02 156 CMF #2 alors erreur !!
9BA6: 90 BI B57 BCC SYNTAX
9BA8: 4E BO AA 158 LSR ADRFLAG 3flaq d’adresse > 0
159 x
9BAB: AG 01 160 SEARCH LDA #1 scommande lecture powr la RWTS
9BAD: 8D F4 B7 161 STA COMMAND
9BBO0S AP 10 162 LDA #$10
9BB2: BD ED B7 1463 STA SECTOR
9BBS: AY 11 164 LDA #$11
9BB7; 8D EC B7 165 STA TRACK
9BBA: 20 ES 9C 166 JSR SETBUF SBUFFER pris comme buffer
9BBD: CE ED B7 167 NEXTSCT DEC SECTOR ssecteur suivant
9BCO: FO 46 168 BEQ NOFILE 3fin de la directory
9BC2: 20 CB 9C 169 JSR READSCT lecture du secteur
9BCS: AO EB 170 LDY #$EB
9BC7: BC AE AA 171 STY TEMP
9BCA: AD AE AA 172 NEXTFIL LDA TEMP
9BCD: 18 173 CLC
9BCE: 69 23 174 apc #35
9BDO: AS 175 TAY spointe vers le prochain titre
9BD1: 8D AE AA 176 STA TEMP
9BD4 C9 03 177 CMP #3
9BD6} FO ES 178 BEQ NEXTSCT 3fin dv secteur
9BD8: AZ 00 179 LDX #0
9BDA: B9 BB B3 180 TESTNOM LDA BUFFER,Y
9BDD: FO 29 181 BEQ NOFILE 3fin de la directory
9BDF3 DD 75 AA 182 CMP NAME,X scompare le nom a NAME
9BE2; DO Eé 183 BNE NEXTFIL
9BE4: C8 184 INY
9BES: ES 185 INX
9BES: EO 16 186 CPX #30
9BE8: DO FO 1B7 BNE TESTNOM 3fin du nom ?
188 x
9BEAt B9 9C B3 189 LDA BUFFER-31,Y javel est son type ?
9BED: 29 04 190 AND #4 sbinairet4 ou 84) ?
9BEF: DO 04 a7. BNE FINDFIL joui bon type
9BF 1; A2 0D 192 LOX #13 $code de ‘FILE TYPE MISMATCH’
9BF3: DO 15 193 BNE ERROR
9BFS3 AC AE AA 194 FINOFIL LDY TEMP srecupere le pointeur de non
9BFS: B9 B9 B3 195 LDA BUFFER-2,Y
38 Pom’s n°4 —_
ne —
"4
B7 196 STA SECTOR 3# du secteur de la TSL
B3 197 LDA BUFFER-3,Y 3# de la piste de la TSL
198 BMI NEXTFIL #si efface, le saute
B7 199 STA TRACK
200 BNE LOAOPGM charger le proqgramme
201 NOFILE 10x #6 3code de ‘FILE NOT FOUND’
AA 202 ERROR STX ERRCODE srange le code de l’erreur
9C 203 JSR RESTORE srestauvre les memoires page 0
FE 204 JSR SETVID sPR#0
Ab 205 JMP ERHANOL $saut a la routine d’erreur du DOS
206 x
AA 207 LOAOPGM STA FLAG initialisation de FLAG(<> 0)
‘ 9C 208 NEXTSL JSK KEADSCT slit la TSL dans BUFFER
209 LOx #$0C spointeur dans la TSL
210 LDA START srecupere l’adresse du buffer,
211 LOY START+1 3si c’est la Zeme TSL
' 9C 212 JSR LOCBUF
AA 213 LOA FLAG
214 BEQ INFSECT tsi = 0, lit le secteur
9C 215 JSR SETTAMF sTAMPON est pris comme buffer
9C 216 INPSECT JSR READPGM 3lecture du secteur du pan
AA 217 LOA FLAG
218 BEQ NEXTONE
AA 219 BIT ADRFLAG 3chargement a une autre adresse ?
220 BMI NOADR snon
221 LOA LINUM
B4 222 STA TAMPON
223 LOA LINUM+1
B4 224 STA TAMPON+1
225 NOADR SEC
B4 226 LOA TAMPON
227 SBC #4 jcalcule les adresses
228 STA START 3de debut de programme,
B7 229 STA BUFADR set de chargement
B4 230 LOA TAMPON+1
231 SBC #0
232 STA START+1
B7 233 STA BUFAOR+1
234 LOA #4 sdepart du ‘move’ du ler
9C 235 STA DEPLACE+1 {secteur du pam
236 CLC
B4 237 AOC TAMPON+2 saugmente la lonauveur de 4
$ AA 23B STA LENGTH slonaueur du dernier secteur
239 LOA #0 $fin du ‘move’
9C 240 STA ENDMOVE+1
AA
Showing the first 100000 of 189150 characters.