Skip to main content

magazine poms29

  • PublicationApple Periodicals
  • Pages76
  • Sourcemagazine_poms29.pdf
← Magazines magazine poms29
/ 76
Source: Internet Archive — Aggregated Apple-era periodicals, 1981–2012.
Page 1
Loading…
Text content (OCR)
La revue francophone indépendante pour les utilisateurs des Apple J[+, //e, //e+, //c, Ilcs™ et Macintosh™ Les nouveaux Macintosh : Mac SE, Mac II Cryptage de fichiers confidentiels Disque virtuel et AppleWriter Essai ‘routier’ de PageMaker Kyram : nibble et protection ProDOS : fichiers détruits @ Conversion HGR/DHGR @ Méthode ‘Simplexe’ @ Recherche d’octets @ Minitel & Apple: * graphisme + ligne artificielle RAAB. A.A. | NUMERO 29 . PRIX 45 F M 2366 - 29 - 45,00 F | 3792366045005 002 90 ISSN : 0294-6068 ® CREEZ VOTRE PROP e ACCEDEZ AUX RESEAU MODEMS OLITEC ORDINATEUR EN SUPER MINITEL A PARTIR DE X NATIONAUX, INTERRATIONA 2805 TIC RE SERVEUR SS Apple 2E, 2 + Apple 2S; 2 Gs 2 Coffrat me 2 nodes (Vv 24 ‘ion sans interface + Coffret Me initeusérie vous | * Moder Cite 103, Bell 202) Mame configuration * 1 interface sie du Minitel) 4 Miele série RS232 ai serie. 6 490,00F 1c tisez le ni 04 Pri interface serie FS202 | 4 togiciel de comm oe 11 690,008 se 4 togictol de communicati universel sitet ° eee 2 080,00F tc i 4 emulation Min! Ne 3 Prix 1 winaation Minitel 4 .990,00F rte a ces 890,00F r1¢ MODEMS, Interfa 03: 5 2c, 2 GS, Mac: @ Coffratn? 3: todas & Sirs 4 2: Olitec | a wr Apple 1 Modem tomatique (V25, V24 > Modem 12 modes pout ARDS ET reponse 1 logiciel 10! v2, V23, Bell 4 interface sere RS232 3, Bell 202) automatique a répor mm 16 modes de communication « Mode: 4 rface MinitevSere { 1 on Minitel o Inter | 260F ns —— 0,00 F re ae CONTACTEZ-NOUS : STE OLITEC, 20, rue de Remenauville - 54000 NANCY Téléphone : 83.35.00.65 SYSTEME EXPERT pour Macintosh Installez un Systeme Expert aux fonctionnalites professionnelles sur vulre Mac (128K, 512K, 512/800 ou MacP lus) © Création, modification, sauvegarde de’ vos propres «Bases de Conriaissances» pouvant contenir jusqu'a 250 Regles exprimees en francais courant © Chaque Regle peut comporter de | 8 6 conditions ® Liste et Dictionnaire des Bases de Regles et de Faits e Moteur d'inférence fonctionnant en logique propositionnelle e Simplicité d'utilisation, exploitant toute la convivialité du Mac ® Logiciel structure ecrit en Microsoft® MBASIC 2.0 @ Programme source livré non protege © Logiviel proposé complet, port inclus, au prix de 350 F TIC FONCTIONNE EN « Chainage avant ¢ Chainage arriere ¢ Vérification d'hypotheses @ Modes “déduction” et "vérification” assistées, proposes automaliquement en cas de non- résolution Commandez dés aujourd'hui votre disquette, contenant le Programme source + Mode d'emploi et Documentation complete + 3 Bases de Connaissances proposées en exemple (que vous pourrez éditer et modifier ) en Botanique, Diagnostic automobile et Grapholagie fdressez votre cheque a BOYER-LARVET, 22 Soudanes, 78430 LOUVECIENNES Numéro 29 Les nouveau-nés mars-avril 1987 coe SE & II Editorial 4 — Hervé Thiriez Page 5 == de Recherche d'octets fichiers : Kruptos Patrick Covare I+} | //e Te] Jean-Luc Bazanegue a ee (es eee) Page 6 Page 45 Apple & Minitel : Critane de les caractéres C3 fichiers : Kruptos _ semi-graphiques Page 10 fe] toheoie iy Conversions i ess] Page 53 HGR/DHGR Simplexe Alexandre Serge Cattan Avrane (Ics ] Oe) HE cal : Page “/e ee De l'octet au AppleWriter & nibble : Kyram Gildas /RAM Christian Piard Well req a iad Za) ze Page 63 Es | =a a Page 13 =) ess Pea 8 ProDOS et fichiers Programme WPL : détruits Patrice Neveu tabulations OF) 7) automatiques Bernard Bel sa I+] [7e 7 im : s| Page 26 [ve] [ze] SS) aay (S| Page 64 PageMaker : ae eige oe Apple & Minitel : easel nimi ligne ‘artificielle’ Ss = Philippe Mathieu 4 Jean-Louis Chaulot-Talmon fy Page 40 Page 66 Micro-informations : page 68. Un nouveau produit Pom's, BananaSoft : page 71. Courrier des Lecteurs : page 73. Les annonceurs ; Apple : pages 38 et 39. Boyer-Larvet : page 2. Olitec : page 2. Editions MEV - 12, ruc d'Anjou - 78000 Versailles. Tél. : (1) 39 51 24 43. Directeur de la publication ; Hervé Thiriez Pom's n° 29 eee ee ————— eee a Disquettes d’accompagnement Apple // : DOS & ProDOS, 800 Ko et 140 Ko A partir de ce numéro, les disquettes d'accompagnement de la revue vous sont proposées sous deux formes : 140 Ko 5,25 pouces et 800 Ko 3,5 pouces, et ce, pour penser a nos lecteurs qui ont ‘craqué’ pour le IIcs et qui n'ont plus de drive 140 Ko. Autre nouveauté, nos disquettes 140 Ko vous sont proposées en double face : - Recto formaté en DOS 3.3 - Verso formaté en ProDOS /POMS29/) sans changement de prix : 60,00 F. La disquette 800 Ko cofite 80,00 F. Les deux faces de la disquette 140 Ko et la disquette 800 Ko comportent tous les fichiers relatifs 4 la revue sans tenir compte du (nommée systéme d'exploitation nécessaire a tel ou tel programme : vous pouvez ainsi récupérer les fichiers plus facilement pour les adapter ou en extraire les routines. Pour plus de commodité, sur la disquette 800 Ko et sur la face ProDOS de la disquette 140 Ko, mettez les fichiers ‘ProDOS’ et ‘BASIC.SYSTEM’ pour que vous puissiez démarrer directement. Voici la liste des fichiers des disquettes d'accompagnement de ce numéro avec indication du syst@me d'exploitation supporté pour leur fonctionnement. Bien entendu, les sources (tous en format TEXT) peuvent étre utilisés indifféremment avec DOS et ProDOS. Fichier pos ProDOS Remarques RECHERCHE . objet exécutable (BRUN) T.RECHERCHE iJ ° source DHGR.DEMO . . programme de démonstration Basic (RUN ou ~) DHGR . . objet appelé par DHGR.DEMO DHGR.PIC 2 = image DHGR (Extasie) utilisée par DHGR.DEMO T.DHGR ed ® source KYRAM ® objet exécutable (BRUN) T.KYRAM = s source INDEX e objet exécutable (BRUN ou -~) BLOC ® objet exécutable (BRUN ou -) T.INDEX.CODE ° . source T.BLOC.CODE e ° source KRUPTOS ° objet exécutable (BRUN ou ) KRUPTOS.S ° ° source KRUPTOS.CODE . objet non exécutable SECRET . . fichier 4 décrypter par vos soins SIMPLEXE . programme Basic (RUN) PATISSERIE fichier de démonstration utilisé par Simplexe WPL.TAB ° * programune WPL pour AppleWriter AWLC . objet a ‘bloader’ pour patcher AppleWriter AW2.C ° objet a ‘loader’ pour patcher AppleWriter AW1 ° ° source AW2 ut . source GRAPH.VIDEOTEX oO) ° programme Basic (RUN) Pom's n° 29 Editorial Enfin, nous venons de voir la sortie du Mac ouvert, baptisé Mac I, et du Mac SE (Super- Entrouvert ?), ainsi que l’apparition de toute une famille de nouveaux produits Mac, présentés dans ce numéro. Le show typiquement “Apple” pour la sortie de ces nouveaux produits nous a convaincu, une fois de plus, que cette société doit détenir le brevet d’une nouvelle unité de mesure informatique, le Mo (Mégalo-octet). Le plaisir de voir apparaitre ces nouveaux produits a été quelque peu estompé par la dispari- tion, depuis la sortie de notre dernier numéro, des revues Golden (disparition complete) et In- fomag (transmutation ?). Aprés avoir été la premiére revue dédiée 4 une famille de matériels micro, serons-nous la derniére ? II est certain qu’il en reste aujourd’hui a peine une dizaine, sur les plus de 50 créées depuis le premier numéro de Pom’s. Rassurez-vous, l’équipe de Pom’s dis- pose toujours de l’enthousiasme et du dynamisme de tout ‘micro-maniaque’ mais également de curiosité face aux nouvelles machines et de projets qui se concrétisent au fil des numéros. Avec ce numéro, nous vous proposons sur la disquette Macintosh 29 (et probablement de fagon réguliére sur les prochaines) des logiciels domaine public ou Mac Honor. Bien entendu, nous les mettons sur nos disquettes sans en modifier le prix. Autres nouveautés : * les disquettes Apple // existent aujourd’hui en 800 Ko ProDOS et 140 Ko DOS et ProDOS... sans modification de prix, ¢ EPE 5.1 fonctionne sur l’Apple Ics et existe sur disquette 800 Ko, * BananaSoft, une nouvelle disquette qui jette un pont entre l’AppleSoft et le Basic Microsoft Sx. Nous vous donnons bien entendu rendez-vous 4 Apple Expo, pas immédiatement, Apple ayant décidé de maintenir Ie licu de La Vilette, mais de modifier la date : début octobre. Hervé Thiriez Ont collaboré 4 ce numéro: Alexandre Avrane, Jean-Luc Bazanegue, Bernard Bel, Serge Cattan, Jean-Louis Chaulot-Talmon, Patrick Covare, Jean-Michel Gourévitch, Olivier Herz, Philippe Mathieu, Gildas Ménier, Gérard Michel, Patrice Neveu, Christian Piard, Hervé Thiriez. Directeur de la publication, rédacteur en chef : Hervé Thiriez. Rédacteurs : Alexandre Avranc, Olivier Herz. Sidge social : Editions MEV — 12, rue d’Anjou - 78000 Versailles. Tél. : (1) 39.51.24.43. Publicité : Editions MEV. Diffusion ; N.M.P.P. Impression : Berger-Levrault — 18, rue des Glacis — 54000 Nancy. Tél. : 83.35.61.44. Pom's est une revue indépendante non rattachée & Apple Computer, Inc. ni & Apple Computer France $.A.R.L. Apple, le logo Apple, Mac et le logo Macintosh sont des marques déposées d'Apple Computer, Inc. Pom's n° 29 Recherche d’octets Patrick Covare Ce programme permet de recher- cher, en mémoire ou sur dis- quette, une expression quelcon- que. Il peut étre trés utile, par exem- ple pour retrouver tous les appels a une routine quelconque, Tendroit of une mémoire particu- ligre est modifiée, etc. Ecrit en assembleur, le programme est rapide. Les 35 pistes d'une disquette sont examinées en moins de 30 secon- des, et une recherche en mémoire ne demande que 2 ou 3 secondes pour 64Ko. Commandes disponibles BRUN RECIIERCHE lance le programme pour la premiére fois. Par la suite, on pourra indifféremment utiliser & (l'ampersand) ou Ctrl-Y a partir du moniteur. Les commandes ‘A’ et ‘Z’ permettent de définir les adresses hexadécimales de début et fin de recherche en mémoire vive. Ces adresses ne peuvent se situer ni dans l'espace $CO00-$COFF réservé aux entrées/sorties (sinon bonjour les dégats!), ni dans la plage $9500-$95FF ot cst conservée l'expression 4 recher- cher. Pendant l'exécution, ces plages sont automatiquement évitées par le programme. Si l'adresse de départ est supéricure 4 celle de fin, RECHERCHE boucle sur $0000 aprés avoir examiné l'adresse $FFFF. Les commandes ‘P’ et ‘F’ permettent de saisir, toujours en hexadécimal, les numéros de pistes de début et fin de recherche sur la disquette. S'ils sont identiques, la recherche ne s'effectuera que sur une seule piste. La commande ‘D” autorise le changement de lecteur (1 ou 2). La commande ‘E’ permet d'entrer une expression a rechercher, expression composée au maximum de 256 caractéres. Trés pratique : inclure des caractéres inconnus (wildcards) en tapant un ou plusieurs ‘='. Par exemple : "20 == FD" trouvera les appels & COUT ($FDED), COUTO ($FDFO), KEYIN ($FD1B), etc. Afin de ne pas surcharger I'écran, seuls les 11 premiers octets sont affichés sur le menu ; néanmoins, l'expression étant conservée a l'adresse $9500, elle peut étre visualisée par un simple appel du moniteur. Les commandes ‘R’ et ‘S’ lancent une recherche en mémoire ou sur disquette. Dans ce dernier cas, la touche ESCAPE permet d'interrompre la recherche en cours. Si des expressions identiques sont détectées, leurs adresses, et éventuellement les numéros de pistes ct scctcurs, sont affichés. Si rien n'a été trouvé, on revient au menu. Pour une recherche sur disquette, T'adresse et ses deux derniers chiffres complétent I'affichage. Exemple : $862A P:$12 8:99 informe que I'cxpression a été trouvée 4 l'octet $2A du secteur 9, piste $12, et qu'elle se trouve actuellement en mémoire a l'adresse $862A. Lors d'une recherche sur la disquette, les pistes sont chargées unc a une, dans un buffer situé en $X000-$8FFF. Les secteurs y sont stockés dans I'ordre inverse (afin d'améliorer le temps de traitement) : page $80 pour le secteur $F, $81 pour $E, jusqu'a $8F pour le secteur 0. Bien entendu, le programme se charge également de l'affichage lorsque l'expression est trouvée plusieurs fois sur la méme page ou le méme secteur (ce qui n'est pas le cas de Nibbles Away). La commande ‘M’ dirige vers le moniteur de ]'Apple (retour par Ctrl-Y). La commande ‘Q’ permet de quitter le programme. Fonctionnement technique La configuration mémoire sui- vante est utilisée : $0000...$000A vecteurs page zéro ; $8000...$8FFF buffer de chargement d'une piste ; $9000...$94A0 implantation du programme ; $9500...$95FF buffer de l'expression a rechercher ; $9600...$96FF buffer des caractéres inconnus. Le listing source est amplement commenté et ne devrait pas poser de probléme de compréhension. Cependant, il est bon de détailler l'algorithme de recherche. Pom's n° 29 Le sous-programme de comparai- son utilise les buffers EXPRESS et WILD, initialisés lors de la saisie de l'expression. EXPRESS contient la suite d'octets a recher- cher, WILD stocke l'emplace- ment des caractéres inconnus. Prenons un exemple. Soit l'expression saisie "A8 =B F3". Le buffer WILD, utilisé pour effectuer un ET logique, contient la valeur 'FFOFFF'. Le zéro indique la présence d'un caractére inconnu. Le buffer EXPRESS contient les codes ‘A80BF3’. Les espaces tapés au clavier ont été supprimés, et le troisiéme caractére a été remplacé par un z6ro. Si, lors de la recherche, le programme rencontre la suite d'octets ‘A85BF3’, celle-ci est considérée comme identique car : A8 AND FF = A8 5B AND OF = OB F3 AND FF = F3 ce qui correspond exactement au contenu du buffer EXPRESS. Source ‘T.RECHERCHE # ger, (MOR om poneauts Le cane. Assemblour BigMac ® Sm BEL 11a Casa etalt LnciaTonte err ” er CHE,“ fgaln auteur pase ad erbav) desbane lavas an Bs ql Mmm t ia ceesae ees ek chetete 3+ <- neciencee — A a STA OPTION et sauvegarde en menoire. 7 oc Meareios cemnae aie Hodinatentays e043 ¢ ? 40 osazre cox 44 + ROUTINE DE MONEE ADRESSES NEWOIRE AT PISTES © i u 2CS 900; Saut a JOBD ai option © A,z,? ov F. ; 2 woe 45 2 2 BSR TAI ——;ndtialisation verticate, ts wonaur = x4 ie nonive ” ict su pebmpceve pour 2‘etstesige a'en 8. te tows > a corr = Se Giyaste do. Liatcite cisdsta sartiptisiper 2 10 MMavvegnige deas:d3tja20: ie TUR Ss Feeds oil lies oe pleaisies conchae ten oer Pea etiniiaa ata a bi > fA iabelze vitllsee par ta rest ine MN te MMO amc; onl, ‘Zoteor se sons. not = sé ian tox orztow zt moet 2 53 4 cx ue popeius tala =v 37 Py ae 28 boc nt apiaery Dae > gar 106 DA AzL oe, 11 angle dane dene nedts do piers, Se tacts = $369 107 CR 6929 0 on verifle 1a sunare tadiqus- 25 aesas = 33rs 108 aoc Branchenent on 22 #1 piste < 35. 26 car bre 109 ERREOR JSR BELL Sines BIP, 3) expasss = $9500 ho SP auctn pede retour av menu. ge meio {auttec ‘at pouitton’ aor cosaccerce issoanss ila A age 33 mers he Car 4995 sPartle haute a 1 = 957 So mone 7e4 is sq Enaron te bi mwas = free ine one #300 te de 1 = 5007 je meet saree ts ‘aro Ennson egelenent interait --> BIP. oo mscr > tara xe moor Sa0PO as moun = terre ye paar = Saat DOS 3.3 a 37 aun SesMa ye mapy = sense 33 nome => res wo cums. = Srese 123.JosD ex 45 + ROUTINE DE MaDIF ow Mimra0 ne IACTEIR ® ai moxer > sro i BCs JOM Saat a JOBE of option © D. te ceray > Seve bi 1a Dec WORIVE 81 HORIVE~2 —-> MORIVE=I, ‘3 cerexe > Soar 6 ane DRIVE 44 cro Srose Hle 2? BAB sot laverveneot: 13 pore Sr00a i STA sosive +8 enn gross 129 ORIVE IDA MORIVE —;AtEichage 47 cour 30020 Hle+ 130 ora #580 7en node poreal fe news arrs8 in STA s0cr su nemery do lector, to owe grees te ‘nd Cpe jab caver pote tas cette Tocbuce Gu Qiiviee) 30 GETMN > SrPA? I/e i+ 2 bee & IIgs fea) Lie be + mogrtan AADSTa nu 4/mmpneerow a. EAT « onc $3000 a RE JOR Suu = JOM of option © B. 3 Ot $9000 Le in tis 3 ie MR AW! Tai Tadfnet ioe atimia; S ie ba is se Lx sPhangonest: dein chatee didaiCinttoacion un Sth ch sat hertzortale de curseur- 59 INIT Lah COOINIT,x pour Ie ier affictage au menu Me GER ARG ufencionne satunediou oat atfomse: #0 Sta Nosbor. x 13 ISR GETEX? Lecture dy clavier. a bx ue Dax e sea wir is IE S10 ——_sRetons-av'nonv'oi on entre vee chaise vide: ue 0? bx 10 HVERIF 8 CHAQUE CARACTERE OF L:RxPRESSION is br 10 toa <erec. sc andEtastanttes aie vosteuce 143 snes aA #2 Sth Aurins —jampuncav oe 190 SIA TOUR 700Re? —> debut de veritication d'un octet. HA cralr orm Y iat ia v0 toa nectw ie 2A. barnes, SA axprases isp a tare Sta crates ise ota Mio, x iA gparcre HE iw WA seoory STA ayorase2 ise Iw Sa Sraaree 17 cmp aso JER MENG 7AEEichage du menu, 138 fas tw 74 Chom sx RORY puis lecture aves touche. ie cme tre > ix ¥s to MQ BAL jul, on saute Beat. 78 VERIP CHP J08,X La tovche enforces est-elle valide? tet Fan 4550 ” fo 3oW yOu, on oeree ¢ Be, tee CHP 50k Bat-il compria entre 0 ot 97 Pom's n° 29 169 164 1s 166 10 168 169 170 im m 173 174 vs 178 177 176 179 100 ae 102 sop bicrr ony ace ape oe acs sm ae aNd DEC EO STA Me bac a0 WA ‘STA one 20a axe ‘sma 208 Pha wa Ast ASL Ast asi ‘STA PLA cue aoe ‘STA INK oe DICIT Oui, on saute a DICIT. 4308 4seR pRat-il compels entre A at F? DIGI? = —:0x4. saut a DIGIT. oN aNos, 0s savvegarde 1a longueur de 1 'expressicn, ‘BEGIN retourne au menu. 450F TOUR 751 TOUR=O, un ler caract a deja ete veritio, DEUX zat on se branche alors « DEUX. EXPRESS,X ;Sinon, on sauvegarde le ler caractere, IN spois os aaute a IN pour 1a verif do ene. TOUR BOALZ = sSaut @ EGALZ 21 TOURS. wor wip, 70m charge te buffer WILD avec ‘OF", m fet on saute @ IN pous te twat du Zone caract. wip. x 4870 WrID,X ;Medi#ieation dy beffer WILD. 40 fet 0 dene Laccw pour andif dv buffer EXPRESS. EXPRESS. X 2Decalege # gauche dv ler caractere fatocke precedenment dans EXPRESS. EXPRESS, X EXPRESS, X EXPRESS, A :3auvegarae au second caractere, Jet verification de 1’octes suivant. pisK ” ‘+ ROUTINE OF RECHERCHE EN MENOZEE + oss pSant a JORS i aption OR, rose art pRetour many af expr source de lonquesr sulle. MOEBUT TSTACL Init éalisation MDSBUT+1 avec les paranetres STA? :definis par 1*utilisateur. IN FINTST#1 MEINe! FINTST+# TEST sSaut a Je routine de comparaison d'ectets. BBCIN “ *+ ROUTINE DE RECHERCHE SUR LA DISQUETTE von sSaut a JOY af option © 5. owe are peetour menu af expe source de longveve sulle. wostve WORY —-:Thdtinlisation POERUT ddan rout inan BNTS at TEST ‘RRPST = savec les paranetres 40 sdefinie par 1'utilisateur. WLM -RNBUF STAC PINTST+ RNRERD —;RWTS en node lecture. 4580 sAdresse haute du buffer de data RYTS. mses 40 sAaresse haute de tin de 1a recherche. Firsts varest ur sMumere dv lar secteve # Liss auscr LOCRWTS — ;Lecture dius secteur. aN7s. ERR sBranchenent a ERR en cas d'anonalio. RWBUF+1 —;Increnentation dv buffer de lecture. AWSCT —;Decrementation du numero de aecteur @ Lire. ‘READ ySaut ai lecture piste pas encore termine. 4550 sAdresse haute du buffer de date RYTS. STAC? RNBUF+L TEST sSaut @ Ia routine de comperaison d'octets. $c000—;A-t-on appuye sur une touche? INCEST ;NoD, on passe a 1a piste suivants 5c010 4398 #511 a'agie de Le touche ESCAPE, are 728 retourne ay mes: BNPET —/Inerenentation du sumere de pie perm RWPST = sFaut-il Line d'autres platen? DISK 20us, aaut a DISK. BEGIN Non. on retourne av menu. OME STOERR Af fichage d'un message d'erreur. #PIOERR ABFICHE ROKEY — Lecture d'une touche, BEGIN puis retour av menu. ” + ROUTING U°APPEL DU MOUE MONZTEUR * 26 270 272 7 279 27 275 276 RINON 277 2 209 PRIAOR were rusist ourst BRERSaR SERERSEERSRRRSERER 8 3 BSSEGSERTE RRS Sa SERRSE craLy+2 rad cranye2 owe pBoteee dans Le soniteur. sReinitielise Le pointeur de pile. oprtoN ns ple moniteur a-t-i1 ete appele via le menu? 20ui, on retourne au depart. 2Non, on se branche dans la routine det ourst ‘+ ROUTINE DE SORTIE DU PROGRAMME * ‘0 + ROUTINE DR COMPARATSON DRS OCTETS + ‘Tour cMenorine Ie nombre dexpransions retrouvess. 40 SHEFE,Y —;Charge un octet a ti WILD.Y _ :nodifie 1'accu si c'est vn caract inconny, EXPRESS, ¥ spuis compare avec L'expression source. INCR PSaut a INCR af co n'est pas identique. ose sExpression source entierenent testee? STA 2Nop, on continue les comparaisons. TOUR PRIADK 7 Pau d’eftacenent d'ecran si TOUR > 0. fom rs cour sACtiche un 3, retAee TETAH DRNTAK AF Fiche I'adrease de I'expresrion rat rooven oprron m2 oR sSaut @ CR ati] avait d'une recherche menoire. wes bes AFFICHE — :Affiche 'P.$' ot 'S.$'. “3 cH “Place Je curseur ex colonse 13. nest PRBYTE Af fiche Je numero de 1a piste 23 ce sPlace ensuite le curseur en colonne 23. seer JAdeesne haute cs I60me secteur is par RTS. TSTACE —Calevie ot PRIEX ——sadEiche Le numero du secteur. ROUT saute une Li T0UR our 422 222 expressions ont~ellex ote ratravvens? QURST = Out, anut a QUEST. TSTA*I —sTecrenence 1a partie basse de I'adr de test, nm fe saute a Tl si le resultat n'est pes ruil. TSTAC2 —rlecrenente 1a partie haute de l'adr de test. TSTA2 4595 -Soames-nous dans le buffer EXPRESS? ICR? vd, on passe @ I'adresse suivante. 4sco pSeanes-nous dans les £/S ($C000..$COFF) ? INCR2 Ov, 08 passe a I'adresse suivante. ‘TSTACL #300 shst-ce 1a fin de a zone a tester? rstY STAC 4500 very (Mon, on continve Les comparalsens. Toon (Des enpressions ontmolies ote retrouver ar ’Men, retour av progranme principal ARROCHX GAT tiche 'MoMONTTRUR PRBCHX AFFICHE ROKEY —rlacture d'une cove one shatmce un MH? m2 Jose 20ei, aaut @ le routine moniteur. 4598 sEat-c0 1a touche ESCAPE ? cont Nos, saut a CONT pour continuer, 7031, on annuie sadresse de retour, BEGIN ret on ae rebrenche av depart. Tour we je fin du tent eat alle termine? ar 70eL, retour au programme principal. 40 pMon, 11 reste encore des octate a 1 ‘your NCR to. continue lex comparaiscns. 40 ‘+ ROUTINE D’AFFICRAGE OU NEN * Pom's n° 29 sn ArFICHE oe save © 79 af te tome carat de Beste <> f=! WA nn os STA cH JSR COUT «SAE Lehe Je signe ~ » JSR ECRAN ine be py LDA nxoness.x A 4s JAFFICHAGE DES PARAMBTRES ADRESSES ET PISTES ISR PRE’ :AEtichage du one caractere. JSR TAY ——: Le curseur est place aur 1a Ligne 5. pe ne oe PSeute on espace. x 10 Ime br ws oer sme cH Hnitialisation borizontale de curseur. BNE BNCOR —Saut ai I'aftich de J'expe n'est pas termine, WA rs cos A 85 Jon GWT ;AEfichage d'un 5. STA CH 2Place le curseur on bas di sou, cex #4 W@ TABVBAS puis retour via le RTS de TABVBAS. eco To Pave 44 Je paranecze ne comporte que z caract. OA wospores,x eas yee BSR PRBYEE | :AEfiche 2 caracterer. 380 TWO ER wnRRET, 450 AFFICHE STA RCRA ROUTINE O'APFICIAGE BUR L"ECRAN + oat JSR PROYTE —:AfCiche 7 carncteren, os ST RCAANGZ 1A ot X aonthennent I'adeense dy nensege. 392 JSR CROUT ret aaute une Ligne. as2 tox 40 33 Ine 453 ECRAM LDA. SFFFF,¥ —;Chargenent d'en earsetere aftisher. a9 tne 454 BPL DERNIER $i bit %0, {1 s'agit au dernier corectere. ass cox 4 455 cH a. 336 BCC DOLLAR —;Saut af Le Zone paranetre pas encore affiche. 456 SE Now 397 wor #37 137 JSR CLREOL Si c'est une virguie on efface Ia fin de Ligne. 398 cox 48 458 a ssa0 on charge iecey pour un aaut de igre. 399 BCC DOLLAR — Saut af Ie dene paranetce pas encore affiche. 459.NON JSR COUT —=zAEtichage du caractere. 400 460 ine 401 LOA MDRIVE —:AFFICHAGE DU NUMERO DE LECTEUR EN SERVICE ta IME ECRAN soz oR 360 482 DERNIER ORA 4580 403 STA s0cr 16 SK COUT Le cernier carect est atfiche en node noreel, tot 464 ix 405 Lor Loma APPICHAGE DE L“EXPRESSION soURCE 46 INE CLABOL — 1a fin de Ligne etcacee, puis ATS vie CLKEUL. 406 DEQ CURD = Saut 4 CUR ai eapressivi de loogueus ovite. 107 cry ne oe soe cc INF 409 wr a 469 CODINIT MEX 9000FFFFO0012200 aon os ia 170 a a us 471 0B ASC *AZPFOERSIQ™ az JER TABV ——;0n place Le curseur sur Je ligne 15, a a3 ma at 472 AFEMEND DCI *~ RECRERCHE D'OCTETS -., * 4 snc spuis on calcule, 474 ASC “(PATRICK COVARE), +,” is ime a vs ASC. “A ~ NEMOIRE DEBUT," 46 sec iG toler ta longuevr de I‘expression, 476 ASC °2 ~ MEMOIRE FIN,” is mee 7 asc * - piste Deper,,* 48 STA CH sla position horizontale dv cursevr. 18 ASC “F ~ Piste rin,” He toe fe a AS "0 ~ ORIVE,,* 420 ENCOR LOA MILD,X Debut dvaztschage a’vn octet ae I'exprension. 400 asc 8 pe.,,° 2 a4 ae Age 7K RECH WewoERE, «= @ mat a pSavt a Pl ai le ter caract de i'ectet @ '='. a ie tea “ae vsk cor JALEiche le signe = piss ae ae a i aaah 425 om Pe ‘ ee 426 Pt WDA EXPRESS, x ed ee ee ce a 488 KADCHX DCI“, MehONIREUR SPocoWRIHUER BSC-uBHW 40s oe 490 TOERR EX 87 Se jn ee eT 41 DCI “ANOWALIE LECTURE DISQUETTE,, TAPE UNE TOUCHE * Gira ra a2 eee 492 TABVBAS LOA 4517 493 one $058 Récapitulation 9088:85 05 AS 05 09 BO 8D CF 9150:91 8C 17 92 C8 8C F4 B7 ‘ , 903) 90 EO 06 BO 7A 80 8D Fl B7 A 90 BD RECHERCHE 909. 5B FB AS 08 85 92 4C 94 91 A9 OF aD gual FC 20 GF FD CA B7 20 £3 03 20 BS B7 Aprés avoir saisi ce code sous 90A8:30 2C A2 00 AO 00 Ag 02 2C BE Fl B7 CE ED B7 moniteur, vous le sauvegarderez par : 09 A9 00 9D 00 95 ag FO A9 80 8D DE 91 8D BSAVE RECHERCHE,A$9000,L$4A1 9D 00 96 B9 00 02 ce B7 20 D6 91 AD 00 co AO FO F8 C9 BD FO 1D 07 2¢ 10 CO C9 9B FO 9000:A2 07 BD 46 53 55 00 CA BO C9 0A 90 OB 69 88 BE EC D7 AS 06 CD EC 9008:10 F8@ AQ 4C BD F5 03 8D FA BO 05 86 07 4C OA BO CA 4C 0A 90 20 58 9010:F8 03 AD OA OD FG 03 aD 29 OF C6 09 FO 1¢ 9D 91A0:FC A9 6C AZ 94 20 20 93 9018:F9 03 A9 90 8D F7 03 8D 95 4C BC 90 C6 09 FO 91A8:20 0C FD 4C 0A 90 £0 09 9020:FA 03 20 7D 92 20 Oc FD 90E8:08 A9 OF 9D 00 96 4C BC 91B0:F0 1E A9 C5 8D F9 03 Ag 9028:A2 09 DD 4E 93 FO 09 CA 90F0:90 BD 00 96 29 FO 9D 00 91R8:97 AN FA 03 20 58 FC 20 9030:10 F8 20 3A FF 4¢ 25 90 90F8:56 A9 00 48 BD 00 95 0A 91COZED FD 4C 69 FF 68 68 AS 9038:8A OA 85 08 £0 04 RO IF 9100:0A 0A OA 9D 00 95 68 18 91C8:08 C9 10 FO DE 4c 55 92 9040:69 95 20 5B FB A9 14 85 9108:7D 00 95 9D 00 95 E8 4c 9100:20 58 FC 4C DO 03 Ag 00 9048:24 AI Ad 85 33 20 6A FN 9110:AR 90 FO 07 BO 1B AS 07 91D8:85 09 AO 00 B9 FF FF 39 9050:20 C? FF 20 A? FF 88 FO 9118:FO 17 AS 00 8D DD 91 AS 91E0:00 96 D9 00 95 DO 49 cB 9058:B1 A6 08 FO 04 90 Oc AS 9120:01 8D DE 91 AS 02 @D 47 91E9:C4 07 DO FO AS 09 DO 03 9060:3E C9 23 90 14 20 3A FF 9128:92 AS 03 8D 4E 92 20 DE 91F0:20 58 FC A9 A4 20 ED FD 9068:4C 0A 90 AS 3F C9 95 FO 9130:91 4C 0A 90 £0 08 BO 76 91F8:2D DE 91 AE DD 91 20 41 9070:F4 C9 CO FO FO 95 01 AS 9138245 07 FO 6F Ad 05 8D EA 9200:F9 AS 08 C9 OC FO 1E Ag 9078:3F 95 00 4c 0A 90 £0 05 9140:B7 AS 04 8D EC B7 AO 00 9208:33 A2 94 20 20 93 A9 OD 9080:B0 12 C6 05 DY v4 AD 02 9148:8C EB B? 8C FO B7 8C DD 9210:85 24 AD EC B7 20 DA FD Pom's n° 29 —- — a = | E = 9218:A9 17 85 24 38 AI BF ED 9220:DE 91 20 £3 FD 20 ar FD 9228:E6 09 A5 09 C9 16 FO 25 9230:FF DN 91 NO OF FE DE 91 9238:AD DE 91 C9 95 FO F6 C9 9240:CO FO F? AD AN 91 C9 00 9248:D0 90 AD DE 91 C9 00 DO 9250:89 AS 09 FO 77 29 45 A? 9258:94 20 20 93 20 0c FD c9 9260:CD DO 03 4C AR 91 C9 OR 9268:D0 05 68 68 4C 0A 90 AS 9270:09 C9 16 DO G7 A9 00 a5 9278:09 4¢ 30 92 60 AI 00 85 9280:74 20 5R FR A? 0A 20 4A 9288:F9 AQ 58 AZ 93 20 20 93 9290:A9 OD 85 24 20 28 93 Ag 9298:05 20 5B FB A2 90 AO 23 92A0:84 24 AQ Ad 20 ED FD EO 92A8:04 BO 05 B5 01 20 DA FD 92R0:R5 00 20 DA FN 20 BE FD 92B8:E8 E8 EO 04 90 E2 AO 25 92CO:E0 08 90 DC A5 05 09 BO 92C8:8D CF 06 A4 07 FO 4A CO 92D0:0C 90 02 AO OB 84 OA AQ 92D8:0% 20 5B FB AY 29 38 ES 92E0:0A E5 OA E5 OA 85 24 A2 92E8:00 BD 00 96 48 30 U8 AY 92F0:BD 20 ED FD 4C 01 93 BD 4A 4A 4a 4A 20 £3 6A BO 08 A9 BD 20 C13 93 BD 00 95 FD E6 24 £8 88 DO 23 85 24 4C 9A 94 9320:an 9328:BD FF FF 10 10 C9 AC DO 9330:05 FC 20 ED 80 20 c 00 00 Cl DA cd Dl 9358:AD C5 D2 9360:C3 C8 C5 AO C4 AT CF C2 9368:D4 Co D4 V3 AO AD AC AC D2 C9 C3 Cl D2 C5 AO AD AO D2 C5 AO AC AC DA DO C¥ D3 CE AC AC 93C8:C4 AO AD AO C4 D2 C9 DE 93D0:C5 AC AC C5 AO AD AO CS 93D8:DB DO AE AC AC D2 AO AD c3 C8 AO cD CS 9388:CD D2 C5 AC AC D3 93F0:A0 AD AO D2 C5 C3 C@ AO 93F8:C4 C9 D3 D1 DS C5 D4 De AC AC CD AO AD AO CD CE C9 D4 C5 DS D2 AC 9410:AC D1 AOD AD AO D1 DS C9 9418:D¢ Dé C5 D2 AO AO AD AO 9420:A0 AQ AO AQ AO AO AO DE 9428:CF D4 D2 C5 AO C3 C8 CF 9430:C9 D8 3A AO AO AO AO AO 9438:D0 AE Ad AO AO AD AO AO 94402:AU AO D4 AE 24 AC CD BD 9448:CD CF CE C9 D4 C5 DS D2 9450:A0 AO AO D3 DO BD C3 CF 9458:CE Dé C9 CE DS C5 D2 AO 9460:A0 AO C5 D3 C3 BD CD C5 9468:CE D5 AO 20 87 Cl CE CF 9470:CB Cl CC C9 CS AO CU CS D4 DS D2 C5 AO C4 C9 9480:03 D1 D5 CS D4 D4 C5 AC 9488:AC D4 C1 DO C5 DA AO DS E C5 AO D4 CF DS C3 C8 20 A9 17 4c 5B FR 00 Apple & Minitel les caractéres semi-graphiques Léécriture d'un logiciel destiné au Minitel passe presque invariable- ment par l'exploitation des caractéres semi-graphiques ; nous vous proposons donc une table des codes de ces derniers. Chaque caractére semi-graphique vidéotex est contenu dans une matrice de 8 points (horizontale- ment) par 10 points (verticale- ment) et est divisé en 6 ‘pavés’ élémentaires. L'état — ‘on’ ou ‘off’ — des pavés est déterminé par la valeur des bits 0, 1, 2, 3, 4 et 6 du code de caractére. Ainsi, comme Je montre le schéma ci-joint, le bit 0 détermine l'état du bloc situé en haut et a gauche, le bit 1 détermine l'état du bloc situé en haut et a droite, etc. Pour passer en mode semi- graphique, le Minitel attend le code $0E (14), Le mode ‘dis- joint’, ot les blocs élémentaires sont séparés par une ligne, est obtenu en envoyant les codes $1IB et $SA (27 et 90). $1B et $59 (27 ct 89) rctourne au mode ‘joint’. Enfin, le code $0F (15) permet de repasser en mode normal ‘texte’. ol Bn a =) = a ao $2) 22 2s faa 5 fe cite) We $29 RRC Pal ai-a) tO a S30 $37 $32 «S35 S34 SS SSG 837 $50 559 S5R 3B SSE 8D Pee lel $er sez 63 Hs S83 (80 ri tt jo I. fe || feo Woo fen Rete a CHSSulee $70 $71 $72,873, S75 876877 waddukae $7 $79 $7 $7B_COCSTC:O$70 SE Code du caractére mibpo. 4 35 2.10 BREAAAAA Cs — Jeu de caractéres Télétel joints Pom's n° 29 Conversions HGR © DHGR Qu'il est agréable de pouvoir disposer du graphisme double haute résolution (DHGR) dispo- nible sur les Apple //c et //e équipés d'au moins 128K ! Encore faut-il pouvoir l'utiliser a sa guise : en effet, seuls quelques logiciels (par exemple Dazzle Draw ou Extasie) permettent de manipuler le DHGR. Malheureusement, ce sont des programmes fermés et on peut étre amené face 4 deux types de problémes : * vouloir imprimer l'image créée sur une configuration impri- mante/interface qui n'a pas été prévue ; + désirer utiliser la souplesse d'un langage de program- mation (par excmple l'Applesoft) pour générer des séquences répétitives ; utiliser les fonctions puissantes des éditeurs HGR traditionnels (tels que MousePaint ou Blazing Paddles) sur une image DIIGR. Les images DHGR correspondent a une définition de 560 fois 192 points, alors qu'une image HGR standard en contient 280 fois 192. Elles sont stockées sur disque, par les éditeurs graphiques, comme des fichiers débutant a l'adresse $2000 jusqu'en $5FFF. Néanmoins, clles ne peuvent étre manipulées sans modification par voue routine préférée d'impres- sion ou votre programme Applesoft car, aprés un BLOAD, la page HGR ne contient que les octets pairs de l'image pendant que la page HGR2 contient tous les octets impairs. Pour vous en assurer essayez la séquence suivante ; HGR BLOAD IMAGE, A$2000 CALL -151 cos55 pour afficher la page HGR2 c054 pour retourner en page HGR 3D0G pour revenir au Basic Le résultat affiché n'a généra- lement qu'une ressemblance fort vague avec l'image que vous avez si patiemment construite avec, par exemple, Dazzle Draw... Il serait done de bon ton de pouvoir disposer d'une routine qui convertisse le résultat pour afficher la partie gauche en page HGR et la partie droite en page HGR2. Ces deux parties pourraient alors étre imprimées, manipulées 4 votre guise par un programme Applesoft, ou sauvegarder sur disque pour étre modifiées par un éditeur HGR Alexandre Avrane traditionnel, Par la suite, il suffirait de recoller les deux partics pour obtenir 4 nouveau une image DHGR. Coup de chance, le module DHGR effectue cette conversion ! C'est une routine (sans grande prétention) qui, chargée en $8000, contient deux points d'entrée : CALL 32768 ($8000) convertit le fichier chargé en deux images gauche/droite placées en HGR et HGR2, c'est a dire BSAVE IMAGE1,A$2000,L$2000 BSAVE IMAGE2,A$4000,L$2000 CALL 32771 ($8003) effectue la conversion inverse afin de sauver le résultat sur disque, par BSAVE IMAGE, A$2000,L$4000 et sa récupération ultérieure par votre éditeur graphique. DHGR est indépendant du systéme d'exploitation et pourra sans difficulté étre utilisé sous DOS 3.3, ProDOS ou Pascal. Le fichier T.DHGR contient le source en Big Mac au format tex- te ; le programme DHGR.DEMO illustre son utilisation en Applesoft. G Programme ‘DHGR.DEMO’ 100 REM DHGR.DEMO 110; 120: 130 REM Demo d'utilisation de 140 REM DHGR 150 : 160: 200 D§ = CHRS (4):FS = "DHGR" 210 REM passe en graphique 220 HGR2 : HGR 17): REM Esc-Ctrl-Q 239 GOTO 250 240 PRINT D$"BLOAD"F$".PIC,A$2000" Tle 250 REM charge la routine 260 PRINT D$“BLOAD"F$: REM A$8000 /le+ 265 VTAB 20: PRINT : PRINT "Image chargé e": GOSUB 1000 Ile 270 REM convertit en 2 images exploitabl IIgs 280 CALL 32768 290 PRINT "Image convertie au format HGR ": GOSUB 1000 300 REM on va tracer un "X" sur l'image : PRINT CHRS$ (27) CHRS ( 310 HCOLOR= 3: REM blanc 315 REM surtout ne pas oublier d'initi 230 REM si on voulait charger une image 316 REM l'adresse 230 sinon gros bobo... Pom's n° 29 320 POKE 230,32: REM travaille sur HGR1 34 CONV*] «LDA V1 330 HPLOT 0,0 TO 279,95: HPLOT 279,96 TO 2 Bae I etee CS taal 0,191 36 BCS CONV*X ouil a 37 Lox 40 340 POKE 230,64: REM travaille sur HGR2 48 wr #0 350 HPLOT 0,96 TO 279,191: HPLOT 0,95 TO 39 JSR HPOSN calcule GBASL 7a 40 PLP “s eee at PHP 360 PRINT "Image terminée": GOSUB 1000 Pe ipelc CONMIN sk. Convene? 400 REM reconvertit au format DHGR 43 JSR CONV*2A 410 CALL 32771 re bt oe 412 PRINT "Image reconvertie au format D emis ee eae HGR": GOSUR 1000 47 JSR CONV*2A 415 END 48 CONVAIA INC V1 ligne suivante 420 REM et si on voulait sauver l'image Smee Ge 430 PRINT D$"BSAVE"F$".PIC,A$2000, L$4000 bye bye ” 440 REM mette L$4000 et non L$3FF@ pour 450 REM certains utilitaires DHGR 55 CONVA2A LDY #40-1 40 colonnes par page HGR 460 END 56 EDK #80-1 80 colonnes par page D'GR 1000 REM Routine d'affichage a SONU 2: USK (SIE (BORE fi 1010 PRINT "<1>/<2> affiche HGR1/HGR2 a ena PRINT "<Return> continue "; 60 JSR SWAP HGRL 1020 GET K$: IF K$ = "1" THEN K = PEEK 61 JSR CONV*?C (49236) : REM $C05S4 poe 1030 IF K$ = "2" THEN K = PEEK (49237): 64 BEE COMUNE REM $C055 65 RTS 1040 IF ASC (K$) = 13 THEN PRINT : RET se URN é 1050 GOTO 1020 69 CONV*2B LDX #80-1 70 JSR SWAP HGRZ ‘ , 71 JSR CONV"? vide NEWLINE vers HGR2 Source ‘T.DHGR 22 JSR SWAP HGR Assembleur Big Mac, format TEXT 73 ask CONV*3 vide NEWLINE vers HGR1 : J DOS 3.3 | 3: eS shensranssovssanasnsseoes iy 2 + coNVERSTON ONGR/2 oR * ProDOS |»: - sensensassessnanssenssese 2 4 78 CONV*2C LDA (GBASL),¥ 5 * Cette routine convertit des images DHGR 79 io 6 * stackées en un fichier hinaire chargé en 20 LDA NEWLINE, X 7 * $2000 jusqu'en $5FFF, en deux images al STA (GBASL)»¥ 8 * graphiques (parties gauche 6 droite) a2 PLA mim a aa 23 STA NEWLINE,X échange NEWLINE et page HGR 11 * Deux points dtentrée: a ais 12 * CONVERT! ($8000) pour conversion DHGR -> HGR+HGR2 23 12 * CONVERT2 ($8003) pour conversion HCR+HGR2 -> DHGR = 14 = er 88 CONV*3 «LDY #40-1 ae s ene aa sarisiee a9 CONV*4 JSR CONV*2C 17 * (C) 1986 Alexandre Avrane £2 oe 12 a DEY 92 ‘BPL cONV*4 19 coast == «$26 20 HPAG = SEC 2 ue 21 HYUSN 2 oral 22 po CONVERT! a * Entrée DHGR -> 2 HGR 97 SWAP LDA CBASL41 Py Ge cca. ete 98 EOR #960 échange vecteurs HCRI & HGR2 26 CONVERT2 = = * Entrée 2 IIGR -> DIGR af Sen CORTES 27 SEC de ee 28 CONV*O PHP sauve carry 29 LDA #2$2000 20 STA HPAG page graphique 1 31 LDA #0 } 32 STA Vi lére ligne pha: Cent Ne 33 000:18 90 01 38 08 A9 20 85 8040220 71 80 20 5A 80 CA 88 —-08B:A9 98 85 43 AD 00 20 20 Récapitulation BO0R:F6 AY 00 &D 78 BO AD 78 8048:10 EF 60 A2 4F 20 71 60 8090:FE AO D6 84 3C AO 83 84 DHGR’ 8010:80 C9 CO BO 1E A2 00 AO 8050:20 67 80 20 71 80 20 67 — 8098:3D AO DS 84 3E AD AR AE . ey 8018:00 20 11 F4 28 08 BO 08 8058:;80 60 Bl 26 48 BD 79 60 80A0:3F AO D@ 84 43 AO 00 G4 Palast dolionapheepiedineed 8020:20 35 80 20 4B 80 30 06 8060:91 26 68 90 79 80 60 AD —-80A8: 42 20 2C FE AY 1C wD IA ‘moniteur, vous le sauvegarderez 8028:20 48 80 20 35 60 EE 78 8068:27 20 SA 80 CA 88 10 F3 —-80B0:81 AS 81 GD 18 81 20 13 par BSAVE DHGR, 8030:80 DO DB 28 60 A027 .A2 8070:60 AS 27 49 60 AS 77 60 —-gORA?AI C9 ND FO 06 9D 00 00 A Ls 8038:4F 20 71 80 20 5A 80 CA 8078:A9 82 65 3D AD DE 85 3E @0CO:E@ DO F3 A2 00 20 11 81 BUBUIAY #3 85 3P.AZ 53.89 42 HOCE:BD 12 Pom's n° 29 De l’octet au nibble : Kyram Ce nouvel utilitaire n'est pas d'un usage évident en premiére approche ; garder le manuel du DOS 3.3 a portée de la main est une sage précaution. C'est dans un esprit d'utilisation pratique que le mode d'emploi qui suit est basé sur l'exemple. Il vous permet de lire une disquette dont le formatage est fantaisiste, de savoir quel formatage a été utilisé, de protéger vos disquettes... Pour lancer KYRAM, faire : BRUN KYRAM Un message du type : L'AMPERSAND EST OPERATIONNEL doit s'afficher. Présentation générale Le DOS 3.3 ne permet pas d'utiliser 4 100 % les disquettes, l'utilisateur n'ayant accés au support magnétique que dans les limites de ce que le DOS 3.3 autorise. Le catalogue DOIT étre en piste $11, par exemple. KYRAM se propose d'ajouter quelques commandes au Basic afin d'augmenter l'efficacité du SED (Systéme d'Exploitation de Disquettes), et de permettre a Yutilisateur d'ausculter en détail le contenu récl de la disquette. Pour ajouter ces commandes, le programme exploite I'&. Quand Yinterpréteur rencontre ce carac- tére, il fait un saut a l'adresse contenue en $03F5, adresse de KYRAM, programme qui ‘rendra la main’ au Basic en fin de travail. Chaque commande est un mot de cing lettres précédé de &, et éyentuellement suivi d'une chaine ou d'une variable alphanumérique (A$ ou "TOTO" par exemple). Toutefois, si vous optez pour la solution variable alphanumérique, il est bon que l'ordre soit précédé d'une affectation de type A$=A$, ceci afin de préparer les routines Applesoft utilisées par le pro- gramme. Note : il est utile d’essayer les commandes qui suivent au fur et a mesure de leur description. Commandes générales Ces commandes donnent des renseignements concernant le fonctionnement de KYRAM, les paramétres internes du DOS... Il s'agit de &QUID!, &DIAGN, &COMMS ect &LRWTS. &QUID! Si vous tapez cette commande, puis CALL-151 et 320.400, divers nombres hexadécimaux apparaitront, nombres qui repré- sentent les prologues et épilogues des champs adresse et données. & DIAGN (DIAGNostique) Normalement, le message : * KYRAM * PAS D'ERREUR A LA DERNIERE COMMANDE doit apparaitre, yous indiquant que la derniére opération sur disquette a été menée a bien. &COMMS (COMMandeS) On demande par cet ordre la liste des commandes disponibles. Certaines commandes sont suivies de ‘_’ qui rappelle que des paramétres doivent suivre. Si vous les ommettiez, vous obtien- driez : Gildas Ménier ERREUR D'OPERANDE &LRWTS (Liste RWTS) L'écran est effacé et apparaissent divers mots et nombres hexadé- cimaux dont nous verrons la signification plus loin. Acces au disque La disquette est divisée en 35 pistes (en principe...), chacune étant divisée en 16 secteurs. &SECRE (SECtor REad) Cet ordre permet de lire un secteur. Pour lire le secteur $00 de la piste $01, il faut taper : &SECRE "0001" Le secteur est alors lu et écrit en mémoire, de l'adresse $2000 4 l'adresse $20FF. Pour en étre sir, &DIAGN doit indiquer que tout s'est bien passé. &SECRE "OF11" commande la lecture du premier secteur du catalogue. &BUFAS Suite logique de la commande précédente, affiche sur l'écran le secteur qui vient d’étre lu (un décalage s'affiche au début de chaque ligne). &SECWR (SECtor WRite) Pour écrire un secteur com- mengant en $2000, il faut taper : &SECWR "0001" s'il devait étre écrit sur le secteur 0 de la piste 1 (Changez de disquette avant de tenter l'opération). &INITD (INIT Disquette) Cette commande formatera la disquette SANS y mettre de Pom's n° 29 catalogue ni de DOS. De l'octet au nibble Avant écriture sur le disque, les octets composant le secteur sont d'abord codés en nibbles. Ils sont a la disquette ce que les octets sont a la mémoire. Un lecteur ne peut lire et écrire que des nibbles et comme il y a moins de 256 nibbles différents et valables, un secteur sur le disque occupe plus de 256 nibbles... De plus, comme les pistes sont circulaires (eh oui !), il faut bien que quelque chose indique au Iccteur ot commence le secteur qu'on veut lire, Pour séparer ses secteurs, le DOS 3.3 utilise des blocs de nibbles (la plupart du temps des $FF) un peu spéciaux, des nibbles synchro- nisés. Pour en écrire un sur la disquette, le DOS utilise des routines dans lesquelles le temps d'exécution est primordial, et il ne sera pas écrit exactement comme les autres nibbles. Ainsi, les secteurs seront séparés. Il faut maintenant que le lecteur trouve le secteur XX sur cette piste : le DOS 3.3 lit les premiers nibbles aprés les nibbles synchro- nisés et il recherche une série du type DS AA 96 (ces nibbles sont réservés, c'est-a-dire qu'on ne peut pas trouver DS dans un secteur codé en nibbles). Cette série de trois nibbles constitue le prologue du champ adresse. Prologue parce qu'ils marquent le début d'une autre série qui indique, codés, le numéro de volume, le numéro de piste, le numéro de secteur et, enfin, un ‘checksum’ ; tout ceci est le champ adresse. Le ‘checksum’ est une somme de contréle qui permet a l'ordinateur détre sir que les différents numéros ont été bien lus. Si ce n'est pas le cas : I/O ERROR, aprés quelques autres tentatives bien entendus. Huit nibbles aprés le prologue, on trouve DE AA EB, l'épilogue du champ adresse. Plus loin, on trouve DS AA AD qui est le prologue du champ données : ici débute le secteur codé, celui lu par &SECRE "...." (ou presque). DE AA EB ferme Ia marche (c'est l'épilogue du champ de données). Aprés, on retrouve une série de nibbles synchronisés. &RDTRK (ReaD TRacK) Pour lire la piste 2 (par exemple) sans la décoder, taper : &RDTRK "02" puis : CALL-151 puis : 2000.3F00 (‘freiner’ le listing par CTRL-S) et relire ce qui précéde... Pour que le DOS puisse lire un secteur, il faut que les valeurs des prologues, épilogues et autres ‘checksum’ correspondent parfai- tement avec les valeurs D5 AA 96... sinon il n'y a pas de lecture possible. Certains programmes indiquent d'ou vient l'erreur si erreur il y a (A : adresse, D: données). D'autres programmes essaient de recopier les secteurs méme s'il manque un AA par exemple. &MAXPI La récupération de 4Ko supplé- mentaires sur la disquette (exem- ple classique) servira d'exemple. Taper : &MAWPI "24" puis : &LRWTS puis, avec une disquette vierge, INIT HELLO. Cette nouvelle disquette comporte $24 pistes au lieu de $23. Pour utiliser cette place disponible, il faut modifier la VTOC (table d'occupation du volume) ce qui indiquera au DOS les nouveaux secteurs accessibles (se reporter au manuel DOS pour I'organisa- tion de la VTOC). Il faut pour ce faire, lire la VTOC : &SECRE "0011" Duis : CALL-151 puis : 20CO:FF FF 00 00 FF FF pour libérer la piste $24, puis : 2030:12 01 00 00 24 — pour dire au SED qu'il peut compter sur une piste de plus. Bien sar, il convient de revenir au Basic par Ctrl-C puis d’écrire cette VTOC 18 of on I'a trouvée : &SECWR "0011" Idée Puisque c'est un octet dans la VTOC qui indique la position du catalogue, pourquoi ne pas transférer ce dernier sur cette piste $24 ? Comme la plupart des copieurs ne copient pas cette piste, un double de cette disquette ainsi customisée ne serait guére utilisable... La méthode * formater une disquette $24 pistes ; * lirela VTOC; + modifier la position du catalogue (octet 1 et 2 de la VTOC, l'octet 0 étant inuti- lisé, voir annexe C du manuel DOS) ; ¢ lire le premier secteur du cata- logue en secteur OF, piste $11 et le réécrire en Secteur $OF, Piste $24 ; + idem pour tous les autres secteurs de la piste (de $0E a $01); ¢ ne pas oublier de protéger dans la VTOC la piste $24 qui, utilisée par le catalogue, n'est plus disponible ; + libérer la piste $11, ancien catalogue. Malgré cette derniére modifica- tion, le DOS s'interdira d'écrire 4 la place de l'ancien catalogue. Pour l'y forcer, taper : &ASAUV avant de formater la disquette. L'ordre inverse, pour éviter d'écrire sur la piste $11 est: &PSAUV. (sLRWTS vous donne entre autre la valeur de SAU11 : $A9 = le Pom's n° 29 TT TTT check volume piste secteur sum FF FF FF FF DS AAQ6 FF FE D6 96 Dé 96 DO 96 DE AA EB .. DS AA AD .. DE AA EB FF FF FF FF IL Jt JL ii J} yt J Octets do Prologue Champ adresse Epilogue Prologue Epilogue synchronisation du du du du champ champ champ champ adresse adresse données données Champ données (secteur codé en 342 nibbles pour 256 octets + checksum) Le secteur sur la disquette Les octets de synchronisation sont en fait constitués de 10 bits (1111111100). La méthode de synchronisation et le détail du codage du secteur (méthode 6/2) sont décrits en détail dans Beneath Apple DOS et Beneath Apple ProDOS, bibles de l'Applemaniaque... DOS peut écrire piste $11 ; $69 = il ne peut pas) Retaper cette liste d'ordres a chaque manipulation de disquette est fastidieux. Faites-en un programme Basic qu'il suffira de RUNer... Idée (bis) Vous avez ‘deleté’ un fichier et vous souhaitez le récupérer : opération simple s'il n'est pas déja écrasé par un autre fichier. Trouver d'abord le secteur du catalogue ou se trouve votre programme : taper &SECRE "OF11" &BUFAS &SECRE “O0E11" &BUFAS &SECRE "0D11" sBUFAS jusqu'a apparition a l'écran du nom de votre programme, KYRAM par exemple. Choisir l'offset le plus prés du nom : $00. Taper CALL - 151 puis : 2000.2020 réponse : 2000:00 00 FF 01 04 kk yy rr aa mm AO AQ AO..10 (kk yy rr aa mm représentent les codes ASCII de KYRAM) A la fin des AQ (espaces) vous tomberez par exemple sur 10. FF indique que le fichier est effacé, 10 et 01 indiquent la piste et le secteur de début du fichier. Remplacer FF par 10 et 10 par AO puis réécrire le secteur 14 ob on I'a trouvé. Sauvegarder le fichier retrouvé sur une autre disquette ou bien le protéger dans la VTOC. Pourquoi également ne pas modifier les messages d'erreur du DOS et, par exemple, remplacer l'entéte du catalogue (Disk Voluime...) par CTRL-D suivi de INIT HELLO... Prologue, Epilogue, Kyram, et protection En tapant «comms, on constate que certains ordres restent inconnus. &WAPRO permet de modifier le prologue champ adresse dans les routines d'écriture, par exemple &WAPRO "DS AA 96": le DOS lira la piste jusqu'a découvrir ce prologue qui lui indique qu'un champ adresse suit. &RAPRO (comme Read Adress PROlogue) fait de méme dans les routines de lecture. Quand le DOS lit un secteur, il cherche la valeur de RAPRO et quand il écrit, celle de WAPRO. Idem pour <RDPRO et EWOPRO qui se rapportent au champ données. Idem pour «RAEPI, &RDEPI, &WAEPTI et &DEPT qui concernent l'épilogue. Note : il ne faut préciser que deux nibbles pour &RAEPI et RDEPI, le DOS ne tenant pas compte du troisiéme. Par exemple ; &RAEPI "DEAA" (RAEPI comme Read Adress EPlIlogue). &SYNCR "FF", par exemple, permet de changer la valeur du nibble de synchronisation ce qui perturbera sensiblement la plupart des copieurs... Un exemple Créer une disquette pour étudier ces commandes, faire : &WAPRO"D5BBCC" puis INIT HELLO. Maintenant, une tentative de CATALOG conduit a un I/O ERROR car le DOS cherchait comme prologue d'adresse DS AA 96 et il ne pouvait trouver que DS BB CC. Comment lire maintenant ? En faisant &RAPRO "DSBBCC" pour qu’en lecture le DOS cherche le bon prologue. Vous pouyez maintenant vous servir de cette disquette normalement, mais essayez de la copier... Un probléme _ subsiste impossible de booter sur ce disque new look. En effet, la ROM C6 de l'Apple, solicitée Pom's n° 29 lors du Boot cherche obstinément DS AA 96. Avant de lire cette disquette, il faut donc charger Kyram et modifier les paramétres. On peut de la méme manitre changer prologue et épilogue. Une autre idée serait de protéger un programme parmi d'autres : sur une disquette normale, changer le prologue données de fagon a avoir DS XX YY (écriture) puis sauver votre programme par BSAVE ou SAVE. Faire alors NEW, SWDPRO"D5 AA DD", &NOPRO, SAVE RIEN, DELETE RIEN, &TSTPR. &NOPRO demande au DOS d'iignorer XX et YY, SAVE et DELETE RIEN servent a réécrire le catalogue avec le prologue normal, Un essai de LOAD ou BLOAD du programme conduit 4 un I/O ERROR. Pour le relire, un &NOPRO est de rigueur. Face 4 une disquette inconnue La disquette refuse d'étre lue : Kyram devrait vous tirer d'affaire. Lire une piste avec &RDTRK, regarder les valeurs de prologue et d'épilogue. Neutraliser le contréle de checksum par &NOCHK. Entrer les valeurs de prologue et d'épilogue trouvées a l'aide de «RDTRK. Essayer un catalogue, ¢a marche, tant mieux. Sinon, il faut trouver le catalogue et une boucle en Basic utilisant «SRCRE et &BUFAS rendra service pour trouver un secteur qui, de prés ou de loin, ressemble 4 une VTOC... En conclusion Benjamin Franklin disait qu'il fallait pouvoir scier avec une lime et limer avec une scie. Kyram n'a peut-étre pas d'applications en menuiseric, mais il semble que ses possibilités soient trés étendues, l'imagination en est toutefois une limite. Les Temarques et suggestions pourront étre transmises a l'auteur par l'intermédiaire de la Teyue. 55 Source T.KYRAM Strom mou 968° scoete oe MmOTAE enrvo~Amy 57 XPER FOU $0380. «=F TRANSFERT D'EXECUTION PRINC-AUX Assembleur BigMac sa 59 ae 60 re ? ; iS as : yea v2.1 : e onc $3FPA —— : ORICINE a ‘ ‘ a ee Rerereo errr cre) Be ee eases es | eau sie 2m ie 7 66 a 7 9 * C.MEWIER fe) 86 sre 66 Usk DEBUT «PRESENTE VECTORISE «/RETOUN AUX e Gee $0432 |RETOUR AU BASre (cHDLOCE) 12 + SPROCRAMME DE MODIFICATION DES PARAMETANE INTERNES DU DOS 59 12+ QUT PERMET, PAR BxCME! y 19 RARE: oS 72 KYRAME =LDA $400 If + L/UPTLISATION DBS MEMOIRES AUXTLIAIRE (CARTE £0 Cot) a STA. SAUVI 15 + LIGTILISATION DES ROUTINES ANTS. 7 LOA $401 [POUR AFPICHER ‘KY? 16 + EA MODIFICATION DES PARANETRES INTERNES OU DOS 5 STA SaUv2 17 * ZA CREATION DB DISKETTES FORMATTEES A VOLONZE % TOA Ke LON ABPICHE 'KY" 18 * ZA ABLEGTORE DE PROGRAM SUN CES ULSKBTTES 7 STA $400 af . 78 LDA #'y" a 79 STA $401 ad 80 81 JSR GETLIME — ;COPIE DU BUFFER $200 EN BUFFIN 23 * PLAN PROGRAMME: - COPIE DU BUFFER BASIC (EN $200) DANS 82 JSR LOOPPRIN ;RECHERCHE DU MOT ae UN BUFFER EN $300 3 2s* ~ RECHERCHE DU MOT DANS UNE TABLE: LES a4 LDA SAUVI #ON REMET LES 2 CARACTERES ECRAN 2° MOTS FONT 5 LETTRES. UNE ERREUR CONDUIT ra el ee! ee A "*KYRAM* ERREUR DE SYNTAXE.* 86 LDA SAUV2 7A OU OW LES A TROUVE... 2a = SIWON BRANCHEMENT DIRECTEMEND AU MOT re Sta 5402 oe No. compr. ee 30° “ow UTILISE POUR LE PASSAGE DE a ut PARAMETRE, LES SP "DECODE. CONVERT. .* 30 TEST LDA #COMMANDR 70N INTTTALISR LE DEBUT DE LA opt wi STA $1A ‘STR DES COMMANDRS ae 92 LDA #/COMMANDE :POUR SAUTER EN INDIRECT gat - TABLE DES SYMBOLES - el 83 STA 518 : 36 PASSE = BQU $06 +SERT COMME OCTET DE PASSAGE ad 37 SECONDE BOU $07 #CONTIENT LA POSITION DE * No.2 95 Ba Poet LE <CORMAARTES 38 BUFFIN EBOU $08 +POSITION DU BUFFER DE KYRAM 96 cup 440 NANT ‘39 VALTYP QU $11 sCONTIENT LE TYPE DR LA VARIABLE 7 BCS NON #PAS VALIDE:SN ERROR 40 vor fou $18 ‘SERT POUR LA RECHERCHE DU MOT 98 «2 COMPT FOU SCR CONTIENT LE No.DU MOT TROUVE 99 ASL sare 42 SADVI Fou $ik DIVERS 100 cLe : 43:-SAIV2 = FU SIF 2 (VOUS AVEZ DIS VERT 2) 101 abc CONPT aes 44 ale Bou $3c sUTILISES PAR CERTAIN SP MONITEURS 102 cle is 45 AlN mou $3D 103 ADC SIA 4ON PREPARE LE SAUT / No. 46 AQL BQU $3E 104 BNE PASADJ SI > 255 ON AJUSTE LE TIR 47 A2H BQU $36 105 INC $1B SADRESSE HAUTE aie | Ses 106 PASADT STA SIA ; 49 Aa Bou 343 207: sy 108 51 STROUT QU $DB3A ¢SORTIE ECRAN DU TXT POINTE /Ys A 109 ume ($14) FON SAUTE A 1A COMMANDE 52 CHRGET BQU 3B1 210 53 PRBYTE 5QU $FDDA #SORTIE ECRAN DE A EN HEXA 121 NON Me ERROR 4SN ERROR ‘54 MYSBEX EQU $BESA #ROUTINE DOS: POSITION DE LA TETE a8 Pom's n° 29 Les commandes de Kyram DOS 3.3 | — passage de parametres L lecture He E écriture /le+ les exemples sont les valeurs normales des paramétres I/e &COMMS affiche la liste des commandes Igs GLRWTS affiche les paramétres modifiables du DOS L &CHKSU __ provoque le contréle du checksum en lecture (CHKSUM = 01) L &NOCHK _ rend inopérant ce test (CHKSUM = 00) L &TSTPR provoque le test des 2 derniers nibbles du prologue DATA lecture L &NOPRO ne teste que le premier nibble du prologue DATA lecture E-— &WAPRO _ modifie le prologue adresse écriture : &6WAPRO "D5AA96" E- &WDPRO _ modifie prologue DATA écriture : &WDPRO "D5SAAAD" E - &WAEPI modifie épilogue adresse écriture : &WAEPI "DEAAEB" E - &WDEPI modifie épilogue DATA écriture : &WDEPI "DEAAEB" L —- GRAPRO modifie le prologue adresse lecture : RAPRO "D5AA96" L —- &RDPRO modifie le prologue DATA lecture : GRDPRO “D5AAAD" L — GRAEPI modifie le prologue adresse lecture : GRAEPI "DEAA" L — GRDEPI modifie le prologue DATA lecture : &RDEPI "DEAA" E— &SYNCR modifie le nibble synchro formatage : &SYNCR "FF" E —- &MAXPI nb maxi de pistes formatées : SMAXPI "23" E — &MAXSE nb maxi de secteurs formatées : GMAXSE "0F" LE- &VTSET position de VTOC : &VTSET "1100" (“ppss") E GASAUV _ permet l’écriture sur la piste $11 SAUII vaut A9 E &PSAUV _ l'empéche SAUII vaut 69 &QUID! en $320 : prologues, épilogues, sync, VTOC L—- &RDTRK iit la piste de $2000 4 $3F00 : SRDTRK "01" GRESET Ctrl-Reset = Boot G&NRESE Ctrl-Reset # Boot L — &SECRE lit un secteur &GSECRE "0001" (“sspp”) résultat en $2000 E- G&SECWR _ écrit un secteur &SECWR "0001" ("sspp") écriture de $2000 E &INITD formate le disque sans DOS ni VTOC ni catalogue &BUFAS affiche $FF caractéres en format TEXT a partir de $2000 (avec offset) &DIAGN derniére erreur sur Kyram. Code d'erreur en $300 &KYRAM _ est branché - GAMOVE _ transfert de xxxx a@ yyyy vers zzzz en mémoire auxiliaire : GAMOVE "xxxxyyyyzzzz" - GPMOVE transfert de xxxx a yyyy vers zzzz en mémoire principale : &PMOVE "xxxxyyyyzzzz" G&AEXEC transfert d'exécution vers mémoire auxiliaire &PEXEC transfert d’exécution vers mémoire principale &RETPR laisse en $320 adresse de retour vers mémoire principale GRETAU laisse en $320 adresse de retour vers mémoire auxiliaire 113 t= 123 MP MOTH ;MDPRO: ' DA PROLOG ( * } 14 124 UMP MOTI sWAEPI: © AD EPILOG ( ' } 125 125 UMP MOTI #WDEPI: # DA EPILOG { ' ) 116 COMMANDE JMP MOTA + COMMS: LISTE DES COMMANDES 126 UMP MOTK ¢RAPRO; ¥ AD PROLOG (LECTU) 117 ‘IMP MOTB #LRWTS:LISTE DES PARAMETRES 127 UMP = MOTL #RDPRO: + DA PROLOG ( * ) 116 ‘IMP MOTC #CHKSU: TESTE LE CHEKSUM ADRESSE 128 UMP MOTH #RAEPI: € AD EPILOG ( ' ) 119 IMP MOTD #NOCHK:N‘EN TIENT PAS COMPTE 129 IMP MOTN #RDEPT: 3 DA EPILOG ( ' ) 120 UMP MOTE #TSTPR: TESTE LE PROLOG DATA 130 IMP MOTO 7 SYNCR:MODIFIE NIBBLE SYNCHRO 121 ‘UMP MOTF 4NOPRO:NE TESTE QUE LE 1ER (DS) 131 IMP MOTP ¢MAXPI:AU PORMATAGE: NB PISTES 122 oMe More INAPRO:MODIPIE AD PROLOG (ECRIT) 132 ce woT0 IMAXSE: NB SECTEURS 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 153 154 155 156 187 158 159 160 161 162 163 164 165 166 167 168 169 170 171 102 173 174 175 176 177 178 179 180 182 186 187 188 189 190 191 132 193 194 195 196 197 198 199 200 201 202 203 208 205 206 207 208 209 220 21 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 UMP OTR #VISBT:PUSITION DE VTOC OME MOTS GASAUV:PEKMET BCKITORE TRE 22 UMP MOTT ume MOTO QUID! :LAISSE EN 5320 HeAUtVTOC UMP MOTV RDIRK:LIRE EN $2000 LA PISTE N ome NOTH RESET: VECTORISE VERS BOOT UMP MOTX @NRESE:PAS DE SOOT SI RESET oMe MOTY ;SECRE:LIRE UN SECTEUR (#"S.T.") UMP MOTB! GSECWR:ECRIRE — * ‘ UMP MOTZ INITD:INIT SANS DOS SANS CATALOG IMP MOTAL BUPAS:AFFICHE $2000 EN FORMAT TXT uMe MoTC! {DIAGN:AFFI. ERR/SECRESSECWRéINITO UMP KYRAM ;KYRAM: VECTORISE L ‘AMPERSAND wMe AMOV SP DU Ile TRANSFERT DE MEV -> AUX uMe MOV SP DU Ile TRANSFERT DE MEV -> PRI UMP AEX “SP DU Ile TRANSFERT EXEC -> AUX UMP PEXE SP DU Ile TRANSFERT EXEC -> PRIN UMP ETP sLAISSE EN $320 BILLET DE RET PRIN IMP RETA “EAISSE EN $320 BILLET DE RET AUXI 0B HEX 01600100 RK HEX 00 i-> No DE PISTE STR HEX 00 i-> No DE SECTEUR HEX C240 s>> TABLE CARACTERISTIQUES UNITE HEX 0020 “BUFFER D'ENVOIS RX 0000 com WRX 00 COMMANDE (00, 01,02.04) ERR HEX 00 ZCONTTENT ERR SI INDIC P AI ‘HEX 006001 CARD «HEX OOO1RFD8 =: TABLE DES CARACTERTSTTOQURS MOTA JSR $ECSB HOME LDA 4KY ?ABPICHE TITRE *KYRAM* bby 4/Ke ’ vse strour |; LDA #ceD “GABPICHE L'ECRAN COMMANDES bor #/cHD 7 SK STROUT LDA ¢cMmr ? LY #/CHD1 é JSR STROUT i; LDA #cMD2 z Loy @/cMp2 JSR STROUT =; RIS RETOUR PRG D'APPEL JSR SEC5B HOME LDA #KY APPICHE *KYRAM? LY #/xY JSR STROUT LDA ¢ADREAD = ;APPICHE "READ SYS. LDY #/ADREAD JsR sTROUr BDA $8955 ON VA CHERCHER READ ADD PROLOG JSR PRBYTE =; ON LAFFICHE WA $899" ae JSR PRBYTE 9; LDA $B96A ¢ JSR PRBYTE ; JSR FING JON ABFICHE "FIN DE CHAMP: LDA $3991 ¢BT ON AFFICHE JSR PRBYTE ;LE READ ADD EPILOG LDA $8998 + JSR PRBYTE ; JSR CHD YON APPICHE "CHAMP DONNEES:" LDA $B8E7 sET ON L'AFPICHE JSR PRBYTE LDA $B8F1 JSR PRBYTE LDA $BeFC JSR PRBYTE JSR PINC MEME CHOSE POUR "PIN DE CHAMP:" LDA $R935 ISR PRAYTR LDA $R9aP JSR PRBYTE EDA #ADWRITE —+ON REPAIT TOUT CA AVEC LDY ¢/ADWRITE /*WRITE SYSTEM:...° ver stRour LDA $BC7A JSR PRBYTE ‘WDA $ac7E 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 24a 245 246 247 248 249 250 251 252 253 254 255 256 257 256 259 260 261 262 263 268 265 266 267 268 269 270 on 272 273 274 275 276 277 278 279 280 281 282 283 286 285 286 287 288 289 290 292 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 31 312 313 314 315 316 317 318 319 320 321 322 323 328 our ouars: use USK ‘LDA sk LDA USK 1A Ly JSR 10x cex BEQ JSR Lor JSR PRBYTE $3ca¢ PRBYTE, Fine BDCAE, PRBYTE $8C53 PRBYTE sacae PRBYTE cu $u853 PRBY TS sues PRBYTE saesv PRY TE FING $8895 PRBYTE $B8A3 PRBYTE $B6A8 PRBYTE #CHKSUM 4/CHKSUM STROUT $B92E 401 ‘ #913 SI L'OCT CHERCHE A 13 (BNE L+13) our 4ON ECRIT "OUI" 400 ¢SINON "NON" PRBYTE ©; AFFICHE A EN HEXAA + °CHERSUM: " gapRTsT —-: IDEM AVEC TEST DE L'EPILOG DATA a/pprest sTROUT $383 02 #SF2 ouars. 100 PRBYTE PRT A SALVE 4/SAOVE STROUT 98292 PREYTE ON APPICHE OCTET SAUVECARDE DE LA async JON AFFICHE LE NIBBLE DE SYNCHRO async ‘STROUT $Bc60 PRBYTE 4#NSPISTES /NREISTES sTRoUr SREFE PRAYTE suasecr s/NBseCT STROUT $BP2A PRBYTE :ON APPICHE LE NB MAXI DE PISTES JON ECRIT LE NB MAXI DE SECTEURS 7EN CB QUI CONCERNE FORMAT. evroc srvroc STROUT gacoz PRBYTE ssecreue {VOILA LA POSITION DE vToc ¢ON AFFICHE L‘ADD DU + RECENT PRG 7+++BT SA LONGUEUR. Pom's n° 29 325 ase peayre “21 sta 90085 336 TOA SCTRR © TRACK COURANT OUR KYRA (22 Den convent 33) iby sverme 423 bra s095r 3a eR STROUP tea Gan conven? 38 toa tex fez STA $5964 330 ask Raves ize GSK RESTORE 331 Toa gorax .BP Aust oun Le DOs, wer ars 332 tor #/oraK 20 wore 333 gen Smoot ws wa #500 /RDPRO 334 LOA 687 PAS MARRANT A TROUVER:3E7~3E0 450 Sia SecoNDE 338 Sta G0 ‘Courier UNE ADRESSE QUI “a1 USK SAUVEG 336 toa 3360 (EME L'ADAESSE DU DEBUT OE 108? 4a2 JSR DECODE 337 sta 307 : as JSR conveRT 330 ior 4300 i 434 ‘STA $3887 339 toa (206),¥ 433 USK CONVERT 340 STA SIA iss STA S881 Jal Iny 437 JSR CONVERT 342 LDA ($06),¥ 438 STA $B8FC 33 StA 4B 39 JSR RESTORE 344 Lor #304 JURA C'EST LE 4IEME DE [08 440 RTS 345 Lua (s1A),4 441 wom 346 442 LDA #$0A *RAEPI 307 use paeyre 43 ‘STA SECONDE 548 LDA #DOTTED ON TRACE UNE LIGNE. 446 JSR SAUVEG ies iby 4/oorT#o 45 JSR Dex 2D6 330 Bsr StRour ae BSR CONVERT 351 447 STA $8991 352 ars 446 JSR CONVERT 353 MOTC LDA #$13 OBLIGE LE DOS A TESTER CHEKSUM 449 STA $B99B 354 STA $BSZE 450 JSR RESTORE 355 ats 451 ans 4356 oro LDA #$00. «=: PERMET LES BRREURS SUR CHKSUM 652 worm 357 ‘STA $B92E 453 EDA #804 ¢RDEPI 358 ars tsa SPA SECONDE 359 MOTE LDA sea ;PAS D'ERR SUR LE PROLOG DATA ass osm sauvEs 360 STA $B8F3 456 JSR DECODE 361 LOA 9887 a Usa convent 362 STA $B8FE 458 ‘STA $3935 363 ARTS 459 JSR CONVERT 364 MOTP LDA #300 LES ERR PASSENT A TRAVERS t60 SIA $093F 365 ‘STA $RAF3 461 ‘JSR RESTORE 366 ‘STA SBAFE 162 Ars 367 ars 463 soto ea Mora. = TDA a80c ON vu 3 ocrers Ew ENTREE a DA #000 7ronw-aveo 3 corer Pom:ovce 169 STA SECONDE 35 (ERM) 46 (302) s1=800 tes STA sEcowoE | syNcn 30 DSR SAU/EC — SAUVE $08 $99 EN VUE DLW RET BAs eg a ees 301 BSR DECODE —« IVITIALISE: *DEAABS"? OU AS? py a oe an Dsm commer Le 1gR TROUE EST PLACE DS A a ten coer 373 Sta $ac7a, ow sroces te STA $8060 3 Ser comeer in 2ND Est PLACE DANS A “7 oa ase 375 Sra secre ere an sk RESTORE 37 Son coment ie ms 37 Sta Saco 473 moe 378 USE RESTORE 4 DA #508 ssaxer as nts 475 STA SECONDE 300 Mou = LOA t30c= CP MOTE a6 JSR SAUVEG 31 Sta Secons a7 JSR DECODE jez ose sauvec 08 JSR CONVERT 3a JSR DECODE 479 STA $BEFE 384 JSR CONVERT 480 ar 385 STA $8853 481 RTS 386 JSR CONVERT 482 MOTO 387 STA $8858 463 mA 4508 388 JSR CONVERT 484 ‘STA SECONDE MAXSE: 363 STA $8850 ass ase sane 390 JSR RESTORE 486 JSR DECODE 391 RTS 487 JSR CONVERT 332 Morr DA soc sr more aoe Sta sarza 393 STA SecoNDe ass sa RESTORE 394 JSR SAUVEG 490 RTs 395 Sse Decone 451 wore 396 Sse coveer to2 BA #¢0n —svrocssr 397 STA SRCAP to3 Sta Secowos 398 ise coMvERT toa gen sauvne 399 SPA $8089 ios von vecooe “oo Der Cowen? 00 DSR conver? 401 SrA $0c08 is STA $acol—:PISTE 402 Jen eoTone ‘8 GSR CoNvERT 403 ate as STA $a007 :sucrAu 404 mors, A 4800 ser wore 300 GSR RESTORE tos Bra Secowe 301 is toe OaR sAUvEG S02 murs 40 JSR DecooE 503 LA #5A9 ON MoDIEIE 2B vos (piste 11) 408 JSR CONVERT S04 STA $B292 fANTI 408 STA $BO9E 305 RTS #TESTDOS 410 JSR CONVERT 506 MOTT: an STA $B8A3 507 LDA 469 #RETABL 412 JSR CONVERT: 508 STA $8292 sTEST 413 STA SB8AB 509 RTS ae JSR RESTORE 510 Norv as ies 51 416 MOTK LDA #$0C #RAPRO 512 LDA $BC7A #QUID! TRANSFERT D'OCTETS -> $320 417 STA SECONDE 513 STA $320 #ON TROUVE LES PROLOGUES EPILOGUES 418 JSR SAUVEG S14 LDA $BC7F #DE READ ET WRITE + SYNCR ET VTOC 419 JSR DECODE 51s STA $321 #PISTE EN TETE 420 JSR CONVERT 516 LDA $BC84 ‘ea Pom's n° 29 sta $3zz oa sta $9037 LWA $ucas te as STA 5323 eis oA $383 16 wore STA $324 a7 1A 4538 ;NoRESET LDA $BCBB 618 STA $3F4 ‘STA $325 619 LDA #$A5 620 STA $9637 #PAS DE BOOT SI RESET LDA $8853 621 RTS STA $326 622 LDA $8858 623 MOTY ‘STA $327 624 LDA #$01 ¢COMMANDE POUR READ LDA $B85D 625 STA COM ‘STA $328 626 JSR RWIS 4ON UTILISE RWIS LDA $B89E 627 JSR RESTORE ‘STA $329 628 Rts LDA $BBA2 629 RWTS LDA #S0A #2 PARAMETRES: ‘STA $32A 630 STA SECONDE sMAIS *PISTE EN TETE* LDA SBBAB 631 JSR SAUVEG STA $32B 632 JSR DECODE 633 JSR CONVERT 634 635 STA STR ¢ LE 1ER C'EST SECTEUR f36 Prst Jam CONVERT 1a $0955 67 Sta Tae + ne 2Nn TRACK STA $320 538 LDA $095F ens toa #500 Sta $320 40 STA ERR + COMME CA Sr ERRCOO0 ¥ A ERREUR 1A $3960 fat Sta $328 faz 10a $0991 643.co DA. o/r00 STA $32F eae LDY #I0B sRWTS LDA $8998 64s JSR $309 4ON SAUTE AUX VRAIS RWTS. STA $330 ee ars ea? La suse? @48 wore LA 4304 SA 3331 a3 STA com JFORMATTAGE SANS DOS SANS CATALOG 554 LDA Suse 650 ae 0 555 STA $332 631 556 LDA $BBFC 652 MOTAL NOP; BUPAS:BUPSER $2009 DE 108 EN ASCIT ‘557 STA $333 653 LDA #300 ‘558 LDA $8935 654 STA $1A ‘559 STA $334 655 LOA #920 560 LDA $893F 656 STA $1B «ADRESSE DE DEPART 561 STA $335 657 LOA #$00 sPASSE ‘562 658 STA PASSE 563 LDA $B83E 659 564 STA $336 660 JP LDA PASSE ‘565 661 JSR PRBYTE 566 LDA $ACOl s¢VTPI 662 LDA 9"-" 567 ‘STA $337 663 JSR $FOFO sAPPICHE A ‘568 LDA $B00D 664 Lby #00 ‘569 STA $338 sVTSEC 665 Loop] LDA ($1A),¥ ‘570 ‘RTS 666 JSR SFDFO 57 667 Iny S92 ees coy 432 JON FAIT 32 cARACTERES 573 sory ees fanz too? 74 LDA #808: READ TRK + 1 PARANETRE Sse secs? cR 575 STA SECONDE roa 932 576 Sea sauvec ce 577 aoc $14 578 JSR DECODE ‘STA $14 373 STA PASSE 380 toa #300 Gee 4300 POUR 255 caRACTERES 561 STA Gon JON ser LB 015K Bw mAKCHE axe oP 1 LroNe suivante oe Usk PIST 333 use secsz cK ‘584 LDA TRK 71)L'ENVOYER EN PISTE N JSR MYSEEK #C'EST FAIT. RTS 586 587 ‘LDA #$00 42)MAINTENANT ON VA LIRE NIBBLES 588 ‘STA IM+l +ET LES STOCKER DE $2000 A $3FFF. MOTBI 589 LDA 4#$20 LDA #302 #ON ECRIS LE BUFFER 590 STA IMe2 STA COM 592 LbY #$00 ¢IM+] CONTIENT ADRESSE STOCKAGE ‘JSR RWTS ‘592 JSR RESTORE GWRITE $93 LDX #360 #NB SLOT*IE ‘RTS 594 LDA $CO8E,X ‘STROBE LECTURE 595 TRER LDA $C08C,X LIS NITBLE wore) LDA ERR 7ON REGARDE SI ERR<>O 596 BPL TRKR +TANT QU'IL N'EST PAS BON... STA $300 +AU PASSAGE ON LA LAISSE EN $300 ‘597 IM STA $2000 4 STOCKE cMP #800 598 INC IMe1 YON BALADE LE POTNTeUR BNE ERREUR ST OUT OW LIAPPICHE 599 BME Tax DA @NOND ST NON... 600 INC IM#2 DY = #/NONP for 1DA te? “Isa straw 602 ow year oN sTopPE EN $3700 ars 03 BME TaxR ERREUR cP #810 G04 Bee volume 608 LDA $cose,x ow annErrs Tour } DIsK:sToP! 701 oa ome 606 sa RESTORE — ow ABCUP. TATPTA 702 bor 1 607 703 gen smovr 608 are priwt. r04 are £09 Norw 708 vous one 9820 a0 toa #800 jon vecronrse nesor BN RAM roe bus Brea an Sta gare 707 toa qvon ae DA WEF BP DS 1B Dos SUR Boor 108 ior 4/voL - Pom's n° 29 —_———————————— 708 ven snovr sta 5308 710 aren caw #a40 cov m1 beehive cic 22 toa 4012 JSR xPeK 23 toy ¢are ras 4 vor Stour 75 ‘RTS RETP Lox #500 # TRANSFERT EN $320 PEXE 716 RIWA CMP 4380 TRANS! LDA PEXE,X 17 BNE CAALORS STA $320,X ne 20a 9aIW 1x m9 Lor ¢/RTW CPX #$20 720 JSR StROUI BNE TRANS! rai ats RIS 722 CAALORS LUA 4CA 723 LOY #/Ca RETA LOX #300 + TRANSFERT EN $320 AEXE rea ase Strout TRUNS2 LDA ABXE,X 725 ATS STA $320,X 726 INX 727 KYKAM LDA #KYRAMP ‘ON AFFICHE "KYRAM OK" CPX #$20 728 STA $3F6 +ET ON VECTORISE VERS LE DEBUT BNE TRANS2 129 LDA #/KYRAMP RTS 730 STA $387 731 . 732 1A axe 733 Loy #/KYM * CES ROUTINES PERMETTENT D'ALLER CHERCHER DANS A 734 JSR STROUT * DES VALEURS DS LE BUFFER (EX "D5AA") OU EN MEV 735 Rrs * BASIC (EX AS). 736 737 AMOV STA $C007 ON VA UTILISER $C100 MEM SAUVEG LDA $88 #0N SAUVEGARDE LES POINTEUR 738 LDA #$12 +6 PARAMETRES: ‘STA SIA 2DU RASTC (TXTPTR) 739 STA SECONDE LDA sag 740 JSR SAUVEG Sta SIR 71 JSR DECODE ars 742 RESTORE DA SIA JON LES RENET Ov Le ETATENT 73 sR comvenr STA $38 744 ‘STA AIH sPTPORT LDA $1 745 O5R Convear STA S$ 146 ‘STA AIL ePTPAIBLE :ADD RTS 747 va Jse coment DECODS LDA BUEFIN POSITION DBS POINTEURS SUR OCTETS 763 STA A2H sEIN (eTPoRt) cue [ou'rh FAUT (PARAMETAES) 750 JsR CONVERT ape #305 Vow Se POsITIONNE APRES LE MOT 281 Sta AL J (erearoue) koy BUPPINe? 382 STA $88 253 von cowear str 933 54 BIA Adi! 185 Osan Convent wr #305 256 STA Aa LUA (BUEFIN),Y JON A OWS IER * 2 289 ce 4322 18 SEC jMEV PRINCIEALE VeKS AUxL BNE VARIABLE NON, CA DOIT BTRE DU XS 359 LDY SECONDE —N PARAMBTRES PLUS LOIN... 760 ask Nove WA (BUEFIN),¥ 761 357 cue 4522 JON A UWE 260 = 2 762 USR RESTORE ase BNE OPERROR NON: ERREUR OPERANDS 763 RTS 859 INC $B8 #C'EST BON,ON SE PREPARE A DECODER 764 PMOV STA $007 #MEME TRAFFIC QUE PRECED. 860 ‘RTS 765 Loa asi2 361 766 STA SECONDE 862 OPERROR JSR $FBE4 ‘¢BEEP 767 OSR SAUVEG 363 OA FOPERRORM | *KYRAM* BRREUR OPERANDE 768 JSR DECODE 864 LY 4/0PERKORM 763 86s JSR STROUT 770 JSR CONVERT 866 UMP = $043C «BASIC m7 STA AlH 867 72 J5R cower 868 VARIABLE JSR CHRGET —_:CHERCHE VARTARLE POTWTEE PAR (SAR) 73 Sra arn 309 a 970 wy 4301 78 use convert 971 1A (203),Y _s0W PROWO OM ADRESSE... 76 Sra A2H 872 em ¢08 77 JsR CoMvERT 973 rw 78 STA Azz ron (683),¥ 78 975 sta 09 790 Jen convent a7 701 SrA Aa 277 LOA VALTYE 31 VANAIS CYEST PAS OWE CHAINE.. 792 von coment 270 cme 4986 ; 703 STA AML @79 BNE OPERROR —...ON LAISSE TOMBER. 204 785 cic #VERS MEMULKE PRINCIPALE 61 RTS 786 JSR MOVE 882 COLE CMP #530 7A EST UN CHIFFRE ? 787 cre) BCC OPERROR #NI CHIPFRE NI LETTRE:DEHORS! 788 JSK RESTORE B84 CMP #$3A 789 RTS Bes BCS HOP ‘C'EST UNE LETTRE 790 886 cLe #C*EST UN CHIFFRE ON CODE HEXA 791 AEXE STA $c007 +MEM $C100 887 SBC #$2F 192 LDA $32 #RECUPERE L'ENTREE A CHAUD DU DOS 888 ‘RTS 793 ‘STA $3ED 889 HOP CMP #$41 ¢ENTRE A ET F? 794 LOA $3F3 890 ‘BCC OPERROR 'EUH, NON... 795 STA $3EE a91 CMP 4$47 796 LDA 4#SFE 892 BCS OPERROR «NON PLUS... 797 ADC 4SFF ¢ON MET L'INDICVAIL 893 cLe 798 sec a9 sac 454 c'BST BON Ow conR HExA 799 Usk XFER sCrEST PARTI... 895 ars 200 ars 896 @01 PEXE STA $C007 897 CONVERT LDY #$00 ON PREND LE IER oz LA $382 90 1A ($9), 603 ‘STA $3ED 899 JSR CONE 2ON LE CODE 204 LOA $33 $00 asi. OW LE MILTIPLIE PAR 16 Pom's n° 29 902 ast 302 ASL 303 ASL 908 STA PASSE 905 Im 306 LDA (986),¥ 3907 JSR CODE 908 cue 303 ADC PASSE FON LUT AJOUTE LE SECOND 310 TAX 311 LDA $38 a2 cue 913 Ave #902 (ON AJUSTE LES POINTEURS POUR LA pr Bcc JUMP sSulTE. wis INC 589 916 JUMP STA S88 a7 TxA v8 RTS 7A CONTIENT LES 2 ASCII EN 1 HEXA 19 920 ». — $21 922 GETLINE LDA #$00 sADRESSE BUFFER DE sINTERPRETEUR 923 STA BUFFIN ; 926 LDA #503 ? 925 STA BUFFING); 926 927 Lox #00 928 929 ume saUT 930 931 CHARGE JSR CHRGET ;POINTE CARACT SUIVANT DS BUF BAS 932 18x ON UTILISE X COMME INDEX 933 SAUT = LY #800 934 LDA ($B8),¥ GET CAR 935 PHA HY 936 TXA ? 937 TAY é 938 PLA : 939 STA (BUFFIN),Y ; TRANSFERT D'UN CARACTERE 940 CME S38 SI_%:" ALORS ON A FINT 941 BEQ STOP {C’EST FAIT 942 cmp 9500 #SI C'EST FIN DE LA LIGNE PAREIL 943 BNE CHARGE ZN CONTINUE STNON 94a 945 stp RTS PIN 046 947 LOOPPRIN LDA #$00 ON COMMENCE PAR LE MOT No.0 48 STA coMPT or 950 LDA SLISTEVOC ;OU EST LA LISTE DES OTS? 951 STA vor 952 LDA #/LISTEVOC 953 STA voce! 954 955 NOUVEAU LDY #200 JON COMPARE MOT A MOT 956 * #31 ON UNEO PASSE AU MOT SUIVANT 957 LOOPA LDA (BUFFIN) ,¥ 958 cue (voc), 959 BNE SUIVANT 960 wr 361 cer #905 962 BNE LOOPA ¥63 964 ars 965 966 SUIVANT LDA voc 967 cle 968 apc #305 969 STA vot 970 LDA voct! 971 ADC #300 972 STA VOC+ 973 974 Lox cor 975 INK 976 STX cOMT 977 Px #40 978 ANE NOUVEAIT 979 RTS 970 981 ERROR JSR SPREA 982 LDA #SNERROR LDY #/SNERROR 984 JSR STROUT 985 986 ome $430 sAPPSOFT 987 *. 981 989 * ICI ON A LA LISTE DES MOTS ADMIS 990 991 LISTEVOC ASC *COMMSLRWTSCIIKSU’ 932 ASC 'NOCHKTSTPRNOPRO’ 993 ASC 'WAPRONDPROWAEPI’ 934 ASC ‘NDEPIRAPRORDPRO’ 935 ASC ‘RAEPIRDEPISYNCR’ 936 ASC 'MAXPINAXSEVTSET’ 987 998 399 1000 2001 2008 1003 1004 1005 1006 2007 2008 2009 2010 2011 2012 2013 1014 1015 1016 2017 2018 *ASAUVESAUVQUID! * ‘RDTRERESETNRESE* ‘"SECRESECHRINITD* ‘"BUFASDIAGNKYRAM’ ‘AMOVEPMOVEAEXEC* | PEXECRETPRRETAU* * DIVERSES FING cHD OPERRORM. SNERROR cup 2 cxpz ADREAD ADARITE sywc ADRTST PISTE NBSECT SHCTEUR NBEISTES DA Ly JSR RIS ERERSERSESR EREESEERRERER ASC E ROUTINES OU DONNEES D*AFFICHAGE JADREADI —/AFPICHE "FIN DE CHAMP" #/ADREAD} STROUT YADREAD2 s AFPICHE "CHAMP DONNEES:* #/ADREAD2 ‘STROUT © sTEXTES D'ERREURS... ‘"*RYRAM* ERREUR D!OPERANDE 00 80 "eKYRAM* ERREUR DE SYNTAXE . 00 a “ste srenrenseren 8 * KYRAM *m 80 ananoo — —~CoMmANnEs——- a0 */ COMMS / KLRWTS / £QUTD! / sBUFAS * a0 */ KCHKSU / GNOCHK / sTSTPR / NOPRO * #000 "/ EWAPRO_ / SWDPRO_ / SWAEPI_ / SWDEPI_* SROPRO_ / SRAEPI_ / sRDEPI_* aMaxpl_/ sMAXSE_ / sVTSET_” ‘PSU’ / RESET / SNRESE * 7 GROTRK_/ SSECRE_ / 4SECWR_ / 6INITD ~ a 7 sAMOVE_ / SPMOVE_ / 6AEXEC / SPEXEC™ 80 7 SRBTER / SRETAU / 6DIAGN / SRYRAM™ wo 8000 . <== KW TS~PAKAME THES nema" @ + READ SYSTEM: CHAMP ADRESSE 0" 00 0 . FIN DE CHAMP oO” 00 aD * CHAMP DONNEES a” WRIT SYSTEM: CHAMD ADRESSE 3" ‘8080 *— cuexsom a* 90 "= SYNCHRO a” 00 * Prop a 09 40 "= TABLE vIoc Piste" “ pIsteo" 7 MAxSED" " SECTEURD " MAxPIOT Pom's n° 29 { sae ASC" ~— sAUIIO 1118 we ASC "*KYRAM* LE DISK EST PROTEGE EN ECRITURE.* HEX 00 ag HEX §8D00 rec | HEX aD 1120 Kyu HEX aD ASC "= PRG COURANT = ASI 2 ASC "#KYRAM* L/AMBERSAND EST OPERATTONNEL..* HEX 00 1122 ex 8000 1 asc" 1gae 1179 ame MEX 00 124+ Crk = MEX. 8D 1125 ASC "= TRE COURANT KYRA 2126 PRESENT HEX 90 yes ed ae pepsteresartaving ase mx asc * Dogue 1128 ex @0 ex 00 1129 ASC "C.MENIER + KYIAM V2.2 + ere vormp x 0D 1130 ex 9D . 2131 asc" seiseeretesveee 1132 ex 08000 Nowe PAS D'ERREUR A 1A DERNIERE cMD.~ 1139 1134 peser aR gcse = Hos VoL ASC. “*KYRAN? ERREUR CONCERNANT LE VOLUME. 1135 LDA PRESENT Hex 8000 1136 Lor ¢/eRESENT BIZ ASC. "#RYRAM* ERREUR CONCERNANT LE LECTEUR.* 1137 JSR STROUT Hex 0000 138 KIN ASC. “PRYRAM® AWTS NE PBUT LIKE PROLUGEEEILOG.” 1139 Usk KreaM mex sv00 ug ars a ASC "*KYRAM® CODE NON HOMOLOG DOS/PRG <> Gr ua * ex #000 Récapitulation 4140- 20 3A DB AD 7A BC 20 DA 42C0- 20 C5 46 8D 5D BB 20 64 4148- FD AD 7F BC 20 DA FD AD 42C8- 46 60 A9 OC 85 07 20 5B ‘KYRAM’ 4150- 84 BC 20 DA FD 20 FF 47 42D0- 46 20 6D 46 20 C5 46 8D ‘ alee 4158- AD AE BC 20 DA FD AD B3 42D8- AE BC 20 C5 46 8D B3 BC Aprés avoir saisi ce code sous 4160- BC 20 DA FD AD B8 BC 20 42E0- 20 C5 46 8D B@ BC 20 64 moniteur, vous le sauvegarderez par = _416g- DA FD 20 07 48 AD 53 BB 42E8- 46 60 A9 OC 85 07 20 5B BSAVE KYRAM,A$3FFA,L$068 4170- 20 DA FD AD 58 B@ 20 DA 42F0- 46 20 6D 46 20 C5 46 aD SEFA- 20 54 40 4C 3C D4 4178- FD AD 5D BB 20 DA FD 20 42F8- 9E BB 20 C5 46 8D A3 BB 4000- AD 00 04 85 1E AD 01 04 4180- +F 47 AD 9E B8 20 DA FD 4300- 20 C5 46 8D AB BB 20 64 4008- 85 1F A9 4B 8D 00 04 ag 4188- AD A3 BB 20 DA FD AD ag 4308- 46 60 AD OC 85 07 20 5B 4010- 59 8D 01 04 20 £9 46 20 4190- B8 20 DA FD A9 FB AO 4a 4310- 46 20 6D 46 20 C5 46 8D 4018- 0D 47 AS 1E 8D 00 04 aS 4198- 20 3A DD AE 2E BD A9 01 1318- 55 B9 20 C5 16 8D SF B9 4020- 1F 8D 01 04 A9 45 85 1A 41A0- £0 13 FO 02 A9 00 20 DA 4320- 20 C5 46 8D 6A BY 20 64 4028- AS 40 85 1B AS CE C9 28 41A8- FD A9 16 AO 4B 20 3A DB 4328- 46 60 AS OC 85 07 20 5B 4030- BO 10 OA 18 65 CE 18 65 41B0- AE F3 B8 AY Ol EO F2 FO 4330- 46 20 6D 46 20 C5 46 8D 4038- 1A DO 02 B6 1B 85 1A 6C 41B8- 02 A9 00 20 DA FD A9 SE 4338- E7 B@ 20 C5 46 8D Fl BB 4040- 1A 00 4c 3E 47 4¢ C6 40 41C0- AO 4B 20 3A DB AD 92 B2 4340- 20 C5 46 8D FC BB 20 64 4048- 4C E6 40 4C 6A 42 4c 70 41C8- 20 DA FD A9 09 AO 4B 20 4348- 46 60 A9 OA 85 07 20 SB 4050- 42 4¢ 76 42 4c 61 42 4¢ 41D0- 3A DB AD 60 BC 20 DA FD 4350- 46 20 6D 46 20 C5 46 aD 4058- 8A 42 4C AA 42 4C CA 42 41D8- A9 55 AO 4B 20 3A DB AD 4358- 91 B9 20 C5 46 8D 9B B9 1060- 40 EA 12 4¢ 0A 13 4c 2A 41E0- FE BE 20 DA FD A9 3F AO 1360- 20 64 16 60 A9 OA 85 07 4068- 43 4C 4A 43 4C 64 43 4C 41E8- 4B 20 3A DB AD 2A BF 20 4368- 20 5B 46 20 6D 46 20 C5 4070- 76 43 4C 95 43 AC AD 43 41F0- DA FD AD 1F AO 4B 20 3A 4370- 46 8D 35 B9 20C5 46 aD 4078- 4¢ BD 43 4¢ D7 43 4C DD 41F8- DB AD 01 AC 20 DA FD A9 4378- 3F B9 20 64 46 60 AS 08 4080- 43 4C F347 40 7A 44 AC 4200- 4A AO 4B 20 3A DB AD OD 4380- 85 07 20 5B 46 20 6N 46 4088- Cl 44 4c cc 44 4c D7 44 4208- 30 20 DA FD A9 69 AO 4B 4388- 20 C5 46 8D 60 BC 8D 3E 4090- 4¢ 45 45 4c 06 45 4c OE 4210- 20 3A DB AD 73 AA 20 DA 4390- BB 20 64 46 60 AS 08 85 4098- 45 4C 51 45 4¢ 9A 45 4C 4218- FD AD 72 BA 20 DA FD A 4398- 07 20 5B 46 20 6D 46 20 40A0- AC 45 4C DF 45 4C 12 46 4220- 80 AO 4B 20 3A DB AD 61 43R0- C5 46 8D FE BE 20 64 46 40A8- 40 2A 46 40 3F 46 4c 4D 4228- AA 20 DA FD AD 60 AA 20 43A8- 60 AQ 08 85 07 20 5B 16 40B0- 46 01 60 01 00 00 00 cz 4230- DA FD A9 89 AO 4B 20 3A 43B0- 20 6D 46 20 C5 46 8D 2A 40B8- 40 00 20 00 00 00 00 00 4238- DB AD BS 40 20 DA FD A9 43B8- BF 20 64 46 60 A9 OA 85 40cO- 60 01 00 01 EF D8 20 58 .4240- AO AO 4B 20 3A DB AD E7 43C0- 07 20 5B 46 20 6D 46 20 40CB- FC A9 49 AO 48 20 3A DB 1248- 03 85 06 AD EB 03 85 07 43C8- C5 46 8D 01 AC 20 C5 46 40D0- A3 97 AQ 48 20 3A DB AS 4250- AO 00 Bl 06 85 1A C8 Bl 43D0- 8D 0D BO 20 64 46 60 AS 40D8- 11 AO 49 20 3A DB AQ B2 4258- 06 85 1B AO 04 B1 1A 20 43D8- A9 8D 92 R2 60 A9 69 AD 40E0- AO 49 20 3A DB 60 20 58 4260- DA FD A9 AB AO 4B 20 3A 43E0- 92 B2 60 AD 7A BC 8D 20 40E8- FC A9 49 AO 48 20 3A DB 4268- DR 60 A913 AN 2F RY 60 43E8- 03 AD 7F BC 8D 21 03 AD 40F0- A9 52 AO 4A 20 3A DB AD 4270- A9 00 &D 2E B9 60 A9 F2 43F0- 84 BC 8D 22 03 AD AE BC 40F8- 55 B9 20 DA FD AD SF B9 4278- 8D F3 BB AQ E7 8D FE BB 43F8- 8D 23 03 AD B3 BC aD 24 4100- 20 DA FD AD 6A B9 20 DA 4280- 60 A9 00 8D F3 B8 8D FE 4400- 03 AD B& BC 8D 25 03 AD 4108- FD 20 FF 47 AD 91 89 20 4288- B8 60 A9 OC 85 07 20 5B 4408- 53 B@ 8D 26 03 AD 58 BE 4110- DA FD AD 9B B9 20 DA FD 4290- 16 20 6D 16 20 C5 46 8D 4410- 8D 27 03 AD SD BB aD 28 4118- 20 07 48 AD E7 BB 20 DA 4298- JA BC 20 Cb 46 8D IF BC 4418- 03 AD 9E BB BD 29 03 AD 4120- FD AD Fl B& 20 DA FD AD 42A0- 20 C5 46 8D 84 BC 20 64 4470- Ai BA BD 2A 03 AD ABR RA 4128- FC B8 20 DA FD 20 FF 47 42A8- 46 60 AS OC 85 07 20 5B 4428- 8D 2B 03 AD 55 B9 8D 2c 4130- AD 35 B9 20 DA FD AD 3F 42B0- 46 20 6D 46 20 C5 46 6D 4430- 03 AD SF B9 8D 2D 03 AD 4138- B9 20 DA FD AS DA AO 4A 42B8- 53 B@ 20 C5 46 @D 58 BO 4438- 6A B9 8D 2E 03 AD 91 B9 Pom's n° 29 23 4668- AS 1B 65 B9 60 AS 08 18 4890- AA AA AA AA &D 8D 00 AD 4670- 69 05 A4 09 85 BS 84 BI 4898- AD AD AD AD AD AD AD AD 4678- AO 05 Bl 08 C9 22 DO 18 48A0- AD AD AD AD AD C3 CF CD 4680- A4 07 Bl 08 C9 22 DO 03 48AB- CD Cl CE C4 C5 D3 AD AD 4688- E6 B& 60 20 £4 FB AS OF 48B0- AD AD AD AD AD AD AD AD 4690- AO 48 20 3A DB 4C 3C D4 48B8- AD AD AD AD AD AD AD &D 4698- 20 B1 00 AO 01 Bl 83 85 48CO- AF AO A6 C3 CF CD CD D3 46A0- B8 C8 Bl 83 85 BI AS 11 48C8- AO AO AF AO A6 CC D2 D7 46A8- C9 FF NO NF 60 C9 30 90 48N0- D4 D3 AO AO AF AO A6 D1 4@6B0- DA C9 3A BO 04 16 ES 2F 48D8- DS C9 C4 Al AO AO AF AO 46B8- 60 C9 41 90 CE C9 47 BO 48E0- A6 C2 D5 C6 Cl D3 AO 8D 46CO- CA 18 ES 36 60 AO 00 Bl 48E8- AF AO A6 C3 C8 CB D3 DS 46C8- B8 20 AD 46 OA OA OA OA 48F0- AO AO AF AO A6 CE CF C3 46D0- 85 06 C8 Bl B& 20 AD 46 48F8- C8 CB AO AO AF AO A6 D4 46D8- 18 65 06 AA AS BB 18 69 4900- D3 D4 DO D2 AO AO AF AO 46E0- 02 90 02 E6 BO AS RA RA 4908- A6é CE CF DO D2 CF AO 8D 46E8- 60 A9 00 &5 08 AY 03 85 4910- 00 AF AO A6 D7 Cl DO D2 46F0- 09 A2 00 4C FA 46 20 Bl 4918- CF DF AQ AF AO A6 D7 C4 46F8- 00 E8 AO 00 Bl B@ 48 GA 4920- DO D2 CF DF AO AF AO A6 4700- A8® 68 91 08 C9 3A FO 04 4928- D7? C1 C5 DO C9 DF AO AF 4708- C9 00 DO EA 60 AS 00 85 4930- AO A6 D7 C4 CS DO C9 DF 4710- CE A9 4B 85 18 A9 47 85 4938- 8D AF AU A6 D2 Cl DO b2 4718- 19 AO 00 Bl 08 D1 18 DO 4940- CF DF AO AF AO A6 D2 C4 4720- 06 C8 CO 05 DO FS 60 AS 4948- DO D2 CF DF AO AF AO A6 4728- 18 18 69 05 &5 18 AS 19 4950- D2 C1 C5 DO C9 DF AO AF 4730- 69 00 85 19 A6 CE E& 86 4958- AO A6 D2 C4 C5 DO C9 DF 4738- CE EO 28 DO DC 60 20 E4 4960- 8D AF AO A6 D3 D9 CE C3 4740- FB AS 2C AO 48 20 3A DB 4968- D2 DF AO AF AO A6 CD Cl 4748- 4C 3C D4 43 4F 4D 4D 53 4970- D8 DO C9 DF AO AF AO AG 4750- 4C 52 57 54 53 43 48 4B 4978- CD Cl D8 D3 C5 DF AO AF 4758- 53 55 4E 4F 43 48 4B 54 4980- AO A6 D6 D4 D3 CS D4 DF 4760- 53 54 50 52 4E 4F 50 52 4988- 8D AF AO Af Cl D3 Cl DS 4768- 4F 57 41 50 52 4F 57 44 4990- D6 AO AO AF AO A6 DO D3 4770- 50 52 4F 57 41 45 50 49 4998- Cl D5 D6 AO AO AF AO AG 4778- 57 44 45 50 49 52 42 50 49A0- D2 C5 D3 C5 D4 AO AO AF 4780- 52 4F 52 44 50 52 4F 52 49A8- AO A6 CE D2 C5 DI C5 AO 4788- 41 45 50 49 $52 14 15 50 49B0- 8D 00 AF AO A6 D2 C4 D4 4790- 49 53 59 4E 43 52 4D 41 49B8- D2 CB DF AU AF AO A6 D3 4798- 58 50 49 4D 41 58 53 45 49C0- C5 C3 D2 C5 DF AO AF AO 47A0- 56 54 53 45 54 41 53 41 49C8- AG D3 C5 C3 D7 D2 DF AO 47A8- 55 56 50 53 41 55 56 57 49N0- AF AO A6 C9 CE C9 D4 C4 47B0- 55 49 44 21 52 44 54 52 49D8- AO 8D AF AO AG Cl CD CF 47B8- 4B 52 45 53 45 54 4B 52 49E0- D6 C5 DF AO AF AO A6 DO 47C0- 45 53 45 53 45 43 52 45 49E8- CD CF D6 C5 DF AO AF AO 47C8- 53 45 43 57 52 49 4E 49 49F0- A6 Cl C5 D& C5 C3 AO AO 47D0- 54 44 42 55 46 412 53 44 49F8- AF AO A6 DO CS DB C5 C3 47D8- 49 41 47 4E 4B 59 52 41 4A00- 8D AF AO A6 D2 Co D4 VO 47E0- 4D 41 4D 4F 56 45 50 4D 4A08- D2 AO AQ AF AO AG D2 C5 47E8- 4F 56 45 41 45 58 45 43 4A10- U4 Cl DS AO AO AF AO AG 47F0- 50 45 58 45 43 52 45 54 4A18- C4 C9 Cl C7 CE AO AO AF 47F8- 50 52 52 45 54 41 55 AD 4A20- AO A6 CB D9 D2 Cl CD 8D 4800- 9A AO 4A 20 3A DB 60 AD 4A28- AD AD AD AD AD AD AD AD 4808- BA AO 4A 20 3A DB 60 8D 4A30- AD AD AD AD AD AD AD AD 4810- AA CB D9 D2 Cl CD AA AO 4A38- AD AD AD AD AD AD AD AD 4818- C5 D2 D2 C5 D5 D2 AO C4 4A40- AD AD AD AD AD AD AD AD 4820- A7 CF DO C5 D2 Cl CE C4 4A48- AD AD AD AD AD AD AD AD 4828- C5 AO AE 00 8D AA CB D9 4A50- 8D 00 AD AD AD AD AD AD 4830- D2 Cl CD AA AO C5 D2 D2 4A58- AD AD AD AD AD AD AD b2 4838- C5 D5 D2 AO C4 C5 AO DI 4A60- D7 D4 D3 AD DO Cl D2 Cl 4840- D9 CE D4 Cl D& Cd AU AE 4A68- CD C5 D4 D2 C5 D3 AD AD 4848- 00 8D D3 D4 C7 AO AO AO 4A70- AD AD AD AN AD AD AD AD 4850- AQ AO AO AO AO AO AO AA 4A78- AD AD 8D AD AO D2 C5 Cl 4858- AA AA AA AA AA AA AA AA 4A80- C4 AO D3 D9 D3 D4 C5 CD 4860- AA AA &D AO AO AO AO AO 4A88- BA AO C3 C@ Cl CD DO AO 4868- AQ AO AO AO AO AO AO AO 4A90- C1 C4 D2 C5 D3 D3 C5 AO 4870- AA AO AO CB D9 D2 Cl CD 4A98- FC 00 8D AO AO AO AO AO 4878- AO AO AA 8D AO AOD AO AO 4AA0- AO AO AO AU AU AU AU AD 41880- AO AO AO AO AO AO AO AO 42AB- AO AD C6 C9 CR AO C4 C5 4888- AQ AA AA AA AA AA AA AA 4ABO- AO C3 C8 Cl CD DO AO AO Pom's n° 29 4AB@- FC 00 8D AO AO AO AO AO 4ACO- AO AQ AO AO AO AO AO AO 4BA8- D3 FC 00 8D 4ACé- AQ AO C3 CB Cl CD DO AD 4BB0- AD AD AD AD 4AD0- C4 CF CE CE C5 C5 D3 AO 4RRA- AD AD AD AD 4AD6- FC 00 6D 6D AD AO D7 Dz 4BCO- AD AD AD AD 4AE0- C9 D4 AO D3 D9 D3 D4 C5 4BC8- AD AD AD AD 4AE8- CD BA AO C3 C8 Cl CD DO 4BD0- AD AD AD AD 4AF0- AO Cl C4 D2 C5 D3 03 C5 4BD8- D2 C1 CD AA 4AF8—- AQ FC 0% 8D 8D AD AO C3 4BEO- AO C4 A7 C5 4B00- C8 C5 CB D3 DS CD AO FC 4BE8- D2 AU Cl AO 4B08- 00 8D AD AO D3 D9 CE C3 4BFO- C5 D2 CE C9 4B10- C8 D2 CF AQ FC 00 AO AO 4BF6- C3 CD C4 AE 4818- D0 D2 CF C4 AO FC 00 aD 4C00- D9 D2 Cl cD 4B20- AD AO D4 Cl c2 cc C5 AO 4c08- D2 C5 DS D2 4828- D6 D4 CF C3 AO AO AO D0 4C10- C3 C5 D2 CE 4B30- C9 D3 D4 C5 FC 00 AO AO 4C18- CC C5 AO DE 4B28- DO C9 D3 D4 C5 FC 00 AO 4C20- Co AE 8D 00 4B40- AO AO AO CD Cl D8 D3 CS 4C28- Cl CD AA AO 4B48- FC 00 AO AO D3 C5 C3 D4 4€30- DS D2 AO C3 4B50- C5 D5 D2 FC 00 AO AO CD 4C38- D2 CE Cl CE 4B58- Cl D8 DO C9 FC 00 AD AO 4c40- AO CC C5 C3 4560- AO AO D3 Cl DS Bl Al FC 4C48- AE 8D 00 AA 4B68- 00 6D AD AO DO D2 C7 AO 4C50- CD AA AO D2 4B70- C3 CF D5 D2 Cl CE D4 a0 4C58- CE C5 AO DO 4B78- AO AO AO AO C1 A4 FC 00 4C60- CC C9 D2 ¢5 4B80- AO AQ AO AO AO CC Ad FC 4ceg- CC CF C7 AG 4B88- 00 8D AD AO D4 D2 CB AO 4C70- CF C7 AE &D 4890- C3 CF D> D2 Cl CE D4 AO 4C78- D2 Cl CD AA 4B98- AQ CB D9 D2 Cl CD FC 00 4C80- C5 AO CE CF AD AD AD AD AD 00 AO D2 cc cs 6D AA Ao cl CF aA cs CF D4 D4 cB D? cs ao C5 00 ao CE 4BAQ- AO AO AO AO AO AO AD AD AD AD AD BA DO D2 cl D2 00 AO C3 CE ce ce D2 CE AO cs Dg D4 DS Do bo AA c3 AO C4 aD aD AD AD cB cl cs AO BR AD AD D9 D3 DS C4 AO D2 cE AO cD D2 cs cs cs D2 cl AO Ao ce Dg ca 4C88- 41090- 4C98- ACAO- 4qcag- 4cRO- 4CBe~ 4cco- 4cce- 4cD0- acpe- 4CEO- ACRA- 4CFO- 4CF8- 4D00- 4D08- 4D10- 4v18- 4D20~ 4D28- 4D30- 4038- 4D40- 4D48- 4D50- 4p58- 4D60- CD CF CC D3 AO cl or) Do cs DS cB A7 cE Do cE Ao Ao BA AA cs AO ce AA Ao AO AO AA BA EE 45 AP c7 cD v3 D2 cE D2 Ds cl ce cs cs AO Ao CE Ao cD Ao D3 AO AO ap ao Do aD AA cr AO cs D2 cD ao cc AO AO AA cg AO Ao AO D4 a0 AO ep ac CF C7 AO C4 D2 00 Ao AO D4 cs AE cl DO cs cl AE Ao AO ao cs AA Dé Ao c7 AO aA 00 20 CF: AA cc co cs c3 8D cD cs D3 D4 ap AO AO AA 8D D2 AO R2 AO 8D AO 20 3A ao cB cs b3 (oy) D2 00 AA D2 D4 cy 00 AO aA AA c7 ao cB AE AO AO ao 58 DB BC Dg Ao D4 cs co aD AO D3 ao cr aD AO AA aA AE a0 bg BQ AO AO AO FC 20 RBS ca AO D4 cc SSeEsRaRgA D2 ao ao AO AO Ag Les reliures Pom's Pour nos lecteurs comme pour nous, la revue Pom’s est une source précieuse d'information. A ce titre, nous sommes amenés @ la consulter souvent. Pour faire suite a@ de nombreuses demandes, et afin de facilité le rangement et les recherches dans Pom's, les Editions MEV vous proposent des reliures toilées propres a recevoir six numéros, soit un an de documentation. Une fois reliées, les revues forment un livre agréable a utiliser et insensible aux manipulations répétées. Ces reliures sont de couleur Bordeaux, le logo ‘Pom's’ est frappé au dos et un aplat est réservé pour noter l'année. Reliures Pom's : 60,00 Frs franco Pom's n° 29 25 ProDOS et fichiers détruits Si vous avez tendance a ‘bidouiller’ en assembleur dans les méandres de votre Apple, il peut vous arriver d'exciter les adresses fatidiques situées vers $COEO, qui déclenchent les routines ‘hardware’ d'écriture sur disque. Vue l'heure souvent tardive, le désordre régnant sur le bureau, et le walkman qui vous distille une mélopée hypnotique, la consé- quence quasi-assurée est l'efface- ment total d'une piste, souvent la piste 7éro. Sous DOS 3.3, cela affectait tarement I'intégrité logique de la disquette. En revanche, sous ProDOS, l'ensemble des poin- teurs internes permettant d'accé- der aux fichiers ont disparu et la disquette est apparemment bonne pour la casse... Apparemment seulement car, avec un peu de patience et d'habileté, les fichiers pourront étre restaurés. En effet, ils sont toujours préscnts mais ProDOS ne sait plus les retrouver. C'est donc par nécessité que sont nées les trois commandes suivantes : + INDEX, pour retrouver tous les blocs index des fichiers ; * RBLOC pour lire directement un bloc en mémoire ; * WBLOC pour écrire directement un bloc en mémoire. Elles sont entigrement compa- tibles avec la routine CMDLOAD (Pom's 20). Utilisation Récupérer l'intégrité des fichiers ne peut pas étre une opération automatique (ne révons pas !). En revanche, ces commandes ad- ditionnelles vous aideront consi- dérablement, pourvu que vous ayez une connaissance minimum de la structure d'un volume ProDOS. f O-1 mage du programme exécuté lors du j démarrage du disque 12 | Premier bloc du E | directory 3-5 Suite du directory Carte des blocs utilisés Blocs libres, index ou données Dans mon cas, le démarrage incontrélé du disque a eu pour effet non seulement d'effacer toute la piste zéro donc les blocs 0 47, mais en plus de la rendre inutilisable. Elle avait été reformatée de fagon fantaisiste, ce qui donnait des bruits inquiétants lorsque jiessayais de faire ne serait-ce qu'un CATALOG. Pour observer les causes du désastres, il suffit de charger un Nibble Editor et de comparer la piste 0 avec celle d'une autre disquette. Il est nécessaire, de toute fagon, de reformater la piste endommaygée, avec un utilitaire permettant un formatage partiel d'une disquette, puis de recopier la piste 0 issue d'une autre disquette ProDOS (votre copieur préféré fait probablement l'af- faire). Ceci fait, on dispose d'une disquette bonne en apparence, mais toujours inutilisable, car le ‘directory’ recopié n'aiguille pas sur les bons fichiers. Ainsi, avant Patrice Neveu de modifier le directory, il faudra connaitre les emplacements de tous les fichiers 4 récupérer. Nous allons donc devoir les localiser, grace 4 la commande INDEX. La commande INDEX Pour comprendre le fonction- nement de la commande index, il faut étudier la structure d'un fichier sous ProDOS, Dans la majorité des cas, c'est-4-dire pour les fichiers de plus de 512 octets et de moins de 128Ko (Sapling files), il est construit ainsi : * un bloc index contient tous les numéros de blocs sur Iesquels Je programme est enregistré ; + puis, éparpillés sur la dis- quette, on trouve ces blocs. Sous ProDOS, les fichiers de moins de 512 octets (seedling files) sont pratiquement impos- sibles a retrouver car, étant donné qu'ils tiennent sur un bloc, ils ne sont pas localisés par un bloc index. Les fichiers de plus de 128Ko et moins de 16 mégas (tree files) sont localisés par un bloc index “maitre”, c'est-a-dire un index qui pointe vers un ensemble d'index, qui pointent 4 leur tour vers les blocs de données du fichier. Ainsi, lorsqu’on ne peut plus se fier au directory pour retrouver ses fichiers, le mieux est de chercher les blocs index. La commande INDEX va lire les blocs du disque un par un, et tenter de déterminer si un bloc peut ou non, étre un bloc index. Elle a toutefois besoin que vous lui fournissiez le nombre de blocs que contient la disquette : Pom's n° 29 + 280 pour un disque 5,25 pouces ; + 1600 pour un disque 3,5 pouces ; + 127 pour le disque virtuel en mémoire auxiliaire. Les valeurs pour les ProFile et autres disques durs sont simples a déterminer, puisqu'un CATALOG affiche le nombre total de blocs. Bien sir, micux vaut avoir de la mémoire car, si c'est de votre disque dur dont il s'agit, vous n'en n'aurez peut-€tre pas un second sur lequel faire un essai... En cas de doute, donnez un nombre supérieur a la réalité : a partir d'un certain moment, INDEX affichera une suite ininterrompue de numéros de bloc en inverse ; vous en déduirez que le nombre de blocs du volume cst immédiatement inférieur a cette suite. En régle générale, tout numéro de bloc affiché en inverse indique qu'il est impossible de lire ce bloc. INDEX s'inspire de la routine FIB publiée dans “Beneath Apple ProDOS”, mais en améliorant grandement les performances. Avec INDEX, un bloc index est automatiquement détecté comme tel (a l'exception des derniers blocs de directory) ; au contraire FIB produisait une trés longue liste de blocs potentiellement index, dont bien peu I'étaient en réalité. L'algorithme utilisé est, en effet, plus discriminateur. Durant l'exécution de la commande, des numéros de blocs seront affichés (en affichage normal). Ce sont les blocs présumés étre index. Sortez-les Sur imprimante, ou notez-les, car nous allons maintenant les utiliser. Les commandes RBLOC & WBLOC RBLOC et WBLOC sont deux commandes supplémentaires : il faudra lire un bloc par RBLOC, 1 bloc suivant | $12 = 18 fichiers dans le catalogue n’ bloc précédent siocz__\ 0900: 00 00 03 00 F9 4B 4y ses cYHAR ) gay 0908: 44 43 4F 50 49 00 DCOPIE._ i 0910: 00 40 00 00 00 2= fichier de 2 a 256 blocs 0928: 00 00 00 7 = /ongueur du nom 0920: 01 00 c3 o9z8: 0930: 0938: 0940: premier fichier $6 > c'est om pees binaire + | le bloc n* $0008 est le bloc diindex, c'est ce n° qu'on modifi PROD seas second fichier Ce fichier contient $000236 octets (566 en décimal) |AUX_TYPE : $7000 Comme ce fichier est du type binaira, il s'agit de |son adresse do chargomont. + +BASIC. " SYSTEM. . Le bloc n° 2 (premier bloc du catalogue), tel qu'il est affiché a I'écran aprés la commande ‘RBLOC 2’. Pour modifier le numéro de bloc index du premier fichier par exemple (n° trouvé 4 l'aide de Ia commande INDEX), passer en moniteur (CALL - 151), puls avec le curseur, relire la ligne ‘0938:...' en modifiant au passage le numéro. Réécrire le bloc en faisant WBLOC 2, Pour bénéficier des commandes RBLOC, WBLOC et INDEX, il aura fallu faire ‘ BLOC’ et - INDEX’. le modifier en mémoire en utilisant le moniteur de l’Apple (accessible par CALL - 151), puis réécrire le bloc par WBLOC. La structure du Directory Dés lors, nous avons toutes les informations nécessaires pour L'cxécution des deux commandes affiche également 4 l'écran les premiers octets du bloc et son adresse d'implantation. Ainsi, si la premiére adresse est $900, alors le bloc se trouve en $900-$AFF. Les routines char- gent et déchargent uniquement la mémoire vive située aprés un éventuel programme Applesoft et ses variables simples. En conséquence, il est préférable de ne pas modifier un programme, ou l'exécuter, entre le RBLOC et le WBLOC correspondant. Il est maintenant préférable de s'assurer, par l'utilisation de RBLOC, que chaque bloc détecté par la routine INDEX correspond bien 4 un index de fichier. En particulier, le méme numéro de bloc ne doit pas apparaitre deux fois. ré-insérer nos fichiers dans le directory. Pour lire le directory, il faut se rappeler que celui-ci commence toujours en bloc 2 ; c'est le bloc-clé. Puis, selon le type de disque, il continue sur plusieurs blocs consécutifs. En ce qui concerne la structure du directory, seuls les octets impliqués dans la récupération des fichicrs sont signalés dans la liste qui suit. En début de chaque bloc directory, on trouve toujours ceci: $00-01 numéro du bloc précé- dent du directory pré- cédent. Si nul, on est dans le premier bloc ; $02-03 numéro du bloc suivant du directory. Si nul, on est en fin de directory. On ne touche pas a ces blocs Pom's n° 29 27 qui ne servent qu'au chainage interne, immuable par type de support. $25-26 FILE_COUNT Nombre de fichiers actifs dans le catalogue. A mettre A jour, en fin de travail, lorsque l'on saura exactement combien de fichiers sont a récupérer et a lister lors d'un CATALOG. Ensuite, a partir de l'octet $2B, sont placées 13 séries de $27 (39) octets qui décrivent individuel- lement les fichiers stockés. Pour chaque série, on trouve : $00 STORAGE_TYPE/ NAME_LENGTH type de fichier/longueur du nom, au format TITTLLLh, Le type peut prendre les valeurs : $0 Entrée effacée, disponible pour réutilisation $1 Seedling file (1 bloc) $2 Sapling file (2 a 256 blocs) $3 Tree file (257 4 32768 blocs) $D_ Sous-catalogue SE Premiere entrée d'un sous-catalogue $F Premiére entrée du catalo- gue (voir précédemment) $01-0F FILENAME nom du fichier. Au départ, micux vaut soit ne pas y toucher, soit y mettre un caractére alphabétique. Les commandes RENAME seront pour bien plus tard. $10 FILE_TYPE type du fichicr Les types qui peuvent nous intéresser sont : $04 TXT fichier ASCII $06 BIN _ binaire $OF DIR __ sous-directory $19 ADB base de donnée AppleWorks $1A AWP traitement de texte AppleWorks $1B ASP tableur AppleWorks $EF PAS PASCAL sous ProDOS BASIC Applesoft programme langage machine telogeable $FF SYS systéme Pour déterminer le type appro- rié, il sera préférable d'utiliser a routine TDUMP du numéro 20 de Pom's afin d'afficher le fichier et en déduire sa nature. $FC BAS $FE REL $11-12 KEY_POINTEUR numéro du bloc index. A modifier aussitét que l'on a utilisé INDEX et vérifié l'au- thenticité des blocs renvoyés. $13-14 BLOCKS_USED Nombre de blocs utili- sés par le fichier. Cela comprend les blocs index plus les blocs de données. Modifier ceci en fonction encore de ce que le bloc index a donné. $15-17 EOF Longueur du fichier sur 3 octets. Au départ, y mettre 512 fois le nombre de blocs trouvé. Ensuite, il sera toujours plus facile de le modifier par voie logicielle. $1F-20 AUX_TYPE dépend de FILLE_TY PE TXT Longueur d'enregistre- ment (paramétre L dans OPEN) BIN Adresse de chargement (paramétre A dans BSAVF) BAS Adresse de chargement (lorsque sauvé par SAVE, normalement $801) VAR Adresse des variables (sauvées par STORE) SYS Adresse de chargement (habituellement $2000) Il est quasiment impossible de fixer ces adresses, 4 moins de se les rappeler, ou que le fichier soit issu d'un logiciel qui sauve toujours 4 la méme adresse. Les autres octets de chaque série sont hors-propos ici, et d'ailleurs non indispensables (par exemple les dates de création et modification). Aprés avoir retrouvé les fichiers Voila, logiquement une fois tout ceci terminé, on devrait pouvoir prendre les utilitaire ProDOS et sauvegarder tous nos fichiers sur une bonne disquette ProDOS, car rapellons-le, ce que nous avons fait suffit seulement 4 reconnecter des fichiers au directory, et non a remettre la disquette entigrement en état. Entre autre, le schéma d'occupation des blocs n'est pas mis 4 jour, et il est donc impératif de ne sauvegarder aucun fichier sur le disque. Syntaxe des commandes Apres avoir fait : -INDEX ct -BLOC, vous disposez des commandes suivantes : INDEX <nb de blocs> [, S<numéro de slot>] [, D<numéro de drive>] RBLOC <numéro du bloc> [, S<numéro de slot>] [, D<numéro de drive>] WBLOC <numéro du bloc> [, S<numéro de slot>] [, Denuméro de drive>] Par exemple : INDEX 280,56 INDEX 1600 RBLOC 173,S5,D2 WBLOC 173 Pour le disque virtuel /RAM, prendre $3,D2. Liste des fichiers sur la disquette Pom's T. INDEX .CODE source Big Mac (format texte), commande INDEX 28 Pom's n° 29 T.BLOC.CODE idem pour commandes RBLOC & WBLOC INDEX module exécutable BLOC module exécutable Au exécutables. Les commandes s'installent par un simple BRUN sur les modules ProDOS I+ S; verso de la disquette d’accompagnement (face nommée /POMS29/), les fichiers sont au format ProDOS. He /le+ //e Igs Source ‘T.INDEX.CODE’ e ton ven eee Récapitulation Assembleur Big Mac, format TEXT a eck ak y oren th sees F A 2 ian vrarmten INDEX 2 Let oFr 2 STA PIRe 5 oie 2 % Lor Aprés avoir saisi ce code sous : ORG szi00 35 COMPAR LDA (PTR),Y —; Clest INDEX ? moniteur, vous lo sauvegarderoz % CMP COMMANO-1, A 5 ” SNE Noch”; non, alors retour ay At BSAVE INDEX,A$2000,L$205 s cs Penile : ie ee Les codes de $2000 & $20FF 9 80 Dee COMPAR corraspondent au programme n C$ BOWNECHD 7 Cleat INDEX alors en CMDLOAD (Pom’s 20). pene y aller * 2 + sh xoow ste 1 Indique que 1n commande 2000:AD 00 BF C9 4C FO 05 A9 Ban ea ences creche . nieat pas & nous 2008:87 AC FD FD AD 4D BE FO . mr eine, ETE cl Aenean * SRR ELLE ER 2010:05 AS 15 4¢ 09 BE AD 04 + Le progeamme va lize tous les blocs du disque + = 2018:21 69 00 20 98 20 90 05 + jusqu'au nombre total qu'on lui indique dane * Proves étudie ia ligne 2020:A9 OE 4C 09 BE CD 02 21 * commande. Si le bloc est susceptible dietee un ¢ ; bloc index. 11 affiche son numero. * 2028:90 F6 AE 08 BE 6D 08 BE * : noweean 2030:8£ 07 21 AE 07 BE GE 06 ory Jpacaipe ses se 2038:21 AO 00 8C 07 BE 48 E9 examiner 1a coman 92 bey ; Tl ne doit pas y avoir 2040:21 85 3C 68 38 E9 04 85 de paramétres 85 49 64 48 AO 2 are FO 27 20 af Fa 28 sYNT_eAR = $40 ¢ Code du message "SYNTAX ety STA SISEKR 02 DO OF Bl 48 EAROR* 36 Sta xoxuM 2060309 09 cD 02 21 BO repre = gan Pointeur temporatce * toa #0 de pacanttces: $00 : 30 LINNUM = $50 + Résultat de GRTADR en (Pita) SP OUIOA Sb ae OL AP AD ARIES 3 STAND = 560 } Adresse du début dela a8 ata pares 2070365 2F 85 48 AS 49 69 00 re 99 LA 40 2078285 49 DO D3 AO 00 A 22 ve rneroe = Ser ide la fin de 1a 100 STA PBrTse1 S zone libre 101 V_SUITE LDA SUITE } Indique 1'adres: soa ced eps (ae etc 33 ovorxrem = $79 f Sauvegarde de TXTPTR retour 208864 42 88 64 3E 85 3F AD 34.cx = $20 7 Code du Carrtage Return 102 LDA V_surte+l 2090:08 BE 85 43 C8 4c 2c FE 35 BUFADR: = GAB } adresse de la premiere 103 STA XTADOR Biantanhen GooKS 7a eCcA OL mmltle du bloc te 104 bon y_suimes2 26 auADR? = AD [ihdecase dere socesde “tes Sta XEnD0Re 20K0:8D FC 20 86 3D cE FC 20 meitie du bles 16 toe cue jCtéealt-tien pour sows #620 00 Ww 20 a curcrs = gat S Routine deprive de 107 ate caractére 1OR suTTE 48 4A 4A 4A AR 38 TxXTPTR = $38 + Pointe sur le caractére 109 cur 40 + St pas d'erreur, on 20B8:68 29 07 A® B9 F3 20 3D a A prendre aie pai cm continue 20C0:5@ BF DO £1 AS 3D DO 09 40 IN - $0200 7 Buffer clavier i ts SU eng) eS 20 NUKES eisre as: a 20D0:BF AD FC 20 38 CE FD 20 42 exinrunn = sauec—; AttLchage de L'erreur 20D8:ED FD 20 cD FB 20 DO DO 43 orrsiz = Sarco; slot par derauc 44:DEFORY = 93E90 4 Daive pas défaut 20E0:A5 3D DO 07 18 AE FD 20 4S XTADDR ~ $RESO Pointe edresse de le 16 ‘LDA TXTPTR 20E8:E8 8A 60 AS 00 85 3D FO 46 XLEN SRRS? 17 LOX TXTPTR+2 an Basi: BORO IBS as 607 $040)20, 2008 riubtetiaaliam 20F8:04 02 01 00 00 00 AD 99 47 xeon = 583 ne STA oLDExTPrR 2100:DR A 23 AQ 01 AD 58 FF ae pBITs «= © SRES4 =; Indiquent les ns SIX OLDIXTPER#L 6 AE AO oo ne paranéires valables 120 a 49 VPATHL = SBEEC 4 Pointe sur le nom de a2. ‘LOY XLEN # O® se trouve la fin du 01 Bl 48 DI CA volume wmot de commande ? cB CO 06 90 FA 20 BADcALL ~ ftaduie ivereeur pour zz i fSert & lire 1a suite: de Dr numéro de bloc, ge hal rel al St RNTRY - 7 Point dlentrée du MET 123 Ne 4 puls les paramétres Ad 00 8D OF BF $2 sven = IVa kis ont ioe So tventuels (2 et 9) A9 00 8D 54 BE traitement dex erreurs 124 yA } Pour cela, on oe sert 33 Os eaeeas 55 BE AD 4E 21 54 FRMNUM = ‘$0067 7 Range valeur pointée 125, ce + On additionne la aD 50 RE AD 3F par IXTPTR dans FAC longveur dy mot-clé DE 16 0 co 00 SS GErOR = $8752; ‘Transform FAC en 16 aoc veri —; (INDEX) au début de la entier 2 oct (LINNUM) Boney Be eS. 12, 36 LINPTR) = sep24 ¢ Affiche X et A 127 STA TXTPTR 52 BE C8 C8 98 S7 cour =~ sruED = Atriene Le caractere se Re aren io a8 Urouvant dana A ze LDA veaTiie Se INVERSE ~ srEeo 4 Affiche en inverse 85 Bd 20 82 22 58 NORMAL = as noc 40 ee D1 22 20 AF Be eta Tareznea Bach oe ch is 1 JER DWAR On va Lise Le nombre Be 22 C9 D3 D0 cmt eat potnre 2188:0B 20 Be 22 29 07 ep 3c in STA Tor Bloc 1 Ge sera le bloc final 9, 99:98 4c 79 21 C8 C4 FO 03 ee START = CLD ¢ Obligatoire pour ProDos 135, 2198:4C 8E 22 20 BB 22 29 03 « LOK epeunts0100 7 Convention pour 21AN0:@D 3D BE 4C 79 21 A9 00 croton ars Lecture des paranteres s'11 y en a ee LOA #ou0Na sor00 2 21A8:8D CA 22 8D C9 22 AD C5 65 vouseno ok ATS ey 2100:22 AD AF 21 AE BO 21 @D en Pom's n° 29 140 141 uaz 145 147 ist 155

Showing the first 100000 of 252452 characters.

mp.ls