Skip to main content

magazine poms04

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

Showing the first 100000 of 189150 characters.

mp.ls