Skip to main content

magazine poms21

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

Showing the first 100000 of 273385 characters.

mp.ls