Skip to main content

magazine poms07

  • PublicationApple Periodicals
  • Pages68
  • Sourcemagazine_poms07.pdf
← Magazines magazine poms07
/ 68
Source: Internet Archive — Aggregated Apple-era periodicals, 1981–2012.
Page 1
Loading…
Text content (OCR)
Formation continue a la micro-informatique #7) a — oS aM PHOTO GUINHID RUN Tous nos informaticiens viennent de l'informatique traditionnelle, et en maitrisent totalement les langages Classiques . Assembleur, COBOL. FONTNAN... Ils utilisent leur professionnalisme et les méthodes de linformatique pour réaliser des applications professionnelles en micro-informatique. Nous vendons des micro-ordinaleurs sans programme. Nous vendons aussi des micro-ordinateurs avec les programmes. Il s’agit de programmes réalisés par la societé KA dont nous garantissons la qualité et le bon fonctionnement. Nos formateurs enseignent l'informatique. L'enseignement de la micro-informatique nécessite des formateurs pro- fessionnels, suffisamment de matériel pour que chacun puisse pratiquer, un support de cours couvrant non seulement I'enseignement diffusé, mais permettant au participant de s'auto-former aprés |e stage. Nous avons deja accueilli de nombreux stagiaires, d'horizons el de centres d'intéréts divers : chefs d'entreprise, universitaires, profes- sions libérales, informaticiens, musiciens compositeurs, retraités, cadres de grandes entreprises, revendeurs de micro-ordinateurs... Nous proposons 5 ibilités : Stage de 2 jours bases de données. Comment utiliser les progiciels : bases de données @ manipulateurs de nombres et générateurs de lableaux e générateurs d'états imprimés Application pratique (un 48 K + un lecteur de disquettes pour deux participants). Apres ce stage, on peut générer, a partir de progiciels, un programme totalement adapté a son application en moins d'une journée de travail. Ce stage nécessite de connaitre la manipulation de l'APPLE II, ‘ou d’avoir suivi au minimum la journée d’initiation. Dates 27-28 juin 29-30 aotit Prix 2192 F h.t. B® Stage de 1 semaine de programmation BASIC. Il débute par la journée d initiation. Le stage permet Wassimiler fa luyique de programmation et de l'appliquer (un micro-systeme 48 K pour 2 participants) En fin de stage, on sait établir un programme de gestion de fichier avec consultation en temps réel Ce stage ne nécessite pas de connaissance de départ en intormatique Dales du 18 au 22 avril du 16 au 20 mai du 20 au 24 juin Prix 4245 F ht. Bi Stage 3 jours disquettes. Consacré a l'organisation 4 la programmation et 4 | exploitation de fichiers sur disquettes magnétiques, 4 travers |étude du Disk Operating System APPLE I! Travaux pratiques sur micro-systémes (un 48 K + un lecteur de disquettes pour deux participants) Ce stage nécessite e soit d'avoir suivi le stage de 1 semaine de prograimmation au préalable e soit d avoir une bonne connaissance théorique et une sérieuse pratique de BASIC de | APPLE I! Dates du 25 au 27 juillet du 17 au 19 octobre Prix 3378 F ht Wi Journée d’initiation - Dates : 18 avril, 16 mai, 20 juin - Prix 773 Fh.t. Le nombre de places pour chaque st @ Journées de sensibilisation et stages de formation a Paris et en Province. s organisés mande € instance régionale ) pour la duré de la formation. assure la formation et fournit les supports de cours. ge est strictement limite. a fa fos pour la qualite de l'enseignement et par les contraintes du materiel Deux animateurs sunt preserits pout aider les participants a la realisation de leurs programmes Un support de cours tres complet est remis a chaque participant Pour la journée d’initiation et pour les stages. les dejeuners sont pris en commun ei compris l’informatique douce- Renseignements et inscriptions a KA - Programme detaillé sur demande. 212 rue Lecourbe 75015 Paris - Tél. 533.13.50. Le calendrier 83 est disponible. *Linformatique douce” est une marque déposée de la société KA poms n°7 Saiinaixe Page Langage“ Niveau** Editorial par Hervé Thiriez 5 Les arcanes du Moniteur Apple III par Bruno Lemaire et Gilles Mauffrey 6 A P Cryptographie a clef publique par Olivier Herz 7 P M-T Graphique, quand tu nous tiens... par Guy Mathieu 15 B [ Graphiques et logique par Olivier Herz 21 A M-T Hard Copy Seikosha par Olivier Herz 22 A M-T La souris de Lisa par Hervé Thiriez 24 / a L’Apple Ile a l’essai par Jean-Francois Duvivier 25 / T Des programmes relogeables par Philippe Francois 27 A M Dump Pascal par Michel Marquis 29 P EF Un générateur par Denis Sureau 35 A M-T Un programme de test universel par Denis Sureau 39 B af Visicalc et traitement de texte par Hervé Thiriez 43 B FE HELLO corrigé par Thierry Le Tallec et Jacques Tran-Van 46 A M-T Gestion de masques en BASIC par Gérard Michel 47 B-A M-T FID, MUFFIN et DEMUFFIN par Alexandre Duback 55 fi Hig a Le cours de BASIC Applesoft d’André Finot ae par Jean-Jacques Crépy 56 / T a Multiplan a l’essai par Hervé Thiriez 57 / T a Effacement de directory en Pascal par Régis Lardennois 59 P M Création de fichiers EXEC par Yvan Koenig 60 B T | Boot PLE + CRAE par Michel Marquis 61 B M-T | Un programme de fondu enchainé par Denis Sureau 62 A P-T | Les quatre ponts par Olivier Herz 63 B cr 4 Courrier des lecteurs 64 / tA Courrier des clubs 66 / / Trucs et astuces 26-58 if / * Langage : Blasic) - A(ssembleur) - P(ascal) ** Niveau : D(ebutant) - M(oyen) - P(rofessionnel) - T(ous) Il s'agit-lé du niveau nécessaire pour comprendre le fonctionnement du programme décrit dans l'article, ou pour digérer l'article lui- méme Ceci dit, un programme peut étre utilisé sans compréhension de son fonctionnement interne (sinon, qui jouerait aux échecs sur ordinateur ?) Les annonceurs B.F.I. : p. 42 — BMI : 3* couv. — ANDRE F. FINOT : p. 20 — JCR : 4¢couv. — KA: 2¢couv. LOGMA :p.18 M.B.D.C. :p.58 — MICRO INFORMATIQUE SERVICE : p. 4 — MICROMOS . p. 13-45 — MINIGRAPHE . p. 17 — L'ORDINATEUR INDIVIDUEL p. 14 — P.S.I. : p. 54 — SYBEX : p. 32-33 — TOTALE FORMATION : p. 47 Editions MEV - 49, rue Lamartine - 78000 Versailles Directeur de la publication : Hervé Thiriez. Imprimerie Sim, 75011 Paris. Imprimé en France Népét légal : 1** trimestre 1983, Pom’s n° 7 3 * La division de la longueur des program- mes par 20. * La possibilité réelle de dessiner ses mas- ques de saisie ou d’impression. Une indépendance totale de la périphérie choisie par rapport au systeme. ° L'intégralité du systéme contenu sur une carte mémoire de 20 K. e Une gestion de mémoire de 140 K a 120 mégas. Des utilitaires déterminants -un générateur de programmes de ges- tion de fichiers permettant méme le séquentiel indexé multiclé -un générateur d'écrans. ‘S.E.P. Marketing Carte MEM/DOS 6502 LE SYSTEME D’EXPLOITATION DU 6502 - MONOPOSTE/MULTIPOSTE * CALL FN, une nouvelle commande basic, trés puissante, intégrée au systéme permettant V'appel des sous-programmes par noms avec passage de paramétres et variables locales. ¢ Une version multiposte assurant la mise en commun totale des ressources sans conflit et Vautonomie des postes intelligents disposant de leur propre unité centrale. *Des programmes compatibles APPLE J[ et APPLE fffautomatiquement transférables sur COMMODORE 8096. eEt pour demain, des logiciels développés aujourd’hui directement compatibles avec le réseau local memnet. p % 3, rue Meyerbeer - 06000 NICE - Télex 461 916 F SEEMI D.S.A. INFORMATIQUE MICRO ALPHA SOFT 5, bd Dubouchage 06000 NICE Tél. (93) 85.15.96 % 25200 MONTBELIARD Tél. (81) 97.16.46 Tél. (40) 75.52.80 11, impasse du Lacquet 61, rue Ch. Riviére - B.P. 0701 22, rue Ges 6 Fisrres 44401 REZE CEDEX GB C.LC.C. BENELUX MICROMEGAS Grove house MEGAVOLT S.A. the bordage = Rue de Bleurmont 69007 LYO! St Peter Port 32B Tél. (7) 861. Nos2 GUERNSEY —B 4920 EMBOURG (0481) 20155 Editorial Aprés des mois et des mois d’attente, nous avons enfin vu le 19 janvier les nouveaux produits d’Apple, le Ile et le Lisa. Bien entendu, nous vous en parlons dans ce septiéme numéro de Pom’s. Par opposition au dernier numéro, dans lequel nous vous avons offert plusieurs longs articles, nous vous proposons ici de nombreux articles de.tous genres. Les amateurs de Pascal peuvent se réjouir, ils trouveront trois programmes écrits*dans leur langue ! Trois contributions assez importantes occuperont vos soirées pendant quelque temps : tout d'abord, un générateur de programme dii 4 Denis Sureau, et accompagné d'une application sous forme de test programmable. Ensuite, Olivier Herz nous asséne un programme Pascal de cryptographie 4 clef publique — grace auquel vous pourrez coder et décoder des messages. Enfin, Gérard Michel concurrence le MEM/DOS en vous donnant un programme de gestion de masques dont I'analyse devrait permettre de grands progrés aux débutants ayant déja lu ses articles précédents... De nombreux autres articles vous apporteront de multiples idées et de non moins nombreux programmes. Guy Mathieu nous montre comment exploiter les possibilités graphiques de I'Epson, ce dont Olivier Herz s'inspire pour vous aider 4 effectuer des opérations logiques sur les pages graphiques. Nous apprennons 4 utiliser les minuscules dans Visicalc sur Apple II, puis nous analysons la conversion bidirectionnelle entre Apple Writer et des fichiers TEXT. Michel Marquis nous propose un programme BASIC de boot pour lier PLE et CRAE (voir le numéro 1 de Pom’s) a l'allumage de l'appareil et un programme de dump en Pascal. Philippe Francois apprend aux programmeurs en assembleur comment réaliser des programmes relogeables. Régis Lardennois nous enseigne une sécurité pour l'utilisation du directory Pascal. Bruno Lemaire et Gilles Mauffrey ont analysé le moniteur de |’Apple III et nous donnent quelques bonnes adresses. Quand 4 Olivier Herz, il propose encore un programme de Hard Copy pour Seikosha et un jeu (les quatre ponts) : avec un autre auteur comme lui, Pom’s pourra devenir mensuel ! Suite aux nombreuses questions des lecteurs relatives aux programmes FID et MUFFIN, Alexandre Duback apporte quelques explications sur leur mode d’emploi. Vous trouverez aussi dans ce numéro un banc d’essai de IApple Ile (Jean-Francois Duvivier est de retour parmi nous), une présentation du Lisa, une analyse du programme Multiplan et du programme d'apprentissage du BASIC d’André Finot. Nous rappelons aux nouveaux lecteurs qu’une disquette facultative en DOS 3.3 accompagne chaque numéro de Pom’s. Cette disquette reprend tous les programmes de la revue, agrémentés d’explications, d’un générique (souvent) et de programmes de démonstration (parfois). Les disquettes peuvent étre commandées séparément. Le recueil numéro 1 de Pom's regroupant les quatre premiers numéros est en train de « partir » & toute vitesse. Attention, nous n’en avons tiré que 5 000 ! On peut commander les trois disquettes du recueil séparément pour 150 francs (voir le bulletin). Nous vous remercions de continuer a nous faire confiance et encourageons tous les lecleurs qui nous envoient leurs contributions. Nous vous donnons rendez-vous du 14 au 18 juin & notre stand (T3) au salon Micro-Expo. Hervé Thiriez Ont collaboré & ce numéro : Jean-Jacques Crépy - Alexandre Duback - Jean-Francois Duvivier - Philippe Frangois - Oli- vier Herz - Yvan Koenig - Régis Lardennois - Bruno Lemaire - Thierry Le Tallec - Michel Marquis - Guy Mathieu - Gilles Mauffrey - Gérard Michel - Denis Sureau - Hervé Thiriez - Jacques Tran-Van. Rédacteur : Olivier Herz — Dessins ; Laurent Bidot. Directeur de la publication - rédacteur en chef : Hervé Thiriez - Siége social et abonnements : Editions MEV - 49, rue Lamartine - 78000 Versailles - Réaction : 59, bd de Glatigny - 78000 Versailles - Tél. . (3) 918,13.07 - Courrier des lecteurs (logiciel) : Olivier Herz - 17, rue du Gros Chéne - 44300 Nantes. Biss pebleliare : Force 7 - Anne Jourdan - 39, rue de la Grange-aux-Belles - 75483 Paris Cedex 10 - Tél. : (1) 38.66.10. Diffusion auprés des boutiques et librairies : Editions du PSI - 41-51, rue Jacquard - B.P. 86 - 77400 Lagny-sur-Marne. Composition - Impression : SIM - 52, rue Servan - 75011 Paris - Tél: (1) 357.51 20 Pom’s n° 7 CTRL - @. - RESET (ou les arcanes du Monitor Apple III) Bruno Lemaire - Gilles Mauffrey Tout utilisateur d’Apple III, surtout s'il a aussi utilisé un Apple Il, s'est sans doute posé au moins une fois les questions suivantes : qu’'y a-tl derriére le rempart mystérieux du SOS ? Peut-on utiliser le langage machine de l’Apple III aussi commo- dément que celui de son petit frére, puisqu'ils utilisent tous deux le méme processeur, le 6502 ? Nous allons donc essayer de donner dans cet article quelques éclaircisse- ments sur utilisation et l'implanta- tion mémoire des principales routi- nes moniteur de l’Apple III, en réser- vant a un article ultérieur la présen tation de la structure du SOS. Structure de la mémoire A. Généralités La mémoire de l’Apple III peut étre considérée comme essentiellement composée de zones (banques) de 32 K-octets ; une exception est faite pour la zone s’étendant de $F000 4 $FFBF qui contient normalement le moniteur en ROM, mais qui peut étre « switchée » pour contenir une zone RAM du SOS. Le nombre de ces zones est variable, et dépend de la configuration de l'utilisateur. Il y a ainsi 4 zones pour un Apple 128 K, et bien stir 8 zones pour un Apple 256 K. Il n'y a cepen- dant que 64 K directement adressa- bles par l'utilisateur, décomposés en une banque « systéme » allant de $0000 & $1FFF, et de $A000 4 SFFFF, et en une banque utilisateur allant de $2000 a $9FFF. C'est cette banque qui est « switchable » par une simple modification du contenu de $FFEF. Ce contenu varie de F0a F2 pour un 128 K, et de FO a F6 pour un 256 K. Si l'on veut implanter en mémoire un programme machine, on dispose done sans probléme d’au moins 32 K, plus une partie de la banque systéme non utilisée par le SOS. Par contre, si l'on désire utiliser davantage de mémoire en modifiant Commandes moniteur le numéro de la banque utilisée, il faut veiller 4 ce que la partie du pro- gramme qui veut adresser d'autres banques soit sur la banque systéme. B. Zones particuliéres 1) En dehors de la page zéro tradi- tionnelle (réservée pour différents pointeurs et pour l’adressage indirect du 6502), et de la pile systéme en” page | (de $100 a $1FF), d'autres zones font fonction de page zéro (adressage indirect étendu, unique- ment lorsque le SOS est actif) et de pile pour le SOS et pour le pro- gramme machine chargé au moment du boot. 2) Mémoire écran. — Pour le texte. En 40 colonnes, elle utilise les positions de $400 4 $7FF. En 80 colonnes, elle utilise aussi $800 a $BFF ; les caractéres de rang pair sont alors stockés de la page $4 4 la page $7, les autres étant placés entre les pages $8 et $B. — Pour les graphiques. Commence en page $20. Symbole Syntaxe Utilisation G nG Execute le programme commengant en n J nd Saute 2 l'octet n Ss octet < m pS Recherche 'existence d'un octet entre m et n M n<m.pM Copie la zone comprise entre m et p a partir de n v meme syntaxe que M (= Verify) U Jump en 3F8 pour routine utilisatenr (User) R bloc<bufl buf2R Transfére une zone disque en zone mémoire w bloc <bufl.buf2w Fait lopération inverse. Attention : opération potentiellement dangereuse ! m, n et p sont des adresses en hexadécimal. bufl et buf2 désignent le début et la fin du buffer de données. Routines moniteur Les débuts de chaque routine sont données en hexadécimal ; celles-ci sont nommées d’aprés la correspon- dance qu’elles ont avec celles de lApple II. FOAF — PRBYTE (print a hexade- cimal digit) envoie le con- tenu de l’accumulateur sur l’organe de sortie — PRHEX envoie le quartet bas de l’accumulateur sur Yorgane de sortie FB7D — HOME FBAF — CROUT1 (return with clear) : nettoie l'écran a partir de la position cou- F9B7 rante du curseur, puis appelle CROUT (= retour chariot) — COUT 1: envoie le caractére qui est dans Vaccumulateur FCDS — GETLN : collecte une ligne de 80 caractéres FC06 FDO07 — CROUT: envoie un retour chariot FDOC — KEYIN : lit le clavier de lApple III FD60 — RDKEY : traite le carac- tére saisi au clavier Clefs Le préfixe « e » est mis pour Escape. eL — ; netloie fin de ligne (e-Een All) eP : nettoie bas de l’écran (e.F en A Il) a partir du curseur eS : Home e.fléche : déplacement dans le sens de la fléche 2.8 : passage en 80 colonnes e4 : passage en 40 colonnes (pour sortir du mode Escape, taper deux fois d’affilée sur Escape). Nous terminons ici cette premiére présentation, remettant 4 un autre article une analyse de la structure du SOS. Bien entendu, le titre de cet article vous indique la fagon d’obte- nir le mode moniteur. Il est difficile de le découvrir par (alonnements ! Pom's n°7 Cryptographie a clef publique Olivier Herz Le programme ci-joint intéressera sans doute un grand nombre d'industriels ainsi que tous ceux qui sont préoccupés par le secret de leurs communications : il s'agit de limplémentation sur Apple Il en Pascal d'un systéme de cryptogra- phie a clef publique dont nous pou- vons assurer T'inviolabilité =méme avec l'aide des plus puissants ordina- teurs. Pour Iutiliser, il n'est pas nécessaire de connaitre le langage Pascal, mais il faut savoir se servir du SYSTEM.EDITOR et du SYSTEM FILER. Cryptosystéme 4 clef publique Dans un cryptosyst@me convention- nel, l’expéditeur et le destinataire du messaye possédent tous deux une clef secréte (c’est-a-dire un ensemble de paramétres, habituellement des grands nombres choisis au hasard) permettant d’exécuter |’algorithme de codage du message par !'expédi- teur et celui de décodage par le des tinataire. Ce message, une fois codé, peut étre transmis par un moyen de communication non secret, comme la radio. Il est clair que la fiabilité d'un tel systéme repose sur le secret de la clef, qui doit étre distribuée au moyen de canaux sdrs, afin de ne pas étre interceptée. Dans un cryptosystéme 4 clef révé- lée (ou publique), on n’a pas besoin d’un canal secret pour distribuer les clefs. Au contraire, chaque utilisa- teur posséde deux clefs : une clef de codage qu'il rend publique et une clef de décodage privée. L’expédi- teur code donc le message avec la clef publique du destinataire, qui le décode avec sa clef privée. L'inviola- bilité réside dans le fait qu’on déduit trés facilement par le calcul la clef publique 4 partir de la clef privée alors que I'inverse exigerait des mil- liers d’années de calcul sur ordina- teur, voire plus! C’est ce qu'on appelle une fonction A sens unique et Agache ; ce calcul inverse ne peut se faire qu’en connaissant une infor- mation secréte, la gache de la fonc- tion. Pom’s n° 7 CESYSTEME COMPLET DE CRYPTOGRAPHIE A CLEF PUBLIQUE) (#$C (C) OLIVIER HERZ OCTOBRE 1982 POUR POM’S*) PROGRAM CRYPTOGRAPHIE; USES APPLESTUFF; VAR COMMANDE: CHAR; PROCEDURE MENU; CONST TAILLE =167; LUNGUEUR =36; TYPE ENTIER =INTEGER{LONGUEUR] ; CHOIDECA =SET OF CHAR; VAR BS, CR CHAR; NOM STRING} INVFACTEUR, BASE ,FACTEUR :ENTIER; CLEF 1ARRAYE1..TAILLE) OF ENTIER; PUBLIQUE sTEXT; PRIVEE sFILE OF ENTIER; CODE ,CLAIR 2TEXT; MODTAB 1ARRAYE1,..LONGUEUR) OF ENTIER; KRHA HHH KH KE AK HK EKER AK AR ERED (% PROCEDURES HABITUELLES COURANTES %) ce 3 MERCI MICHEL CRIMONT! *»> KKH KH HH HH HHH HH HHI KD PROCEDURE MESSAGE(1: INTEGER; S:STRING) ; BEGIN GOTOXY(@,1>; WRITE(S,CHR(11)) END; FUNCTION PRENCAR‘ BONSET : CHOI DECA? : CHAR; VAR CH :CHAR; BEGIN REPEAT READ<( KEYBOARD, CH) ; IF EOLN(KEYBOARD>) THEN CH:=CR; IF NOT (CH IN BONSET) THEN WRITECCHR(7)? ELSE IF CH INL’ ’../z‘] THEN WRITE<CH) UNTIL CH IN BONSET; PRENCAR1=CH END; PROCEDURE OUT(S:STRING) ; VAR CH 1CHAR; BEGIN CLOSE(PRIVEE) ; CLOSECPUBLIQUE) ; CLOSE(CODE); CLOSECCLAIR? ; PAGE( OUTPUT) ; MESSAGE( 18,S) ; WRITECCHR(7)) ; MESSAGE( 12,’ APPUYEZ SUR <RETURND’) ; CH:=PRENCARC(ECRI> ; EXIT<(MENUD END; PROCEDURE SORTIE; BEGIN OUT<’CLEF OU MESSAGE NON VALIDE’> END; PROCEDURE DEHORS; BEGIN OUT<’TITRE OU LECTEUR NON VALIDE’) END; PROCEDURE PRENENTIER(S:STRING; VAR ENT:ENTIER) ; VAR I o:1.. TAILLE; BEGIN ENT:=@5 IF (LENGTH(S)=8) OR (LENGTH(S)>36) THEN SORTIE; FOR I:=1 TO LENGTH(S? DO BEGIN IF NOT (SEI] IN [’8%..’971) THEN SORTIE; ENT :=ENTX 18+ (ORD(SE1)-48) END END; PROCEDURE NOMFICHIER(S:STRING; I: INTEGER) ; VAR Si #STRINGE 13; BONSET :CHOIDECA; BEGIN CLOSE (PRIVEE) ; CLOSE(PUBLIQUE); CLOSE(CODE); CLOSECCLAIR) ; SS ys La méthode Les systémes cryptographiques actuels tendent de plus en plus a uti- liser des problémes dits de type NP (non polynomiaux) caractérisés par le fait que le nombre d’opérations nécessaires 4 leur résolution croit comme une fonction exponentielle, et non polynomiale, de leur taille. Notre programme utilise un cryptosystéme basé sur le probléme NP de l'empilement : étant donné n jetons de hauteurs respectives Ay A, et une hauteur C, coniment peut-on obtenir C en empilant un sous-ensemble de ces n jetons ? On ne connait actuellement pas d’autre solution que la recherche systémati- que de tous les empilements possi- bles (au nombre de 2 puissance n). Par contre, ce -probléme est trés facile dans un cas particulier : quand la hauteur d’un jeton est supérieure Ala somme des hauteurs de ceux qui le précédent (i.e. A; somme de 1 ai- 1 des Ay. Il suffit alors pour le résou- dre d’essayer de soustraire de C-le dernier jeton ; si c'est impossible, on essaye l'avant-dernier, etc. jusqu’a ce que l'on y arrive; puis l'on recommence le processus avec le résultat de la soustraction, etc... On parvient ainsi 4 la solution en n opé- rations au plus. On concoit donc que l'on utilisera comme clef privée les jetons d'un probléme facile et comme clef publique ceux d’un pro- bléme difficile. Explication des calculs On note By...B, les « hauteurs » du « problame facile » de TAILLE n ; soient M un trés grand nombre (la BASF) supérieur 4 la somme des Bjet F (le FACTEUR) inférieur & M. F doit étre premier avec M afin que Ton puisse trouver son inverse modulo M ('INVFACTEUR E, tel que E.F = 1 modulo M). Ceci cons- titue la clef privée et la gache est for- mée de M et de E. On calcule alors les n « hauteurs » Ay...Ap, du « pro- blame difficile » par la formule A; = (BF) moduloM ; les A; forment la clef publique. Pour le codage, on décompose le texte en bits valant 0 ou 1; nous avons utilisé pour coder un caractére les 6 chiffres de la décomposition binaire de la différence entre son code ASCII et 32 ; c’est le tableau BIT de la procédure CODAGE ; les minuscules, de code ASCII supé- rieur 4 96, ont été remises en majus- PAGE(OUTPUT) ; MESSAGE(18,S); S1:=" ’; NOM:=7"; BONSET :=0 78.0797 4A. 72%, 20%. 724,787, 2405 REPEAT IF LENGTH<NOM)=6 THEN S1f 1]:=PRENCAR<BONSET> ELSE IF LENGTH(NOM)=I THEN SI[1]:=PRENCAR(ECR,BSJ) ELSE S1[1]:=PRENCAR(BONSET+{CR,BS1) ; IF S101] IN BONSET THEN NOM:=CONCAT<NOM,S1) ELSE IF Sif1]=BS THEN BEGIN WRITE(BS,’ ‘ ,BS); DELETE(NOM,LENGTH(NOM) , 1) END UNTIL S1f1]=CR; IF POS(“#’ ,NOM)=8 THEN NOM:=CONCAT(“#4:° ,NOM) ; IF LENGTH(NOM) >I THEN NOM:=COPY(NOM, 1,1) END; FUNCTION PLUSGRAND(A,B:ENTIER) : BOOLEAN; VAR U,V :STRING; BEGIN STRCA, UD ; STR(B,U) ; IF LENGTH(U) >LENGTH(V) THEN PLUSGRAND:=TRUE ELSE IF LENGTH(U)<LENGTHCV) THEN PLUSGRAND:=FALSE ELSE PLUSGRAND :=U>V END; FUNCTION EGAL(A,B:ENTIER? : BOOLEAN; VAR U,V :STRING; BEGIN STR(A,U); STR(B,U); EGAL:=U=U END; FUNCTION RND;: INTEGER; BEGIN RND:=RANDOM DIV 16384 END; PROCEDURE ECRIS(I: INTEGER) ; BEGIN WRITE(’.’); IF I=TAILLE DIV 2 THEN WRITELN END; PROCEDURE FAITMODTAB(ENT :ENTIER) ; VAR T :1.-LONGUEUR; BEGIN FOR I:=1 TO LONGUEUR DO BEGIN MODTABI 1] :=ENT-(ENT DIV BASE) XBASE; ENT:=16XMODTABL I} END END; PROCEDURE MODULO(VAR ENT:ENTIER) ; VAR I :1..LONGUEUR; S iSTRING; BEGIN STRCENT,S); ENT:=8; FOR I:= 1 TO LENGTH(S) DO ENT 1=ENT+ (ORD(SLI J) -48) XMODTABELENGTH(S) + 1-115 ENT:=ENT-(ENT DIV BASE) XBASE END; (88000888000, «% CODAGE X> (HERE KRRRERD PROCEDURE CODAGE; VAR I,J,K : INTEGER; CH CHAR; s :STRING; BIT tARRAYIG..63,1..61 OF @..1; ENT sENTIER; BEGIN (XCODAGEX> NOMFICHIER( “NOM DU CORRESPONDANT: “, 13); (kB1-%) RESET< PUBLIQUE , CONCAT<NOM, ’ . TEXT’) 5 IF IORESULT(>@ THEN DEHORS; CRBI4®) PAGE( OUTPUT) ; WRITELN( ‘LECTURE DE LA CLEF PUBLIQUE’); FOR I:=1 TO TAILLE DO BEGIN IF EOF(PUBLIQUE) THEN SORTIE; ECRIS(1); READLN( PUBLIQUE ,S) ; PRENENTIER(S,CLEFEI1) END; NOMFICHIER< “NOM DU MESSAGE: “,11>5 (kSI-®) Pom's n°7 cules et les caractéres de contrdle, de code inférieur 4 32, ont été rem- placés par des espaces, sauf le retour chariot, de code 13, remplacé par le code 95 qui représente un caractére inaccessible au clavier et done peu usité. On découpe le message en groupes successifs de n bits X]...Xp. Si le dernier groupe con- tient moins de n bits, on le compléte par des bits aléatoires. Le codage consiste 4 calculer pour chaque groupe la hauteur C, somme de 18 n des A;X;. Pour décoder, on commence par calculer D = C.E modulo M, puis Ton résoud le probléme d’empile- ment facile avec les B, de fagon 4 trouver les n bits Yy...Y, tels que D soit la somme des BjY;. Or on voit aisément que les Yj sont nécessaire- ment égaux aux Xj ; ils permettent donc de reconstituer le texte original (en n’oubliant pas de remplacer le caractére de code ASCII 95 par un retour chariot). Réalisation pratique L'obligation d’utiliser de trés grands nombres rendait pratique l'emploi du langage Pascal qui posséde des entiers ayant déja 36 chiffres (les grands entiers). De plus, la portabi- lité du Pascal permet d’utiliser le pro- gramme CCP sur d'autres ordina- teurs. Le programme utilise et stocke les clefs et messages sous forme de fichiers. Hormis la clef privée, qui est un fichier de type DATA contenant des grands entiers (afin d’éviter que des indiscrets ne Ja lisent), la clef publique et les messages codé et clair sont des fichiers TEXT qui peu- vent étre lus ou écrits avec le SYSTEM.EDITOR (la clef publique et le message codé étant composés de grands entiers transformés en chaines de caractéres) . Le programme est en fait une grande procédure (MENU) destinée A permettre le retour au menu en cas derreur par une instruction EXIT (voir les procédures SORTIE, DEIIORS et OUT). Les procédures ou fonctions MESSAGES et PREN- CAR sont classiques et RND fournit un bit aléatoire. PRENENTIER fait linverse de la procédure Pascal STR en transformant une chaine en un grand entier. NOMFICHIER prend au clavier le nom d'un fichier sans le suffixe qu'elle rajoute automatique- ment (.TEXT et .DATA pour les Pom's n°7 RESET(CLAIR,CONCAT(NOM,’ .@.TEXT’)); ITF TORESULT=8 THEN REWRITECCODE ,CONCAT(NOM,’.1.TEXT’)); IF IORESULT<>@ THEN DEHORS; CHT +E FOR I:=6 TO 63 DO BEGIN K:=1; FOR Ji=i TO 6 DO BEGIN BITLI,J]:=K MOD 2; K:=K DIV 2 END END; PAGE OUTPUT) ; WRITELN(’CODAGE’); I:=TAILLE; ENT:=@; REPEAT IF EOLN<CLAIR) THEN BEGIN READLN<CLAIR> j; WRITELN; K:=63 END ELSE BEGIN READ(CLAIR,CH) ; K:=ORD(CH)-32; IF K¢@ THEN K:=6; _ IF K>63 THEN K:=K-32; WRITECCHR(K+32)) END) FOR Ji=6 DOANTO 1 DO BEGIN ENT :=ENT+CLEFC1IIXBITCK, J}; I 1; IF I=@ THEN BEGIN STRCENT,S) ; WRITELN(CODE,S) ; 1:=TAILLE; ENT:=8 END END; IF (EOF(CLAIR)>) AND (I<>TAILLE) THEN BEGIN REPEAT ENT:=ENT+CLEFCIJXRND; I:=I-1 UNTIL 1=83 Suite du listing page 11 Programme VERIFICATION Suite et fin de l'article Effacement du directory en Pascal Pages 59-60 TLE GF INTEGER; AR; VAR F: PROGRAMME DE DEMONSTRATION DE &?* EFFICACITE’) OCEDE D* EFFACENENT DU DIRECTORY EN MEMOL RAT cub zxgenca UNE DISQUETTE PROGRAMME VIERBE et frapoer’); TEN be POUR LIRE LE DIRECTORY DE LA NOUVELLE DISQUETTE PROGRAMME™) ; AXELNC ou une at touche 20UR CONSERVER L’’ANCIEN DINECTURY’ ) 5 READ (CL) gARITELNSARETENS O HEN ARK(PO) ; { efface en memoire le directory de la disquette } { PROGRAMME sur laouetie se trouve le programme } TEST): TELN( IL N??Y A OAS D’ERREUR DE DIRECTORY’) ELSE Uf TENCLE DIRECTORY DE LA VERITABLE DISQUETTE APPLE! EST’, "HAINTENANT SUR LA FAUSSE?) s eee LAVERTTABLE DISQUETTE PROGRANME et frapper ia barre espace’): clefs publique et privée, .O.TEXT et .1.TEXT pour les messages en clair et codé). S'il n'y a pas de préfixe, elle rajoute #4 : (le préfixe doit indi- quer le numéro du drive et non le nom de la disquette). PLUSGRAND el EGAL comparent deux grands entiers (en théorie, rien n’empéche de comparer deux grands eniliers comme on le fait avec des entiers ou des réels, mais en pratique cela pro- duit des erreurs et des « plantages » a l'exécution ; cette cause d’erreurs ne fut pas évidente 4 découvrir et reste mystérieuse !). FAITMODTAB. et MODULO permettent de calculer les expressions B;.F modulo M et C.E modulo M (alors que les poduits B,.F et C.E excédent les 36 chiffres) grace au tableau MODTAB qui con- tient les valeurs modulo M des pro- duits de F ou E par les puissances successives de 10. Les procédures CODAGE et DECO- DAGE comportent deux parties : la demande des noms des fichiers puis le codage ou le décodage propre- ment dits. Si l'opération de déco- dage rencontre un probléme d’empi- lement ne pouvant étre résolu (mau- vaise clef ou mauvais message), elle s'arréte (on peut la laisser continuer si l'on supprime la ligne avant le UNTIL). La procédure ALEATOIRE fournit un grand entier aléatoire compris entre INF et SUP-1. La méthode uti- lisée est la dichotomie qui, bien que longue d’exécution, est la plus facile @ mettre en ceuvre avec des grands entiers. La procédure récursive BEZOUT permet de résoudre par l'algorithme d’EUCLIDE l’équation de BEZOUI AX-BY=1 quand AsB. Elle est utilisée ici avec A = F, X=E, B=M et Y=K of EF = KM + 1. La procédure GENERATION commence par cal- culer la clef privée en se fixant pour chacun de ses entiers des limites supérieure et inférieure confortables (SUP et INF) ; puis elle calcule la clef publique. Notons que la constante TAILLE vaut 107, ce qui est a peu pres le maximum que I'on puisse prendre avec ce programme. Mais on peut Parfaitement utiliser ce programme avec une valeur plus faible. Remar- quons que le calcul exhaustif de tous les empilements lorsqu’on a 107 jetons (i.e. le décodage de C) prendrait avec un ordinateur étu- diant 1000 milliards d’empilements par seconde (ne révons pas !) 5000 milliards d’années! Remar- quons encore que 107 mest pas multiple de 6, le nombre de bits par caractéres, ce qui permet d'embrouiller encore plus un éven- tuel décrypteur en codant ceriaines lettres 4 cheval sur deux empile- ments. On peut prendre une TAILLE multiple de 6; chaque empilement correspond alors exac- tement a TAILLE/6 lettres, ce quile rend autonome. Mode d’emploi Signalons tout d’abord que pour envoyer un fichier TEXT a un cor- respondant on peut, soit lui envoyer une disquette, soit utiliser un modem, soit encore imprimer et envoyer (par radio ou par courrier) le texte afin qu’il soit édité et sauvé. Dans un premier temps, chaque uti- lisateur du syst8me CCP fabrique un syst@éme de clefs. M. Dupont par exemple répondra G et DUPONT (ou bien # 5: DUPONT) au pro- gramme CCP et l’Apple fabriquera sur la méme disquette les fichiers DUPONT.TEXT (clef publique qu'il devra fournir a ses interlocuteurs) et DUPONT.DATA (clef privée qu'il devra garder sur une disquette dans un coffre 4 l'abri). Pour envoyer le message MISSIVE a 10 M. Durand, M. Dubois commen- cera par éditer son texte (en y glis- sant si possible de nombreux signes de ponctuation ne génant pas la compréhension du texte, ce qui rend encore plus difficile tout essai de décryptage) et il le sauvera sous le nom MISSIVE.O.TEXT. Puis, ayant vérifié qu'il posséde le fichier DURAND.TEXT, il répondra C, DURAND (ou bien # 5 :DURAND) et MISSIVE (ou bien # 5 :MISSIVE) au programme CCP qui fabriquera le fichier codé MISSIVF.1.TEXT (sur la disquette ot se trouve MIS- SIVE.O.TEXT), qui devra parvenir aM. Durand. Pour le décodage, ce dernier sortira le fichier DURAND.DATA de son coffre et répondra D, DURAND (ou bien # 5 :DURAND) et MISSIVE (ou bien # 5 :MISSIVE) au pro- gramme CCP qui recréera pour lui le fichier MISSIVE.O.TEXT (sur la disquette od se trouve MISSIVE 1.TEXT). Notons que pendant les opérations de codage et de déco- dage, le message en clair apparait sur l'écran au fur et a mesure de sa lecture ou de son écriture En conclusion, nous avons la un systéme cryptographique trés simple d'emploi et parfaitement str. Les temps d’exécution sont de 6 minutes pour écrire le syst@me de clefs, denviron 9cps (caractéres par seconde) pendant le codage et d'environ 5cps pendant le déco- dage. Mais ces temps diminuent for- tement avec la constante TAILLE et il y a un compromis 4 trouver entre la vitesse d’exécution et la sécurité du codage. Remarquons que le cryptosystéme utilisé ne permet mal- heureusement pas I’authentification de l’expéditeur, contrairement 4 un syst@me plus récent, développé au M.1-1., dans lequel les clefs publique et privée ont des réles symétriques. Mais ce dernier systéme est pratique- ment impossible 4 mettre en ceuvre sur Apple II car il utilise de trés grands nombres premiers. Bibliographie « La guerre des codes secrets » par David Kahn chez Inter Editions est un excellent ouvrage sur histoire du chiffre. Dans «Les progrés des mathématiques », Pour’ la Science publie un recueil de ses articles de mathématiques dont « Les mathé- matiques de la cryptographie 4 clef révélée », écrit par l'un des auteurs du systéme 4 empilement. Pom’s n° 7 STRCENT,S) 5; WRITELN(CODE,S)> ; END UNTIL EOFCCLAIR) ; CLOSECCLAIR) ; CLOSE<CODE,LOCK> END; (xCODAGEX) (RR K KK KKK KXX) (% DECODAGE %> (RRRRARRARRRED PROCEDURE DECODAGE; VAR I,J,K :INTEGER; s :STRING; ENT — :ENTIER; BEGIN (XDECODAGEX) NOMFICHIER< ‘VOTRE NOM: % , 13); CX$1-%) RESET (PRIVEE, CONCAT(NOM,“ .DATA‘)) ; IF IORESULT<>@ THEN DEHORS; CHEI+%) PAGEC OUTPUT) ; WRITELN( “LECTURE DE LA CLEF PRIVEE’) 3 FOR I:=i TO TAILLE DO BEGIN IF EOFCPRIVEE) THEN SORTIE; ECRIS(I); CLEFCI1]:=PRIVEE*; GET(PRIVEE> END; IF EQF(PRIVEE) THEN SORTIE; BASE:=PRIVEE*; GET<PRIVEE) ; IF EOF<PRIVEE) THEN SORTIE; INVFACTEUR:=PRIVEE% ; NOMFICHIER(’NOM DU MESSAGE: / ,11); CX$1-*) RESET (CODE , CONCAT(NOM,’.1.TEXT’)) 3 IF IGRESULT=8 THEN REWRITEC(CLAIR, CONCAT (NOM, ‘% .@.TEXT’)) 5 IF IORESULT<>@ THEN DEHORS; CRBI+K) FAI TMODTAB( INVFACTEUR) ; PAGE OUTPUT) ; WRITELN< ’DECODAGE’> ; J:=@; K:=6; REPEAT READLN(CODE,S) ; PRENENTIER(S,ENT) ; MODULOCENT) ; FOR I:=TAILLE DOWNTO 1 DO BEGIN Ji=J+1; Ki=2kK+1; IF PLUSGRAND(CLEFLI],ENT>) THEN K:=K-1 ELSE ENT :=ENT-CLEFEI1; IF J=é6 THEN BEGIN IF K=63 THEN BEGIN WRITELN; WRITELNCCLAIR) END ELSE BEGIN WRITECCHRC(K+32)) ; WRITECCLAIR,CHRC(K+32)) END; J:=8; K:=6 END END; IF NOT EGAL<ENT,@> THEN SORTIE UNTIL EOFCCODE> ; CLOSE‘(CODE) ; CLOSE<CLAIR,LOCK> END; (XDECODAGEX)> (RRR KKK KKK KKK KK KAKA KK AKER) €% GENERATION D’UNE CLEF ¥) (RRR KKK KKK KKK KKK KKKKKAEK) Pom's n° 7 11 PROCEDURE GENERATION; VAR I :1..TAILLE; s : STRING; BON :BOOLEAN; INF,SUP,BIDON :ENTIER; PROCEDURE ALEATOIRE(VAR ENT:ENTIER) ; VAR I 21..43 A,B sENTIER; BEGIN :=INF; B:=SUP; REPEAT ENT :=(A+B) DIV 23 IF NOT EGAL(A+B,2XENT> THEN ENT :=ENT+RND; IF RND=@ THEN B:=ENT ELSE A:=ENT UNTIL PLUSGRAND(3,B-AD ; ENT:=A; IF EGAL¢2,B-A) THEN ENT :=ENT+RND END; PROCEDURE BEZOUT(A,B:ENTIER; VAR X,Y:ENTIER) ; VAR Q@,R :ENTIER; BEGIN X05 Y:=0;5 IF BON THEN BEGIN Q:=B DIV A; IF EGAL(B,Q¥A) THEN IF EGAL(A,1) THEN- BEGIN Y 3 X:=B+1 END ELSE BON:=FALSE ELSE BEGIN B:=B-QkA; R:i=A DIV B; IF EGAL(A,RXB) THEN IF EGAL(B,1) THEN BEGIN Y:=A-1; X:=1+@xXY END ELSE BON:=FALSE ELSE BEGIN Ar:=A-REB; BEZOUTC(A,B,X,Y) ; Yr=Y+R¥X; X:=X+QXY END END END END; BEGIN ¢XGENERATIONX)> NOMFICHIER( ‘VOTRE NOM: “,13)5 C¥$1-X) REWRITE PRIVEE , CONCAT (NOM, ’ .DATA’))> 5 IF IORESULT<>@ THEN DEHORS; CHSI+K) SUP:=10; INF:=3; PAGEC OUTPUT) ; WRITELN(’ECRITURE DE LA CLEF PRIVEE’); FOR I:=1 TO TAILLE DO BEGIN ALEATOIRECCLEFLII); PRIVEE*:=CLEFL11; PUT(PRIVEE) ; ECRIS (1); INF:=INF+CLEFLI]; SUP:=2xSUP END; INF:=SUP; SUP:=2XSUP; ALEATOIRE( BASE) ; PRIVEE*:=BASE; PUT(PRIVEED ; WRITEC<’.’)>; INF:=BASE DIV 2; SUP:=BASE; 12 Pom's n°7 REPEAT ALEATOIRE<(FACTEUR? ; WRITEC’.7); BON:=TRUE; BEZOUT<FACTEUR, BASE , INVFACTEUR , BIDON> UNTIL BON; PRIVEE* :=INVFACTEUR; PUT(PRIVEE> ; CLOSE(PRIVEE,LOCK) ; (X¥$1-X) REWRITE PUBLI QUE , CONCAT (NOM, ’ . TEXT’)) 3 IF IORESULT<>@ THEN DEHORS; CRHSI+E)D WRITELN; WRITELN; WRITELN(’ECRITURE DE LA CLEF PUBLIQUE’); FAITMODTABC FACTEUR>) ; FOR I:=1 TO TAILLE DO BEGIN MODULOCCLEFL1]>; ECRIS¢I); STR(CLEFLI1,S); WRITELN(PUBLIQUE,S) END; CLOSE¢ PUBLI QUE , LOCK) END; (GENERATION) BEGIN (XMENUX)> CR:=CHR( 13); BS:=CHR(8); PAGEC OUTPUT) ; RANDOMIZE; MESSAGE 2,” OLIVIER HERZ PRESENTE C.C.P.*); MESSAGE(5S, “ SYSTEME COMPLET DE’); MESSAGE(7,” CRYPTOGRAPHIE A CLEF PUBLIQUE.’); MESSAGE<( 11,” G) ENERER VOTRE SYSTEME DE CLEFS’); MESSAGE 13,’ ©) ODER UN MESSAGE’) ; MESSAGE (15, DECODER UN MESSAGE’) ; MESSAGES 17,” Q@)UITTER LE SYSTEME C.C.P.’); MESSAGE(2@,’ VOTRE CHOIX:’); COMMANDE :=PRENCAR(L’G’ , °C ,“D’ “8% ,°0%, 40% 7d" “QI CASE COMMANDE OF 4G’ 79’ :GENERATION; “C’ ,’c’ :CODAGE; *D’ ,/d’ sDECODAGE END END; (XMENUX> BEGIN (XCRYPTOGRAPHIEX) REPEAT MENU UNTIL COMMANDE IN [’@Q’,’q’] END. ¢(XCRYPTOGRAPHIEX> Micromos L’avance tec aait Carte mémoire 256 Ko pour APPLE II i) hnologique at |. SONWaS NY wove Laboratoire : 17, Plateau de la Raviniére - 95520OSNY - Tél. (3) 032-16-71 - (3) 032-37-78 Pom’s n° 7 Etudiants, lycéens lisez Lycéens, étudiants, enseignants, parents : ’équipe de larevue VORDINATEUR INDIVIDUEL publie un numéro spécial hors-série qui fait le point sur l’ordinateur a l’école. e Un ordinateur dans une classe? e Comment l’enseignement peut-il étre facilité par un ordinateur individuel ? e A partir de quel 4ge peut-on découvrir l’informatique? e Quelle aide un ordinateur familial apporte-t-il sur le plan éducatif? e Comment créer et gérer un club d’informatique individuelle dans un établissement scolaire ou universitaire? Toutes les réponses a ces questions (et a d’autres!) figurent dans ce dossier indispensable réalisé a partir d’une synthése des meilleurs articles parus dans LORDINATEUR INDIVIDUEL. En 1983, il n’est plus raisonnable d’ignorer le formidable outil qu’est lordinateur. Pour étre mieux informé sur ce domaine, lisez LORDINATEUR ET VECOLE. Cee Ow Het laf, nay, va 225 FF chez votre marchand de journa NT % Graphique, quand tu On peut reprocher aujourd’hui 4 lApple Il un écran graphique man- quant de finesse : la nouvelle géné- ration de micro-ordinateurs exprime souvent ses aptitudes graphiques en centaines de milliers de points, par exemple 800 x 400, plutét qu’en dizaines de milliers : 280 x 192. N’oublions quand méme pas qu'il y a seulement trois ans l’Apple II était le phénix des hétes de ces vergers, car, ace prix, les possibilités graphi- ques étaient rares. L’Apple Il garde une caractéristique particuliére attrayante, celle de la double page graphique. Pour peu que l'on posséde une imprimante capable d’en tirer le meilleur parti, nous voila bien armés. C'est le cas avec EPSON MX FT munie de l'interface graphique EPSON pour Apple II. Quelles sont les possibilités offertes ? D’abord, celles qu’offrent la plupart des imprimantes graphiques moder- nes : — noir sur blanc ou blanc sur noir — simple ou double dimension et ceci, bien entendu, en utilisant la page graphique 1 ou 2 au choix. Ensuite, et c'est la grande originalité, des combinaisons en une méme impression du contenu des deux Pages. — impression céte 4 céte du con- tenu de chacune des deux pages (ex. 1); — opération logique « ET » (produit logique) donnant l'impression des points communs aux graphes des deux pages, et de ceux-la seulement (ex. 2) ; — opération logique « OU inclusif » (somme logique) donnant l’impres- sion de tous les points figurant sur au moins l'un des deux graphes (ex. 3) ; — opération logique « OU exclusif » (différence symétrique) donnant limpression de tous les points qui figurent sur l'un des deux graphes, et pas sur l'autre (ex. 4). Ces opérations sont bien sdr compa- tibles avec les précédentes. Il existe également une possibilité de n’éditer qu'une fraction de graphe, désignée par sa position sur I'écran, en référence aux lignes et colonnes Pom’s n°7 de méme emplacement dans le mode texte. Le programme ci-aprés permet l'exploitation par un questionnaire en séquence de ces diverses possibi- lités (A l'exception de la derniére citée). I] permet aussi : — de visualiser le ou les graphes choisis, de permuter les deux pages, de revenir au menu ; — de choisir entre impression de graphes déja existants en machine (il peut alors @tre utilisé en sous- programme d’un programme gra- phique) et la recherche sur disques de graphes préenregistrés. Mais tout ceci n’est-il pas un jeu de Tesprit ? Pour nous convaincre du contraire, nous allons examiner quelques cas d’application. Graphe double dimension Cette formule est idéale pour créer : * des pages de titres, edes transparents pour rétro- projecteur. Intersection de deux graphes Permet par exemple de détecter immédiatement les points communs @ deux schémas de circulation afin de détecter d’éventuels «points noirs» (ex. 5). Union des deux graphes Permet d’utiliser «un fond de plan» et d'y placer, successivement, divers tracés. Par exemple, une carte sur laquelle on trouvera les villes, puis les richesses miniéres, etc. Différence de deux graphes : Permet de repérer immédiatement les modifications apportées 4 un gra- phe entre deux versions successives (ex. 6) Liimagination des «dingues du gra- phe» étant sans limites, bien d'autres applications peuvent étre trouvées. Il est méme probable que d’autres imprimantes offrent ou offriront des possibilités du méme ordre. N.B. L’Apple Ie, et autres nouveautés Apple, conserveront-ils cette double page graphique ? nous tiens... Guy Mathieu Programme et commentaires 1 4 900 : paramétres d’initialisation et tracés - tests sur pages 1 et 2. 200 : affichage des pages graphi- ques. 5 000 : déroulement du questionne- ment. 6 000 : mise en route de l'impres- sion. 10 000 : recherche de graphes sur disques. 30 000 : sous-programme d’attente. Mode d’emploi N’oubliez pas que la carte graphique Epson est telle que deux graphes sont toujours tracés céte a céte en format normal. Ces deux graphes, différents dans le cas de notre option COTE A COTE, sont identiques dans tous les autres cas. Le graphique de la page 18 illustre la séquence des questions posées par le programme 4 l'utilisateur. Remarque : si l'on répond 1 (COTE A COTE) 8 la troisigme question, il faudra ullérieurement penser a placer les gra- phes dans le deux pages pour quills se présentent dans l’ordre convenable a Védition.. Exemple d'utilisation Nous cherchons @ imprimer céte 4 céte deux graphes sauvés sur une disquette sous les nom CHATS 1 et CHATS 2. Il faut exécuter le pro- gramme puis placer la disquette dans le lecteur et suivre la s¢quence suivante : Question Réponse Choix 1 3 Les deux pages 2: 1 Normal 3 ul Céte & cote 4 N Pas en mémoire Ensuite, choisir l’option CATALO- GUE, amener face 8 CHATS 1 et faire RETURN. Venir aprés CHATS 1 et faire RETURN pour le changement. Suivre la méme séquence pour CHATS 2. Enfin, dans le menu, choisir 1 (vérification de la page 1), puis 2 (page 2), ESC (retour) et enfin RETURN (impres- sion). 15 Exemple 1 — Page 1. Exemple 1 — Page 2. Fila Fane eg Fe ET 47, SSN WEB re — SSN : eens Za SRN : KKK<<K<<al_ SASS ba SSN | BS wa Ra all FG 2 < CaP sth - BG oe Exemple 2 — Page 1 “ET” 2. Exemple 3 — Page 1 “OU (inclusif)” page 2. Exemple 4 — Page 1 “OU (exclusif)” page 2. 16 Pom’s n° 7 Exemple 5 : Sécurité Incendie Batiment A a, Batiment B eS al Page 1 — Sécurité Incendie. Plan d’évacuation des agents. de courbes Batiment A Votre APPLE 1! sait aussi dessiner sur un traceur de courbes, mais encore lui faut-il un logiciel puissant pour faciliter votre travail. Notre logiciel, utilisable en Basic, vous permet de composer facilement vos graphiques comme sur un traceur de haut de aul = gamme. Avec une programmation de quelques lignes, nos sous-pro- Batiment B grammes tracoront pour vous : droites, courbes, histogrammes, axes, grilles, titres, annote- tions, cercles, rectangles, fléches, etc ... Traceurs au format A3 et Ad HOUSTON Page 2 — Sécurité Incendie. aS Circulation des véhicules de secours. CALCOMP Ensemble Traceur et logiciel & partir de 10.000 F H.T. Batiment A RMATIQUE . PHE - MICROINFO! MIN ENT A votes Pet a INE GAMM. DE MATERIELS ET DE LOGICIELS Batiment B Page 1 “ET” Page 2 — Sécurité Incendie. identification des “points noirs”. MINIGRAPHE MICROINFORMATIQUE Boulogne Pom’s n° 7 17 Question 1 Question 2 Question 3 Question 4 Menu Format normal 1 Examen de [ la page 1 1 — Page 14 mee Normal Format double Des 2 Examen de en mémoire [la page 2 2 — Page 24 Céte a céte Catalogue : et choix L'ESC : Dessin non Menu en mémoire Inverse Intersection 4 | 3—Les 2 st2 pages | ‘RETURN Impression Union Retour a la ‘Ditférence question 4 Graphe du mode d'emploi informatique de gestion auapiée au gestionnai ée par des gestionn ETUDIE © opportunité d'utilisation de l’outil micro-informatique e intégration entre informatique traditionnelle et personnelle e politique de la communication dans |’ entreprise bie ST ti Liiis bap tetd it FORME e formation 4 l'utilisation de la micro-informatique REALISE @ 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 homme, et non l'inverse. L’outil 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. \ log TAG 5.2. Cente La Chataigneraie - 29, avenue de Versailles - 78170 La-Celle-St-Cloud - Tél. : (3) 918. ssor_/ Pom’s n° 7 Exemple 6 : les petits chats. & & & & Page 1 — Situation de départ. § & Page 2 - — Situation d’arrivée. && && SOMME logique : Ceux qui ont bougé entre 1 et 2. Pom’s n° 7 1 LOMEM: 25888 2 TEXT 3 HOME 5 DD = PEEK (46185): IF DD = @ OR DD > 2 THEN DD = 1 19 DS = CHR (4):6% = CHR (7)71@3 = C HRS (17):ZERO$ = CHR$ (8) 28 HGR 1 HCOLOR= 3 38 FOR I = 6 TO 8@ STEP 10 35 HPLOT 1,1 TO 1,198 - I TO.278 - 1,19 @- 1 TO 278 - 1,1 TO T,! 48 NEXT 5@ FOR I = - 1@ TO 1@: HPLOT 139 + 1,8 5 TO 137 + 1,105: NEXT 68 HGR2 : HCOLOR= 3: HPLOT 4,6 TO 6,198 TO 278,198 TO 278, TO 8,0 78 FOR 1 = @ TO 8@ STEP 18 75 HPLOT 139,1 TO 1,95 TO 139,198 - 1 T 0 278 - 1,95 TO 139,1 88 NEXT 25 FOR I = - 18 TO 1@: HPLOT 139 + 1,8 5 TO 139 + 1,105: NEXT 9@ GOTO 5088 288 REM PERMUT. PAGES 218 POKE - 16304,0 215 IF PAGE = 1 THEN POKE - 16308,8 228 IF PAGE = 2 THEN POKE - 14299,8 25@ RETURN 5@@0 REM MENU PRINCIPAL 5018 TEXT : HOME 5628 VTAB 1: PRINT "1(ERE PAGE) - 2(EME PAGE) — 3(LES DEUX) REPONDEZ PAR 1,2 OUSS.V.P. 5 5830 GET 2$ 5e4¢ P= VAL (2#): IF P< 1 OR P > 3 TH EN PRINT G$: GOTO 5818 5858 PRINT 5160 VTAB 4: PRINT "1 (NORMAL) - 2 (INV ERSE? REPONDEZ PAR 1 0U 2.S.U.P. *; 5118 GET 29 5128 1 = VAL (2%): IF I ¢ 1 ORI > 2TH EN PRINT Gé: GOTO 5100 513@ 1 = (1 - 1) ¥ 32 5148 PRINT 5200 IF P < 3 THEN 530@ 5218 VTAB 7: PRINT "1 (COTE A COTE? - 2 CINTERSECTION) - = 3 CUNTON) - 4 (DIFFERENCE) REPON DEZ PAR 1, 2, 3 0U 4 S.V.P. "3 5228 GET 2% 5238 L = VAL (Z$): IF L <1 ORL > 47TH EN PRINT G$: GOTO 5218 5240 L = (L - 1) ¥ 4: IF L = 12 THEN L = 16 5258 PRINT 5306 IF P = 3 AND L = ® THEN 5400 5318 VTAB ii: PRINT "1 (FORMAT NORMAL) - 2 (FORMAT DOUBLE? REPONDEZ PA R 1 QU 2 S.V.P. "3 5328 GET 2¢ 5338 D = VAL (2%): IF D¢ 1 OR D> 27TH EN PRINT G$: GOTO 5318 5349 D = (D - 1) ¥ 64 5358 PRINT 5408 COEFF =P+L+1+D 5500 VTAB 15 5516 IF P < 3 THEN PRINT “LE DESSIN ES T-IL DEJA EN MEMOIRE?* 5512 IF P = 3 THEN PRINT “LES DESSINS SONT-ILS DEJA EN MEMOIRE?* S515 5526 5538 5546 5558 5566 5576 5575 5586 5598 5600 5618 5628 54638 5648 5656 5668 570@ PRINT "REPONDEZ PAR O QU N S.V -P. 3 GET 2¢ IF Z$ << > "0" AND ZS << D> N PRINT G$: GOTO 559¢ PRINT IF 2$ = "Oo" GOSUB 16800 PRINT D$"BLOAD" ;2Z$;" ,A$2080" IF P ¢ 3 THEN 5408 GOSUB 16800 PRINT D$"BLOAD" ;2Z$;" ,AS4@88" HOME : PRINT "VOUS DISPOSEZ MAINTE NANT DES COMMANDES SUIVANTES: * aN" “THE THEN 5688 PRINT : PRINT "1 QU 2 POUR FAIR E APPARAITRE SUR L’ Ec RAN UNE DES 2 PAGES™ PRINT : PRINT "“ESCAPE’ POUR PASS ER DU MODE GRAPHI QUE AU MODE TEXTE (MENU) * PRINT +: PRINT "’RETURN’ POUR LANC ER L’ IMPRESSION" PRINT : PRINT "@ POUR CHAN GER EVENTUELLEMENT LE (OU LES) GRAPHE(S) * PRINT : PRINT : PRINT 2? "33 GET 2% HOME PRINT "VOTRE CHOIX 5738 5748 5758 5768 5778 6868 6818 6812 6815 6828 6838 6850 6868 6878 6888 6890 6108 16688 16048 18856 18655 16868 18665 18878 1eese 18898 186895 19188 18158 16266 16488 16418 160428 16588 18600 30088 36818 36838 36848 38658 30068 30878 36106 IF ASC (2) = 13 THEN 6008 IF ASC (2$) = 27 THEN TEXT : E : GOTO 5é0e PAGE = VAL (Z$): IF PAGE = 1 OR PA GE = 2 THEN GOSUB 208: GOTO 54¢8 IF PAGE = @ THEN 5568 PRINT G$: GOTO 5688 REM COMMANDE IMPRIMANTE PRINT D$"PR#I" PRINT ZEROS POKE 1913, COEFF PRINT @$ PRINT DS"PRHG* TEXT : HOME : PRINT "VOULEZ-VOUS U NE AUTRE IMPRESSION ? * PRINT : PRINT "(REPONSE PAR © OU N S.V.P.? "3 GET 2$ IF 2% = "N* : PRINT "AU REVOIR": IF 2% = "O* THEN 5000 PRINT G$: GOTO 6850 REM CATALOG HOME : PRINT D$*CATALOG,D" ;DD VTAB 1: PRINT “FLECHES -> <- POU R DEPLACER LE CURSEUR JUSQU’AU NO M VOULU PUIS “RETURN? cou “RETURN’ SI LE NOM N’EST PAS AFFI CHE* W = 3:HH = 7; VTAB W: HTAB HH GET 2$:Z = ASC (2$) IF 2 = 13 AND W ¢ 4 THEN HOME : PRINT "VOUS POUVEZ MAINTENANT CH ANGER DE DISQUE": GOSUB 3¢0e@: GO To 18888 IF 2 = 8 THENW=W- tI: < 3 THEN W = 3 IF Z = 21 THEN W = W + 1: > 23 THEN W = 23 IF 2 = 13 THEN 10480 VTAB W: HTAB HH IF 2<¢ > 13 ANDZ ¢ > 21 THEN PRINT GS VTAB VW: HTAB HH GOTO 18860 VTAB 1: HTAB 1: PRINT "AVANCER AV EC LA FLECHE -> JUSQU’A DEPAS-SER LE NOM HOM THEN VTAB 18: HTAB 18 END IFW IFW > 8 AND Z ¢ PRINT * PUIS ‘R PRINT * INVERSE : VTAB 3: ETURN’ "3: NORMAL : VTAB W: HTAB HH INPUT 22% RETURN REM ATTENTE POKE —- 16368,8 VTAB 24: HTAB 5: INVERSE : PRINT “BARRE D’ESPACEMENT POUR LA SUITE . NORMAL IF PEEK ¢ - 16384) <¢ = 30850 POKE PRINT RETURN 127 THEN - 16368,8 20 Pom's n°7 Le programme GRAPHLOG est une illustration de article de Guy Mathieu : c’est un petit programme assembleur tres simple, relogeable (c'est la mode dans ce numéro de Pom’s!) écrit avec l’assembleur LISA 2.5. Il réalise une opération logique bit par bit sur deux pages graphiques et met le résultat dans une troisitme. Par page graphique, nous entendons ici les intervalles $2000.3FFF, $4000.5FFF et $6000.7FFF, étant entendu que seuls les deux premiers intervalles correspondent @ des pages graphi- ques vidéo ; pour voir la derniére, il faudra faire 2000 < 6000.7FFFM ou 4000<6000.7FFFM en mode moniteur. L'opération logique cor- respond au type graphique de Pas- cal, repris aussi par HAIFA dans Pom’s 5. Si A et B désignent les Exemples : rf 8 Graphiques et logique points des pages sur lesquelles se réalise l'opération et C le résultat 4 mettre dans une troisiéme page (0 = éteint, 1 = allumé), on obtient ; ‘TYPE VALEUR DE C 0 0 1 A NOR B 2 A AND NOT B 3 NOTB 4 NOT A ANDB 5 NOTA 6 A EOR B 7 A NAND B 8 AANDB 9 A =B 10 A 11 AOR NOTB 12 B 13 NOT A ORB 14 AORB 15 1 .. négatif de la page HGR, 8 bits compris . AND des pages HGR et HGR2 avec résultat en HGR2 et 8¢ bits mis & 0 OR de HGR2 et HGR :.résultat dans la page “invisible” avec EOR des 8° bits Olivier Herz €e TYPF. s'applique aux hits des points de l’écran. En ce qui concerne les bits de couleur (le 8¢ bit des octets de l’écran), on applique un autre type (TYPCOL). Pour se servir de la routine, il suffit de POKEr aux adres- ses 7 49 les numéros des pages ara- phiques (4 savoir 32, 64 ou 96: il est trés dangereux de POKEr autre chose) et en 24 et 25 TYPE et TYPCOL respectivement, puis de faire un CALL 4 I'adresse of l'on a chargé cette routine relogeable. En effectuant une copie d’écran gra- phique 4 partir des écrans ainsi engendrés, il vous est maintenant possible de faire tout ce que Guy Mathieu proposait aux possesseurs d'Epson. Graphlog — Lisa 2.5 23 MEH2 PZ SFE 24 MEMS = EPZ SFF 1 Lst Bt 23 26 ORG $888 ;PROGRAMME RELOGEABLE 3 RNAXX XIII II KR ARANAK 2 08s $004 43% ¥ 2; 5 5% CE PROGRAMME REALISE UNE x 2 LOA #191 6 3% OPERATION LOGIOUE SUR LES x Ee} STA LIGNE 7 3¥ OCTETS DES DEUX PAGES =X 31 BCLELIG PHA SLIGNES 31 A 47: 8 3% GRAPHIGUES ET MET LE RE- 32 AND 4908 3-VOIR APPLESOFT 9 7X SULTAT DANS UNE EME, =x cE] STA BASE s-ROUTINE EN $F417 18 3x ¥ Ea LSR 11 5% (C) 0. HERZ POUR POM’S 7X 3 L&R 12 3% x % ORA BASE Riiccusiicicusticcensstitteg v STA BASE 14; ] PLA 15 LIGE ~—EPZ $4 sLIGNE DE L’ECRAN 9 STA BASE+1 16 PAGEL «EP $7 sPREMIERE PAGE 6 ASL 17 PAGEZ =—«EP2 $8 sDEUXIEME PAGE 41 ASL 18 PAGES EPZ $9 PAGE DU RESULTAT 42 ASL 19 TYPE ~=—s PZ $18 sTYPE POUR LES POINTS 43 ROL BASE+1 20 TYPCOL EPZ $19 sTYPE POUR LE BIT DE COULEUR “4 ASL 21 BASE = —EP2 SIE ADRESSE DE LA PREMIERE LIGNE = 45 ROL BASE+1 22 NEM = EPZ $FD 4% ASL Pom's n°7 21 E z 5 : LOX #8 jLIGNES 41 A Bi: s-VOIR HAIFA z 2 > CPX #8 ENE 2 AND TYPCOL ac a“ BCC >3 42 AND TYPE 76 ac 7243 BEQ >4 78 SEC 79 "4 ROL HEM3 $8 DEX 81 BNE BCLETYP 82 LOA BASE+! BRITSSEQKRASSREASSSEYKALYRLSESSR 3 sPREPARATION DES ADRESSES 3-ROUTINE DOPRINT VRRESRVRLSSRLRRELB AND 481F ORA PAGES STA BASES! LDA HENS STA (BASE) ,Y DEY BPL BCLECOL DEC LIGNE LOA LIGNE CHP aSFF BNE BOLELIG RIS DCH "BSAVE GRAPHLOG,ASG26 ,L$98" 13] Récapitulation ¥888.971 0888- AY BF 85 86 48 29 C8 85, 8908- 1E 4A 4A @5 1E 85 1E 68 4810-85 iF BA BA BA 26 IF BA €818- 26 IF @A 46 IE AB 27 AS 29 IF @5 67 85 IF Bi $5 FD AS iF 29 IF 85 85 1F Bi 1E 85 FE A2 AY @1 @6 FD 98 62 GA 04 FE 98 61 GA £8 68 85 25 19 18 98 83 25 FQ 01 38 26 FF CA AS IF 29 IF 05 69 IF AS FF 91 1E 88 18 06 AS 86 CP FF D8 mm Ro SEERSEEGERG BSRERSsSSSS Hard Copy Seikosha Olivier Herz Afin de compléter l'article de Guy Mathieu et celui sur « Graphiques et logique », voici un petit programme en langage machine (écrit 4 mes débuts sur Apple) permettant d’obte- nir la copie d’écran graphique sur une imprimante Seikosha. Ne possédant pas d’assembleur a lépoque, j'avais écrit ce programme directement en langage machine. Il reste toutefois intéressant 4 publier car il est assez rapide et, d’autre part, les possesseurs de Seikosha n’ont certainement pas tous un tel pro- gramme 4 leur disposition. La seule routine ROM utilisée est le WAIT $FCA8 ; le programme peut étre utilisé par n'importe quel Apple. 22 Pom's n°7 Hard Copy Seikosha ILIST 3S REM XXX HARD COPY SEIKOSHA xX 6 REM XXX COPYLEFT RRX 7 REM XXX OLIVIER HERZ -— POM’S Xxx 18 26 38 46 38 68 76 8a 78 108 116 126 138 146 156 168 178 18@ 198 208 218 226 238 248 256 268 TEXT : HOME : INVERSE : VTAB 6: PRIN T “IMPRESSION DES 2 PAGES HAUTE R ESOLUTION" : NORMAL PRINT : PRINT : PRINT : PRINT "VOULE 2-VOUS LA PAGE 1 OU 2 ? °; GET At: IF AS < > "1" AND ASK D>" 2" THEN 38 PRINT A$: POKE 28,208: POKE 29,31 + 32 *¥ ¢ ASC (AS) - 48 PRINT : PRINT "“YOULEZ-VOUS LA PAGE E NTIERE ? "; GET AS: IF AS < > "O" AND ASK D " N" THEN 68 PRINT A@: POKE 24,6: IF AS = "N" THE N POKE 24,4 PRINT : PRINT “VOULEZ-VOUS L’ IMPRESS ION EN NEGATIF ? "3 GET AS: IF AS < > "O" AND ASK D9" N" THEN 9@ PRINT A®: POKE 25,0: IF A® = "QO" TH EN POKE 25,1 PRINT : PRINT “VOULEZ-VOUS UN CADRE ee GET AS: IF AS < > "O" AND ASK D> “N" THEN 12@ PRINT A$: POKE 26,@: IF At = "O" TH EN POKE 26,1 PRINT : PRINT "YOULEZ-VOUS LE FORMA T DOUBLE ? "; GET AS: IF AS < > "O" AND ABC D "N" THEN 156 PRINT AS: IF AS = "O" THEN 266 POKE 27,8: POKE 235,192: POKE 236,1 29: IF PEEK (24) = @ THEN 198 POKE 237,162: POKE 30,159: GOTO 230 POKE 237,194: POKE 38,143: GOTO 238 POKE 27,1: POKE 235,224: POKE 236,1 Si: IF PEEK (24>) = @ THEN 2208 POKE 237,69: POKE 3@,78: GOTO 238 POKE 237,133: POKE 38,46 PRINT : PRINT : HTAB 3: INVERSE : P RINT " APPUYEZ SUR UNE TOUCHE QUE LCONQUE ": NORMAL : WAIT - 16384 »128: POKE - 16368, IF PEEK (6148) < > 1 THEN PRINT CHR (4) ;"BLOADSEIKO.OBJ": POKE 6148,1 POKE - 16246,8: HOME : CALL 6149 CALL - 1852: CALL - 1852: CALL - 1852 Pom’s n°7 SEIKO.OBJ Code hexadécimal %1868.19DA isea— 1666— 18186- 1818- 1820- 1828- 1838- i838— 1846- 1848— 1858- 1858- 1866- 1868- 1876- 1878- 188e- 1888- 1896— 1898- 18A8-— isas— 18B6- 18B8- 1sce— 1scs- isDe-— 18D8- 18Ee- 18E8— 18Fe— 18F8— 19e6-— 1968- 1918- 1918- 1928- 1928- 19368— 1938- 1946- 19748- 1956- 1958- 1968- 1968- 1976- 1978- 1986- 1988- 1998- 1998- 19A8- 19A8- 19Be- 17B8— 19C6- 19c8— 19De- i9D8- cA a5 85 as 85 19 a7 °e Fe 69 FE FD FE as Bi 85 98 69 46 18 a2 17 FF e2 a7 A? 93 ce 87 2D 19 19 cé a6 a5 19 £6 Fa 19 31 EA a4 a6 FB ec ay be 20 ee 28 ay 8A 38 1D Fo FF 62 a8 FF ay 69 06 78 49 AS 68 4c es AS ig 20 28 eA cy 1a 6a FB a6 aS 18 as ce 1B 19 2e as 19 47 28 Ae FF eB ay FC 28 19 28 55 ay 19 —B AS ae AS ee a2 26 18 85 66 AS ES Ad Fe 6? 46 78 ee FF 62 FF 28 39 Fe 87 AS 78 31 4c 28 Fe 668 be ES Fc 6? FC AP AP? 47 1B 98 47 48 As ae 18 47 Eé 47 98 ee 68 EA Sse 85 Fe 87 18 AP 28 AS 18 —S 85 Fe a? 46 98 6e FF FF e2 ee 19 ES 4c 63 Fe Ar AS 18 63 AS 68 £6 as 28 19 A? GE 42 ao De 2e 47 19 Eé E6 A? 6B 19 ec 98 Fe AS 6c 23 La souris de Lisa Hervé Thiriez Faut-il encore parler de Lisa ? Nous avons été abreuvés dans les jour naux d’articles sur Lisa depuis sa présentation internationale le 19 jan vier dernier. D’autre part, nous ne pouvons, dans une revue telle que Pom’s, passer sous silence la nais- sance de Lisa. Voyons donc pour- quoi la souris de Lisa veut devenir aussi délébre que le sourire de Mona... La premiere impression que dégage cet ordinateur de bureau — le terme convient ici parfaitement — est celle d'un équipement au design agréa- ble, d’apparence. professionnelle. Par opposition, l’Apple II Plus, qui fait notre bonheur depuis si long- temps, suggére un peu la ZCV, avec son aspect rustique et son cété bohéme. Lisa est un systéme 4 clavier déta- ché, incorporant deux lecteurs de disquettes 5 pouces (860K octets par disquette) et un écran 4 trés haute résolution (720 x 364, soit prés de cing fois autant de points que pour |’Apple II). Une surprise désagréable, la seule d’ailleurs : il n'est pas question de travailler en couleur ; tout le monde sait que les souris ne connaissent que le blanc et le aris... Seul appendice externe 4 l'appareil, relié par un fil gris lui aussi, la fameuse souris, qui est le mode de communication privilégié de l'utilisa- teur vers la machine. C’est grace cette souris et 4 la qualité graphique de l'écran qu'il suffit d’une demi- heure @ un non-informaticien pour apprendre & utiliser Lisa. La souris est un petit boitier que l'on fait glisser sur son bureau dans n'importe quelle direction. Un cur- seur sur l’écran est associé 4 la souris et se déplace en totale symbiose avec elle. L’écran présente un cer- tain nombre de petits dessins illus- trant les dossiers sur lesquels on tra- vaille, y compris une poubelle pour ceux dont on veut se débarrasser. Il suffit de pointer le curseur associé a la souris sur le dessin correspon- dant au dossier que l'on désire « ouvrir », et de confirmer son choix en appuyant sur la petite barre de la souris. Le dossier s’ouvre alors, et on y choisit (toujours grace a la sou- ris) tel ou tel élément. Différents dossiers peuvent étre ouverts simultanément, comme sur un bureau normal. On peut agrandir ou réduire les documents sur l’écran & volonté, ouvrir ou fermer tout dos- sier, passer du traitement de texte au Lisacalc ou au programme de réali- sation de graphiques. Tout cela se 24 fait trés rapidement, et l’on peut ainsi croiser les applications : éditer en *traitement de texte les titres de gra- phiques provenant de données Lisa- calc ! A tout moment, une copie de |’écran peut étre obtenue, |’écran incorpo- rant a loisir des textes (en plusieurs polices et tailles) et des graphiques. Le souci de simuler la gestion d’un bureau va trés loin : on peut ainsi faire apparaiire sur l’écran une calcu- latrice avec des touches sur lesquel- les on « appuie » grace a la souris. Avec Lisa sont fournis en standard : * LisaWrite : traitement de texte (tailles et polices variées) . * Lisacalc: 255 lignes, et 255 colonnes de largeur variable. ® Lisalist, base de données pouvant contenir 6000 enregistrements de 100 caractéres chacun. © LisaGraph, soit Visiplot en beau- coup plus rapide, et avec les possi bilités d’édition de texte. * LisaDraw, outil performant pour la création graphique. ® LisaProject, pour la gestion de projets (PERT, Gantt) jusqu’a 1000 taches. Tout cela coexiste sans effort dans le million d’octets de mémoire cen- trale, le microprocesseur MC68000 assurant une rapidité de traitement inégalée en micro-informatique. Seul petit probléme : tout le monde n’a pas le budget de 120 000 francs TTC nécessaire pour avoir le systéme complet, avec son impri- mante et le disque dur de 5 méga- octets. En outre, ceux qui désirent s‘offrir Lisa devront encore patienter jusqu’en septembre. Le prix n’est pas donné, mais le rapport perfor- mance/prix est excellent en compa- raison avec celui des mini- ordinateurs de bas de gamme Nous attendons aussi le discret McIntosh qui, a en croire ce que j'ai lu dans des revues professionnelles, devrait proposer a un prix sensible- ment plus abordable les avantages logiciels de Lisa et de sa souris, avec une puissance et une capacité rédui- tes. Dés que nous aurons eu l'occasion de travailler réellement avec Lisa ou McIntosh, nous vous ferons partager nos impressions plus en détail, Pom's n°7 L’Apple Ie (e pour «enhanced», Cest-a-dire amélioré) a été annoncé par Apple le 19 janvier dernier. Des- tiné 4 remplacer le modéle Apple Il + bien connu, il commence 4 se répan- dre dans les boutiques micro- informatiques. Grace a l'amabilité de la société 1.E.F., j'ai pu en avoir un exemplaire pendant une soirée, de quoi Iexaminer sous toutes ses cou- tures. Premiére constatation : si le nom change, la ligne demeure : le boitier est celui que nous connaissons tous. Seul le nom a changé pour s’adapter au nouveau logo. Cependant, pour l’Apple-o-mane averti, pas de risque de se tromper pour autant : le Ile dispose d’un clavier plus complet qui se remarque dés le premier abord. Un clavier plus complet Outre ses 11 touches de plus (63 contre 52), le clavier du Ile présente de nombreuses différences avec celui du II. Nous en commentons cl- dessous les plus notables. La touche RESET est mise 4 l’écart du reste du clavier afin d’éviter les fausses manipulations. De plus, le RESET n’est pris en compte que lorsque la touche CTRL est enfon- cée (il n'y a plus la possibilité de choix offerte sur le Il entre RESET tout seul et la double action CTRL RESET). Les minuscules sont disponibles au clavier et affichées comme telles a lécran. En fait, tous les codes Ascii sont générables au clavier. Une touche «Shift-lock» permet le blocage du clavier en majuscules. C’était nécessaire pour la program- mation en Basic (I'Applesoft, comme le DOS, n’accepte que les majuscules). Un bon point : le blo- cage majuscule/minuscule n’affecte que les touches alphabétiques. Appuyer sur «1» donne toujours le «1», quelle que soit la position de la touche Shift-lock. Quatre touches de’ gestion du cur- seur sont rassemblées en bas a droite du clavier. On y retrouve bien sar les classiques fléches a droite et A gau- che, mais également les fléches vers le haut et vers le bas. Pom’s n° 7 L’Apple Ile a lessai Toutes les touches qui générent un code sont a répétition automatique. Le temps entre le premier caractére et le deuxidme est relativement long, ce qui évitera, je pense, toute fausse manceuvre. En raison de cette répé- tition automatique, il n'y a plus de touche REPT (répétition). Deux touches marquées l'une d’une petite pomme vide (pomme «ouverte»), l'autre d'une pomme pleine (pomme «fermée») sont pla- cées de part et d’autre de la barre d'espacement. Filles ne générent aucun code (elles sont en fait équi- valentes aux boutons sur les poi- gnées de jeux), mais ont quelques fonctions particuliéres quand elles sont enfoncées en méme temps que CTRL-RESET : * la pomme ouverte force l'Apple a redémarrer (et donc a rebooter s'il y aun contréleur) quelle que soit ia configuration. Cela devrait per- mettre d’épargner considérable- ment le bouton de I’alimentation qui, l'expérience le montre, sup- porte trés mal les opérations de «marche/arrét» répétitives. * la pomme fermée provoque |'exé- cution d’un autotest. Parmi les nouvelles touches, on trouve également une touche de tabulation «TAB» et une touche «DELETE» qui pourront étre utili- sées par les logiciels prévus pour le Tle. Le clavier est utilisable en Azerty ou en Qwerty. La sélection est faite par un bouton poussoir judicigusement placé sous la partie inclinée de Apple. Ce bouton commande éga- lement le changement de caractéres a l'écran. Les caractéres frangais sont donc disponibles aussi bien au clavier qu’a l’écran. Malheureuse- ment, la disponibilité d'un double clavier se solde par un double mar- quage des touches, qui vont donc jusqu’a abriter 4 signes différents sur leur cabochon! En langage non informatique, cela s'appelle un casse-téte chinois, et taper plus de dix touches sans erreur reléve de l'exploit. Il ne semble pas qu'il existe pour le moment la possibilité d’un marquage unique (Qwerty par exemple) Jean-Francois Duvivier Comme pour le Il, un connecteur est toujours prévu pour le clavier numé- rique séparé. Certaines publicités ont fait état de touches de fonction programmables. La seule documentation que j'avais en ma possession (Manuel de Réfé- rence Ile) n'y faisait pas allusion. De méme, le programme de démons- tration et d’introduction au clavier ne mentionne aucune possibilité de tou- ches de fonctions. Outre le probléme de double nota- tion des touches, j'ai un deuxigme regret concernant le clavier : absence de buffer. La refonte du clavier tail l'occasion révée d’intro- duire un buffer de caractéres tel qu'on le trouve sur I’Apple II et méme sur le II (avec la carte Key- board Enhancer de Videx par exem- ple). Le buffer est comme toutes les bonnes choses : une fois qu’on y a gotité, on ne peut plus s’en passer ! Par rapport a |’Apple II, ces connec- teurs ont les mémes signaux disponi- bles sur leurs broches, ce qui signifie que la majorité des cartes d’exten- sion existant sur le II sont compati- bles, notamment les contrdleurs de lecteurs de disquettes, les interfaces imprimantes et la Softcard Z80. Les exceptions sont les cartes qui devaient obligatoirement se mettre dans le slot 0 (ROMcard Applesoft ou Integer par exemple) et toutes les carles nécessitant d’6ter un circuit de Apple pour connecter un cable a sa place (cas de certaines cartes RAM 16,32,64 et 128K ou de cartes 80 colonnes). La nouveauté vient d'un connecteur supplémentaire situé en plein milieu de la carte et dénommé «Connec- teur Auxiliaire» (quelle imagina- tion !). Ce nouveau connecteur comprend 60 contacts (contre 50 aux connecteurs de slot). Son emplacement (dans le prolongement du slot 3) interdit son usage simul- tané avec le slot 3. Il est prévu spé- cialement pour les extensions mémoire et pour l’extension 80 colonnes (de nombreux logiciels imposent l'utilisation du slot 3 pour les cartes 80 colonnes pour Apple Il, ce qui explique la position du con- necteur auxiliaire) . 25 26 Trois cartes actuellement disponibles en France utilisent ce connecteur : * une carte 80 colonnes ; une carte 80 colonnes doublée d'une extension mémoire de 64K ; * une carte RVB Chat Mauve per- mettant l'obtention des couleurs sur un poste téléviseur SECAM, ainsi que |’extension 64K et 80 colonnes. Le microprocesseur 6502 ne pou- vant pas adresser plus de 64K, Vextension de 64K n'est pas une extension de mémoire centrale 4 proprement parler. Mais elle est comparable aux cartes mémoires disponibles pour le II (Saturn, Ramex, Legend...). Comme elle est proposée par Apple et constitue de ce fait un standard, de nombreux logiciels vont pouvoir en faire usage Selon certains renseignements que je n’ai malheureusement pas pu véri- fier, l'adjonction de |’extension 64K permettrait de plus de disposer d’un graphisme haute résolution plus complet : 560 x 192. Sous le capot La carte mére a été totalement refaite : légérement plus petite, elle s’arréte avant le clavier, ce qui per- met d’accéder a tous les circuits sans démonter autre chose que le capot. Le nombre de circuits intégrés est passé d’environ 90 4 35. Cette réduction permet d’espérer bien entendu une fiabilité accrue. Elle s’accompagne également d'une réduction de la consommation de la carte mére. L’alimentation étant res tée la méme, on dispose ainsi de plus de puissance sur les slots. Le gain de circuits est essentielle- ment dd 4 I'intégration de plus en plus poussée des composants utili- sés. Par exemple, les mémoires vives RAM utilisées sont des 64 Kbits au lieu de 16, ce qui permet de faire 64 Koctets avec seulement huit cir- cuits. De méme, les mémvires mor- tes utilisées sont des 32 Kbits au lieu de 16. Enfin, deux circuits a 40 pat- tes trénent en plein milieu de la carte. Dénormés MMU (Memory Management Unit) et [OU (Input Output Unit), ils ont été réalisés spé- cialement pour Apple (il coulera de nombreux bits dans votre Apple avant que vous ne puissiez acheter un Ile made in Taiwan !!!) Lutilisation de mémoires repro- grammables pour le codage clavier et pour la génération vidéo des caractéres permet une trés grande souplesse. Chaque pays a sa version nationale du Ile, disposant en plus du Qwerty, d'un clavier équipé des caractéres spécifiques a la lanque, et de leur génération a |’écran. En ce qui concerne la génération video, il faut préciser que les Ile ven- dus en France sont équipés en stan- dard d'un modulateur PAL sélecta- ble par switch (sur la carte mére) Les possesseurs de postes de télévi- sion bi— ou tristandards pourront donc profiter directement des cou- leurs, sans aucune carte supplémen- taire. Les autres devront se conten- ter du noir et blanc ou attendre I’arri- vée imminente d’une carte «Chat Mauvre» adaptée au Ile (pour vous consoler, sachez que le standard SECAM est techniquement le meil- leur...). Trucs et astuces De rutilité du symbole « : » ]: READ permet de lire les DATA d'un programme (arété par CTRL-C, par exemple), alors que ] READ donne le message NOT DIRECT COMMAND de la commande READ du DOS. ]:IN#0 : PR#0 permet de déconneter de DOS. Pour le reconnecter: CALL 1002 ou *3D0G ou RESET. Parfois, ] PR#6 ne marche plus pour rebooter (quand par exemple la commande PR # du DOS a été endommagée). Pour sen sortir sans devoir éteindre Vappareil, faire ]:PR#6 ou *6CTRL-P. La raison de tout cela tient au fait que le DOS intercepte les com- mandes tapées en début de ligne au clavier, avant de redonner le contréle & l’'Applesoft (ou au moniteur). D'oi des problémes avec les commandes synonymes entre le DOS et Applesoft : PR #, IN # et READ. Ainsi, si l'on entre en mode direct A=3: CATALOG, Instruction CATALOG du DOS n'est pas reconnue. C'est comme cela que]: PR #6 active le «PR#» de PApplesoft (qui marche toujours, s'il est résident) et non celui du DOS, qui peut avoir été écrasé. Du cété des slots... Sept connecteurs (slots) numérotés de 1 47 sont disponibles. Il est noter qu'il n'y a done plus de slot 0. Lexplication en est simple : étant donné la présence sur la carte mére de 64 K de mémoire vive, le slot Q est considéré comme étant occupé par une carte langage 16 K. Petit détail intéressant : la présence A cété des slots d’un témoin de ten- sion (plus d’excuses pour les cartes mises ou enlevées avec |’Apple en marche !). On note également le blindage complet de larriére de Apple, désormais en métal et soli daire de la plaque du fond. Les grandes échancrures ont laissé la place & de multiples ouvertures pré- vues pour la fixation de connecteurs. Ceci devrait permettre de ne plus avoir 4 démonter ’Apple pour bran- cher le cable de I'imprimante ou de toute autre carte interface. Autre amélioration pour les fanas de jeux : un connecteur situé a cété de lentrée cassette permet de brancher les manettes de jeux sans avoir & démonter le capot et surtout sans devoir se munir d'une loupe pour effectuer le branchement ! Les logiciels Quant 4 son utilisation, le Ile se com- porte comme un Il équipé d’une carte langage. Le langage résident est le Basic Applesoft qui n’a pas bougé d'un iota. Les disquettes sont toujours au format DOS 3.3. En fait, il semble que les seules modifications «soft » effectuées concernent le moniteur (Prom F8), qui a été enti2- rement réécrit. Toutes les routines de gestion écran ont été modifiées pour prendre en compte la présence éventuelle d'une carte 80 colonnes. De méme, les routines concernant le clavier autorisent T'ulilisation des minuscules. Enfin, un autotest a été ajouté (activé par les touches CTRL- RESET-pomme fermée). Comme ces modifications ont nécessité plus de place mémoire, l'espace $C1UU- $C7FF auparavant dédié a l’'adres- sage des slots est maintenant sélecta- ble entre les slots et une Prom. Malgré toutes ces modifications, les principaux points d’entrée du moni- teur ont été gardés aux mémes adresses. Vous pourrez toujours, par exemple, passer en mode moniteur en tapant CALL-151. Ainsi, sur 300 programmes commerciaux tes- tés sur Apple Ile, j'ai lu que 95 % Pom’s n°7 avaient tourné du premier coup et 3 % apres quelques légéres modifi- cations. Pour ma part, tous les logiciels que jai essayés ont parfaitement tourné, ce qui est rassurant du point de vue compatibilité. Et le portefeuille... De méme que pour Apple Il ces derniers mois, le Ile sera essentielle- ment vendu sous forme d'une confi- guration comprenant un Ile 64K, un contréleur, un drive et un moniteur & écran jaune. Les cartes d’extension spécifiques au Ile sont la carte Apple 80 col., la carte 80 col. + 64 Ketla carte Chat Mauve. Il est 4 noter que, si cette derniére était disponibles par- tout, les deux autres étaient totale- ment inconnues a deux des cing boutiques consultées. Les prix TTC que jindique ci-dessous résultent d'un sondage effectué par téléphone auprés de cing boutiques parisien- nes : * configuration : de 14 700 4 14 995 F © Apple Ile seul : de 9900 411950 F * carte 80 col. : de 9004 S999F * carte 80 + 64K: de 23004 2400F ® carte « Chat Mauve » : environ 3 000 F On remarquera, en dehors du cas particulier de |'Apple IIe seul, que les prix varient trés peu d’un revendeur a l'autre, résultat de luniformisation des prix imposée par Apple-Seedrin. Conclusion J'ai rencontré deux problémes parti- culiers sur 'exemplaire qui m’a été prété: D'une part, la commande PR # suivie d'un numéro correspon- dant a un slot vide sélecte la pre- miére carte trouvée dans un slot supérieur. C'est ainsi qu'un PR # 4 fait rebooter le disque, bien qu'il n'y ait aucune carte dans le slot 4 (le contréleur étant en 61). D'autre part, il semble que l'Apple dont je disposais avait quelques difficultés 4 s‘initialiser correctement aprés des coupures de tension bréves (infé- rieures 4 2 secondes), ce qui m’arri- vait lorsque jutilisais l'interrupteur de l'alimentation pour faire rebooter l'Apple. En dehors de ces problémes mineurs, il faut souligner l'excellente compatibilité du Ie avec son prédé- cesseur le II+, tant au niveau du matériel (j'ai essayé sans probléme toutes mes cartes interfaces. y com- pris une extension 128K Saturn) que du logiciel. Cependant, je dois dire que cette premiére confrontation avec le Ile m’a laissé un sentiment de décep- tion. Attendant avec impatience ce successeur de |'Apple Il, je me suis retrouvé en face de la méme machine, mais incapable de taper trois touches de suite ! Cette impres- sion d'absence de nouveauté a éé certainement accentuée par le fait que je dispose déja des minuscules sur mon Apple II. D’autre part, je n’ai pas pu emprunter d’une carte extension 80 colonnes pour mon essai, ce qui ne m’a pas permis d'apprécier le confort apporté par les 80 colonnes. Autre déception : les prix. Compte tenu d'un abaissement vraisemblable des coiits de production (carte plus petite, nombre de circuits en baisse...), on pouvait réver 4 des prix inférieurs a ceux du II. Hélas, le Ile affiche un bon 2 000 F de plus. Comme, d’autre part, le II ne sera plus vendu, il s’ensuit une augmen- tation importante du syst@me -mini- mum qui atteint maintenant les 15 000 F. Si cette somme ne consti- tue pas un probléme pour les utilisa- teurs professionnels (tres majoritai- res il est vrai), elle devient fort diffi- cile & réunir, en cette période de crise, par un utilisateur individuel qui préférera alors se reporter sur des machines plus accessibles. L’évolu- tion dans le domaine de la micro- informatique se traduit d’habitude par « plus puissant et moins cher ». ll semble que ce ne soit plus le cas désormais chez Apple. Dommage ! Ceci dit, l'Apple Ile a pour avantages sa compatibilité et sa fiabilité plus grandes. Si l'on pouvait avoir une version Azerty simple (16 cabochons a changer), ce serait beaucoup mieux ! Des programmes Les programmes en langage machine dépendent en général de Yadresse a partir de laquelle ils ont été assemblés et ne peuvent de ce fait « fonctionner » que s’ils sont lan- cés a partir de cette adresse. Si nous voulons qu'un programme se char- geant en haut de la mémoire puisse fonctionner sans probléme avec un Apple de 16, 32 ou 48K, il nous faudrait normalement prévoir trois versions du méme programme ! La solution évidente d’un tel pro- gramme consiste naturellement a écrire des programmes indépen- dants de leur origine, c’est-a-dire des programmes relogeables (relocatable Pom’s n° 7 programs), exécutables quelle que soit leur origine. Les deux obstacles principaux 4 de lelles praliques sont les branche- ments inconditionnels (.JMP, abré- viation de « jump », l’€quivalent en assembleur du GOTO) et les appels & des sous-programmes (JSR, « jump to subroutine », l'équivalent du GOSUB) comme le montre le petit programme ci-dessous : 1. JMP DEBUT 2 DEBUT JSR RIEN 3 BRK 4: 5 RIEN RTS 6° relogeables Philippe Frangois Le probl@me posé par les JMP se résout aisément : il suffit de rempla- cer ces branchements incondition- nels (dont les adresses sont explici- tes) par des branchements condi- tionnels forcés. En effet, les branche- ments conditionnels du type BEQ, BNE,. étant des branchements relatifs, ils ne dépendent pas de Tadresse d'implantation du _pro- gramme. On remplacera donc tous les JMP du programme par un des couples d’instructions suivant : CLC et BCC, ou bien SEC et BCS. a CLC 2 BCC DEBUT 3° Fs -: ie3} a es 27 Un petit probléme encore, & propos de ces branchements conditionnels forcés : les déplacements étant rela- tifs et s’exprimant sur sept bits (le bit huit indiquant le sens du déplace- ment, en amont ou en aval de la présente adresse) ne pourront étre supérieurs 4 126 octets dans un sens ou dans l'autre. Toute tentative de dépassement de cette limite sera sanctionnée par le qu'un), ainsi que la lecture d'un petit article dans Apple Assembly Lines (Vol. 2, N° 10, juillet 1982), nous ont permis de comprendre la fagon dont il pouvait se résoudre : A la place de chaque JSR (nom du sous-programme), placez les trois lignes suivantes : CLV JSR $FF58 BVC (nom du sous-programme) 4 DEBUT JSR RIEN Le probléme posé par les JSR se sur la pile, exactement comme si 5 BRK résout moins aisément. Néanmoins. nous lavions appelé par un JSK 6 * examen attentif des programmes RIEN normal! Mais attention, ce 7 RIEN RTS machines relogeables du commerce rest pas fini... En effet, si nous e* (AMPER MAGIC, pour n’en citer essayons de sortir du sous programme RIEN par un RTS, nous allons nous retrouver 4 I'instruction BVC RIEN qui sera de nouveau exé- cutée et nous entrainera dans une boucle infinie ! Il n'y a malheureuse- ment pas d’instruction 6502 du type SEV (« set overflow ») , aussi allons- nous faire appel de nouveau 4 notre précieuse adresse $FF58 et terminer notre sous-programme RIEN par le couple d'instructions suivantes : fatidique message OUT OF RANGE _‘Mystérieux, n’est-ce pas ? Commen- BIT $FES8 ; place l'over- ERROR de l'assembleur tons donc cette séquence. L’octet 3 flow : placé 4 l'adresse $FF58 de la ROM RTS La technique employée alors sera celle de l'ascenseur comme le mon- tre l'exemple suivant : Moniteur est toujours égal 4 $60, code de l'instruction RTS L’appel d'un sous-programme con- Linstruction BIT (voir par exemple « Programmation du 6502» par ORG $800 sistant seulement en un RTS peut Rodnay Zaks, page 103) effectue un CLE Paraitre stupide, mais il a pour effet ET entre l'accumulateur A et la de placer les deux octets de la pré mémoire ; mais, surtout, les bits 6 et BCC ETAGE . ; suite du programme sente adresse sur la pile (stack), puis de les ressortir. Nous pourrons alors réutiliser ces deux octets dans le 7 de la mémvire sont tansférés dans les bits V et N du registre d'état. La mémoire contenant $60 (soit . SEC | sous-programme concerné : 01100000 en hinaire), le bit V du ETAGE BCC DEBUT registre sera donc bien positionné & : RIEN TSX ; valeur du pointeur la valeur 1. . ; suile du programme i de pile Résumons-nous par ce petit pro- 2 oe gramme oi sont utilisées toutes les DEBUT JSR RIEN DEX techniques examinées dans cet arti- BRK TXS ; nouvelle valeur és? RIEN RTS Le sous-programme RIEN posséde * maintenant une adresse de retour 1 x RELOGEABLE 2 RETURN EQU SFF58 Big Mac 3 couT EQU $FDED 4 x seee: 18 s cLe x PSEUDO JMP DEBUT 8061: 98 a8 6 BCC DEBUT 7 ® 8683: BS 8 DEBUT CLYy % EMPILE LA PRESENTE 8864: 28 58 FF 9 JSR RETURN ADRESSE 8887: Se B66 18 BVC BELL PSEUDO JSR BELL 8009: AY Ci it LOA #"A" 886B: 28 ED FD 12 JSR COUT BOGE: 60 13 RTS 14 * iS x 86GF: BA 16 BELL TSX X MISE A JOUR 8018: CA 17 DEX x DU POINTEUR 8e11: CA 18 DEX * DE PILE 8812: 9A 19 ™s 8813: AP 87 26 LDA #$87 8815: 28 ED FD 21 JSR COUT 8818: 2C 58 FF 22 BIT RETURN ARME LE BIT N 23 *® DU REGISTRE D’ETAT SO1B: 68 24 RTS Pom's n°7 Le programme ci-contre s'adresse & ceux qui souhaitent visualiser les informations stockées sur une dis- quette formatée en Pascal. Ces informations sont groupées en 280 blocs de 512 octets par dis- quette. Description générale Le programme édite sur |'impri- mantle un « dump » de la disquette tel que présenté en fin d’article. Cha- que ligne indique le numéro d’un groupe de huit octets, puis chacun de ceux-ci en décimal (de 0 & 255), et enfin les caractéres ASCII corres- pondant 4 ces huit octets. Vous vous étes probablement aper- cus que le code ASCII est le méme pour un octet X (de 0 a 127) et Yoctet X + 128. Toutefois, dans le listing ASCII des octets dont la valeur dépasse 127, nous avons pré- cédé ceux-ci du caractére exponen- tiation « A ». D’autre part, les caract@res dont les codes sont compris entre () et 32 inclus ne sont pas tous imprimables. C'est pourquoi nous les avons rem- placés par un mnémonique relatif & leur réle respectif (12 = LF, 27 = ESC, 7 = BEL,...). Ces mnémoniques sont imprimés aprés que leur signification ait été prélevée dans le tableau TABCTRL OF STRING [3]. Ce tableau est rempli en début de programme par la pro- cédure LECTABCTRL 4 partir du fichier précédemment créé par le programme WRITECTRL sur lequel nous reviendrons ultérieurement. Le programme Lors de son exécution, le pro- gramme LECTBLOCK demande 4 Putilisateur le numéro du canal asso- cié A la disquette 4 analyser, puis celui du premier bloc, et enfin le nombre de blocs 4 « dumper ». Pour savoir a partir de quel bloc cette opé- ration doit débuter, il suffit d’exami- ner le directory de la disquette avec le FILER en sélectionnant la com- mande E. Dés cet instant, le « dump » sort sur Yimprimante et occupe 65 lignes sur Pom’s n° 7 Dump Pascal une page qui en contient normale- ment 66, ce qui permet d’archiver une page de listing par bloc de 512 octets. Il faut remarquer que, contrairement au BASIC, Pascal enregistre ses fichiers sur disquette de facon continue, si bien qu'il est trés simple de lister un fichier connaissant l’adresse de son premier bloc et sa longueur (commande E sous FILER). Le programme lui-méme est simple et s'articule autour d’une instruction UNITREAD (numdrive, fich, 512, numbloc). Cette instruction est capa- ble de lire des informations non structurées, contrairement aux autres instructions d’entrée/sorlie. Les paramétres de cette instruction sont : le numéro de drive, fich (un tableau de caractéres), 512 (nombre d'octets a lire) et numbloc (le numéro du bloc). Notons également qu’afin d’alléger au maximum le programme, aucun contréle de cohérence n’a été pro- cest DE LA eaer DION LECTEDR, ucconTeENT. grammé dans les saisies, ce qui implique un tant soit peu de vigi- lance lors de l'entrée des paramé- tres. On aurait pu effectuer des tests de cohérence, mais il faut bien com- prendre que l'utilisation de ce pro- gramme est ponctuelle, dans le but de scruter des informations sur dis- quette, ce qui n’est pas une manipu- lation courante. Michel Marquis Il n'est toutefois pas inutile de l'exé- cuter simplement par curiosité, notamment sur les fichiers illisibles par des moyens « légaux » comme SYSTEM APPLE, SYSTEM MIS- CINIO, ... ou sur le texte de votre programme (vous serez surpris !). A titre d’exemple, nous avons joint en page 34 un «dump » partiel du fichier CTRL.DATA créé par le pro- gramme WRITECTRL. Mise en ceuvre du programme 1. Entrer le programme WRITECTRL 2 . L’exécuter en y entrant les mné- moniques ASCII de 0 4 32. S’aider de Pom’s 4 ou du « dump » donné en annexe. 3. Entrer le programme LETBLOCK. Vous pouvez chan- ger le numéro du drive sur lequel se trouve FICHCTRI. en rempla- cant #5: CTRL.DATA par #4: CIRL.DATA 4. Lancer l'exécution. Bien entendu, si vous avez acheté la disquette d’accompagnement de ce numéro, vous y trouverez les pro- grammes tout préts. Conclusion Comme nous |’'avons remarqué plus haut, ce programme n’est pas d'une utilisation courante, mais il peut apporter beaucoup 4 ceux qui tra- vaillent «prés» du systéme. De toute facon, il présente un intérét pédagogique indiscutable. Pour l'instant, nous nous limitons a la publication d'un programme capable uniquement de lire des blocs sur dis- que, donc sans danger. Il lui man- que la possibilité de modifier les octets lus, puis de les réécrire. Nous ne doutons pas que certains d’entre vous |'écriront rapidement et enver- ront leurs contributions & Pom’s. Pour les autres, si la suite les inté- resse, nous pourrons la publier ulté- rieurement. 29 Programme DUMP PROGRAM LECTBLOCK; TYPE CARACT=PACKED RECORD NOM: STRING[ 31 END; VAR FICH:PACKED ARRAY([@..511] OF CHAR; PAPIER: TEXT} TABCTRL:PACKED ARRAY[8..32] OF STRINGI3]; FICHCTRL:FILE OF CARACT; NUMBLOCK ,NUMDRIVE ,NBBLOCK: INTEGER, REP: CHAR; PROCEDURE LECTABCTRL; VAR I: INTEGER; BEGIN RESET CFICHCTRL, ’#5:CTRL.DATA’) 5 FOR I:=@ TO 32 DO BEGIN TABCTRLE 11] :=FICHCTRL* .NOM; GET<FICHCTRL> END; CLOSECFICHCTRL) ; END; PROCEDURE LECTURE; VAR I,J,CH: INTEGER; BEGIN REWRITE<PAPIER, “PRINTER: 7%) 3 WRITELN(PAPIER,’BLOCK NUMERO : ’:45,NUMBLOCK) ; UNITREAD(NUMDRIVE , FICH,512,NUMBLOCK) ; 1:=@; REPEAT WRITECPAPIER,I:3,’ 723 FOR J:=i TO 8 DO BEGIN CH:=ORD¢(FICHE11> ; WRITE PAPIER,CH:4) ; I:=I+1;5 END; WRITECPAPIER,” ae | :=1-8; FOR J:=1 TO 8 DO BEGIN CH:=ORDC(FICHEI1) ; IF CH>127 THEN BEGIN WRITECPAPIER,’ *°)3 CH:=CH-128 END ELSE WRITECPAPIER,’ ‘)35 IF CH<=32 THEN WRITECPAPIER, TABCTRLICH]) ELSE WRITECPAPIER,CHR(CH) :3) 3 Tr=It1 30 Pom’s n°7 END; WRITELN¢ PAPIER) 5 UNTIL 15511; CLOSECPAPIER? ; END; BEGIN (PROGRAMME LECTURE BLOCK(S) x) LECTABCTRL ; REPEAT PAGE OUTPUT) ; GOTOXY(5,5) ;WRITE< “NUMERO DU DRIVE (SANS #) : 7); READLN(NUMDRIVE) ; GOTOXY(5, 16) ;WRITEC “NUMERO DU PREMIER BLOCK : “); READLN <NUMBLOCK) ; GOTOXY(5, 15) ;WRITE( “NOMBRE DE BLOCK(S) : “); READLN(NBBLOCK) ; REPEAT LECTURE; NUMBLOCK :=NUMBLOCK+ 1; NBBLOCK :=NBBLOCK- 1; UNTIL NBBLOCK=6; GOTOXY< 10,22) ;WRITE¢’CONTINUER ? (O/ND 7); READ(REP) ; UNTIL REP=*N* END. Programme WRITECTRL PROGRAM WRITECTRL; BEGIN TYPE CARACT=PACKED RECORD OUVERTURE; NOM: STRING 2] RESET(FICHCTRL ,“#5:CTRL.DATA’> ; END; PAGE‘ OUTPUT? ; FOR I1:=@ TO 32 DO VAR I: INTEGER; BEGIN FICHCTRL:FILE OF CARACT; WRITECI:#3,% = 723 READLN¢FICHCTRL* «NOM ; PUT(FICHCTRL) ; END; PROCEDURE QUVERTURE; CLOSE¢FICHCTRL ,LOCK> BEGIN END. (X$1-%) RESET(FICHCTRL, “#5:CTRL.DATA’) ; Exemples de dump en page 34 CHSI+X) IF IORESULT<>@ THEN BEGIN IF IORESULT=16 THEN REWRITECFICHCTRL, ‘#5:CTRL.DATA’>) ELSE BEGIN PAGE (OUTPUT) ; WRITEC“ERREUR E/S*); EXIT(CWRITECTRL> END; END; CLOSE(FICHCTRL,LOCK) END; Pom’s n°7 31 TOUT SUR LA MICRO UExposition : du 14 au 18 juin 1983 e mardi 14, mercredi 15, vendredi 17, de 9h 304 18h noctume le jeudi 16, de 9h 304 22h e samedi 18 de 9h 304 I7h. Tous les matériels, toutes les applications des micro- personnelle, venez évaluer les matériels, comparer leurs ordinateurs. Que votre motivation soit professionnelle ou _codits et vous renseigner sur les applications disponibles. Nouveauté 83 : une animation « logiciel » (organisée par Sybex et Logiciels & Services). Une banque de données des logiciels présentés par __ meilleurs logiciels pour micro-ordinatours. Les lauréats pré les exposants & MICRO-EXPO vous guidera, selon vos _ senteront leurs logiciels pendant toute Id durée de MICRO- besoins spécifiques, & travers |’exposition. EXPO (Renseignements : Logiciels & Services, tél. : (1) Un « grand concours » destiné 4 récompenser les 226.11.25). Et pendant toute la durée de |'exposition, une animation-jeux : venez affrontez |’ordinateur et peut-étre... le battre. Le Congres du 13 au 18 juin 1983 Du débutant & I’expert, une occasion unique dans |’année de se former et de s’informer. séminaires professionnels Conférences Grand Public Les micro-ordinateurs : présentation, choix Choix d’un micro-ordinateur les microprocesseurs Les micro-ordinateurs de poche Les langages : BASIC, PASCAL, APL Les nouveaux langages : FORTH, LOGO, PROLOG, Cc La télématique Zz Le traitement de texte U'enseignement assisté par ordinateur - E.A.O. Les systémes d’exploilution pour micro-ordinateurs 16 bits Le traitement de texte Journées spécialisées, avec démonstrations : — pour les professions juridiques, La comptabilité et ses logiciels — pour la médecine, — pour l’agriculture. L‘entreprise, son systéme d'information et |'informatique les bases de données_et leurs logiciels Journées des constructeurs = la:gestion tle Viseole COMMODORE, GOUPIL, HEWLETT-PACKARD, Te systme d’exploitation MS-DOS TANDY, THOMSON, VICTOR LAMBDA INFORMATION Nom: g Adresse : 5 ; Code postal:|_| | | | J Ville : & O __. entrées(s) & demi-tarif O Programme détaillé du congrés 4, place Félix-Eboué - 75583 PARIS Cedex 12 - Tél. : (1) 347.30.20 - Telex : 211 801 F 8 Congrés-Exposition - MICRO-ORDINATEURS Palais des Congrés - CIP - Porte Maillot - Paris organisé par : SYBEX 4, place Félix-Eboué - 75583 PARIS - Tél. : (1) 347.30.20 - Telex : 211 801 F BLOCK NUMERO : 21 @ 3 78 8 76 3 83 79 72 ex N U LEX 8s oO 2 8 3 83 84 88 3 69 84 88 ex Ss T X* EX EE * 2m 16 3 69 79 84 3 69 78 81 EX E— O T EX cE NSE 24 #3 65 67 75 3 66 69 76 Ex A c «K EX 8. 5m 32 3 32 66 83 3 32 72 84 ET sPC B S EIX SPC HT 40 3 32 76 7@ 3 32 86 84 E™ sPC tL F EX Spc U-oge 48 3 32 78 78 3 32 67 82 E™ spc F FF EIX spc C Jam SS 6 3 2 os 9) «=D Se ‘es ‘73 E™ spc Ss oO ETX SPC Ss JI 64 3 68 76 67 3 68 67 49 E™ Oo LL cE EX DB Cc am 72 3 68 67 5@ 3 68 67 SI Ex Dd c 2 &x o calm se 063 «668 67 «520 (3 78 65 75 ex o. ¢C 4 EX N 6m se 3 83 89 78 3 69 84 66 ex S Y N EX cE T 96 3 67 65 78 3 32 69 77 —E™X c A N ETX SPC E M 10403 83 85 660 3 SF «83 67 EX S U BEX E 8 & 112 3 32 78 83 3 32 71 83 —E™X spc F S$ ETX SPC G § 12@ 3 32 82 83 3 32 85 83 E™X spc RS EX SPC US 128 3 83 8@ 67 @ @ 68 @ E™ S PC NUL NUL NUL NUL Fichier 6500 ERRORS : dump partiel BLOCK NUMERO : 151 e 1 92165 3@ @ @ 6 @ SOH SPC * 9 RS NUL NUL NUL NUL 8 174 21 147 161 7 165128211 * . MAK *DC3* ! BEL * % “NUL * 16 199 184 1 94 25 1165128 * >* 8 SOH * EM SOH* % “Kim 24 185 174 28 167 55 161 3 41 a 9%. pe4r ¢ 74 ! Gtx 32 174 18 165 128 143 @ 204 1 * . DC2* % *NUL* SI NUL *~ L SOW 40 198 1 15 117 116 10@ 1e1 182 * F SOH_ SI u on de 48 105 110 181 188 32 188 97 98 i noe @ $PC 1 a 56 181 108 198 164 1 94 25 1 e 1* >%* @ SOH * EM SOH 64 165 128 185 174 28 167 55 161 * %*NUL* 9~* . DC4* ” 7 4 72 3 41 174 18 165 128 143 @ —E™ >) * . De2* % “NUL * SI NUL pe 204 «21198 «#41 2@ 111112 101 ~*~ L SOH* F SOH DC4 o Pp 88 114 97 110 1@@ 32 111 117 116 roa lun SPEC 96 32 111 182 32 114 97 118 103 spc oo f SPC or <\" 164 181 1 165 128 185 174 28 167 e SOH* %7NUL* 9* , 064+ 112 55 161 3 41 174 16 1465 128 7° | €% O* . 0C2% % ~ 12@ 143 @ 204 1198 1 24189 «+.~ SI NUL* L SOH~ F SOH CAN 128 117 115 116 92 104 97 118 1@1 o « €¢ &S A @. 9 136 32 112 114 111 99 181 188 117 sec op ro ¢ e dog 144 114 101 92 118 97 109 101 174 r @ sec n a2 nm €*3 152 28 167 55 161 3 41 174 18 pea = * ie a 148 165 128 143 @ 204 #1498 #{ =~ % “NUL * SI NUL* L SOH* F SOH 168 29 118 117 109 98 161 114 32 6 nn vw m b e PF 8 176 111 162 32 112 97 114 97 169 o ¢ SPC p a r a m 184 161 116 101 114 115 32 181 128 e t er s SP e x 192 112 101 99 116 181 186 3 41 eo © ¢€£ t e 4 EX »> 200 174 18 165 128 143 8 204 «1 . oe2* % “NUL * ST NUL * L_ SOH 208 198 1 21 181 128 116 114 97 ~*~ F SOH NAK e@ x t r @#@ 216 32 103 97 114 98 97 103 101 spec 9 a r b a GO eC 224 32 111 118 32 168 185 11@ 161 spc oo n SPC 1 i noe 232 181 12 tiz 181 99 116 101 168 2 *« p @ c«€ t ed 248 «893 41 174 18 165 128 143 @ E™ > * . De2* % “NUL * SI NUL 248 204 «#41198 1 29 185 118 112 * L SOH~ F SOH GS i nop 256 117 116 32 108 185 11@ 1e1 32 u t spc 1 i ne SPC 264 111 118 181 114 32 56 48 32 o ve or spc 8 @ SPC 272 99 184 97 114 97 99 116 101 ec oh aor aoe t oe 288 114 115 3 41 174 18 165 128 ° © £m .»>* , bez* % Ae 2e8 143 @ 204 #1198 #1 16118 * SI NUL* L SOH* F SOH DLE n 276 111 116 32 101 116 111 117 163 st oe « A 6 Ww “™ 304 184 32 46 73 78 39 115 56 h SPC F I Fo s 8 312 48 32 99 104 97 114 97 99 esp c h a rp ae 32@ 116 101 114 115 3 41 174 18 + @©« © ws 64 2% = De ES Ee Pom's n° 7 34 Fichier CTKL-DATA : dump partiel Bien que totalement inédit, ce géné- rateur peut étre d’une grande utilité pour un programme scientifique ou éducatif, ainsi que pour tout pro gramme devant conserver et utiliser des données sans créer de fichiers. En fait, il devrait aussi permettre de réaliser des programmes sortant de Vordinaire... Le générateur donnera 4 votre pro- gramme la faculté de se développer lui-méme, grace a une simple com- mande qui, lorqu’elle est rencon- trée, a pour effet d'ajouter un numéro de ligne a toute instruction Applesoft et d’insérer la liigne en question dans le programme En fait, il a fallu pour l’écrire recourir & des routines de la ROM Applesoft assez peu connues... Ces routines seront indiquées plus loin. Principe de fonctionnement Ayant souvent éprouvé l'inconvé- uient, dans un programme utilisant des fonctions mathématiques, de devoir stopper celui-ci pour y insérer des lignes de détfinitions ou pour y incorporer des DATA, je me suis dit qu'il serait merveilleux de disposer d'une routine en asssembleur accor- dant aux programmes écrits en Applesoft une dimension évolutive, la capacité de s'‘auto-générer ! Les données entrées par INPUT au cours du programme pourraient par exemple lui étre incorporées sous forme de lignes d’instructions, avec un numéro qui serail aultomatique- ment incrémenté et placé au début de la ligne générée. Pour que le générateur puisse opé- rer sur toute instruction Applesoft, une commande INPUT digérant vir- gules et deux-points est indispensa- ble ; or, cette commande a été réali- sée antérieurement et publié dans le numéro 5 de Pom’s (voir « La pro. grammation facilitée »). Parmi les instructions qui compose- ront les lignes générées, l'une serait corrélative a l'auto-écriture d’instruc- tions DEF. En effet, lorsque le pro- gramme appellera une ligne conte- nant des instructions DEF, cet appel nécessilera un RETURN, qui devra Pom's n°7 Un générateur par conséquent @tre produit par le générateur. Demander au programme d’effec- tuer un appel par GOSUB ou GOTO 4 des lignes qui n’existent pas encore, et que l'on propose d’ajou- ter durant le traitement, pose quel- ques questions! Une convention s'impose alors : les lignes ajoutées commenceront par exemple 4 partir du numéro 20 000, avec un incré- ment de 10; on calculera ainsi le numéro d'une ligne créée a partir de son rang. S'il s'agit de la troisiéme, la premiére ligne ayant le numéro 20 000, ce sera la ligne 20 020. On se dit que, puisque le générateur peut ajouter une nouvelle ligne au programme, il serait également nécessaire de pouvoir modifier la derniére ligne existante, lorsqu'il s'agit d'un RETURN notamment. Cette possibilité serait obtenue par une option a laquelle on donnera le nom de POP. Ces projets me paraissaient promet- teurs ; jimaginais un programme démarrant avec deux lignes, s’auto- générant a partir de quelques indica- tions et se sauvegardant tout seul sur la disquette, une fois la mémoire saturée... Un écueil de taille s’opposait toute- fois a la réalisation : il fallait trouver la procédure Applesoft convertissant les lignes en format programme, dans lequel les instructions sont représentées par un code d’un seul octet. Je ne possédais pas la docu- mentation nécessaire et entrepris de la chercher tout seul dans I'Apple- soft, 4 partir de l'adresse $D000. Crest a l'adresse $D56D que je lai enfin trouvée, rebelle 4 un emploi immédiat, finissant avec la longueur des données en Y alors qu'elle est initialement en X dans le buffer dentrée et modifiant en outre TXTPTR, l'ensemble des pointeurs servant & analyser le programme en cours. Cette routine une fois décou- verte (ainsi que quelques autres 4 l'occasion), le module était réalisé ; en voici le mode d’emploi. Mode d’emploi Une seule commande permet Denis Sureau dobtenir la génération d’une ligne Applesoft de tout type ; son format comporte deux variantes, soit Vemploi d'un mot réservé de l'Applesoft, soit l'emploi d'un carac- tére quelconque. Les instructions & DATA A$ et & DEF A$,lorsqu’elles sont rencon- trées, ont pour effet d'ajouter au programme les instructions conte- nues dans A$ sur une ligne qui com- mencera automatiquement par DATA ou DEF. Plus généralement, avec la syntaxe & X A$, X est choisi par l'utilisateur. Cela peut étre un caractére quelconque ou un mot réservé de l’Applesoft, avec un effet différent : le mot réservé sera incor- poré en début de ligne, le caractére ne le sera pas. L’option POP utilise la syntaxe & POP DATA A$ ou enfin & POP X AS, la nouvelle ligne remplacant la derniére et prenant son numéro, Les commandes du générateur peu- vent s‘employer en mode direct si un programme est présent en mémoire et sila LOMEM a été déplacée. Ceci est une précaution dont on s’assu- rera toujours avant d’utiliser le géné- rateur : la LOMEM doit étre placée suffisamment haut pour protéger les variables, puisqu’elles suivent immé- diatement, en temps normal, le pro- gramme dans la mémoire. NDLR : ne pas oublier d’abaisser la HIMEM au-dessous du début du générateur avec HIMEM : 38048 si Yorigine est en $94A0 comme sur le listing Routines Applesoft Les deux plus importantes sont MOVSTR ($E5E2) pour le transfert des données et en $D56D celle qui « tokenize » le buffer d’entrée, c’est- & dire qui convertit les mots réservés en codes. On appelle $D56D avec X mis a 0, en sauvegardant TXTPTR qui sera pointé sur le buffer d’entrée ($200), et en remplacant par $0 le délimiteur $D (RETURN) se trouvant ala fin du texte lors d’une entrée par INPUT. Convertie en format Applesofi, la ligne se trouve bien sir réduite ; le registre Y contiendra alors la nou- SSS a ee ee ee 35 velle longueur de la ligne, délimiteur compris. MOVSTK transfére une donnée pointée par Y (ADL), X (ADH), lon gueur en A vers l'adresse pointée en $71 et $72 (FRESPC). MOVINS ($E5D4) fait la méme chase que MOVSTR mais cop

Showing the first 100000 of 206037 characters.

mp.ls