2IMGCdrP@@@ )4   "D}, M ) TiTWiWg2 Ԣ` H i`iK ԩ`GៀL` HK!HKH@L,0 )i/ XA)Lb +)D\]g_ ?/"p@͸  ɜUUɛ`ff  ܪ330 ˩pʙpwpwʙpppwp˩ppppww̺p&Xb0qqwqqwqwqwwqwqwwwwwwwqwqqwqwwwqwwqwqwwqwqqwwwwwqwwqqqqqqqqqqqwqqqqqqqqqwqqqqqqqwqqwqwwqwqwqwwqwqwwwwwqqwqqwwqqwwwqwqwqqwwqqqqqqqqqwqqqqqqqqqwqqqqqqqqqqwwwwqwwqwwwqwwqqwwwwqwqwqqqwqqwwwqwqwwqqqGSINF3ARDE' @ARTICLES EXERCICES1PROGRAMMES UTILITAIRES  FINDER.DATAE ,COUVERTURE.3rAg1j%'GSINFOS@~**ICONS/ FINDER.ROOT tARTICLESu' ' '(ART.ASS3 ,fT##,ART.TOOLBOX3/)FINDER.DATAD>*ART.COMPTAGy))*ART.DRIVERU-ART.GSINFBOOT["44,ART.COURRIER% ++-ART.DERNIERESJ#C/ / -ART.EDITORIALUJ  ,ART.ANNONCESa  -ART.DOMPUBLICk.ART.DESKEDITORTsjEXERCICESu' ' 'FINDER.DATA ESSAI2.BAS ) PROG1.ASS$ 3 )RAYON.PAS'DESSIN1 t"@Y6 'DESSIN2 t"@Y6 ESSAI1.BASD9D9PROGRAMMESu' ' 'GS.BOOTDl FINDER.DATApj  GRIBOUILLE CHEAPPAINTTd 4 DESK.EDITORL PICT.VIEWER UTILITAIRESu' ' 'FINDER.DATAcT  FONTE.EDITEUR/ SON.INTRO IMPRIMANTEf Art.Ass3: Troisime partie de notre initiation l'assembleur 6. Les instructions du 65816 --------------------------- Il possde 91 instructions: ADC addition avec retenue AND et logique ASL dcalage de 1 bit vers la gauche BCC branchement si pas de retenue BCS branchement si retenue BEQ branchement si zro BIT test de bits BMI branchement si ngatif BNE branchement si non gal BPL branchement si positi  !"#$%&'()*+,-XZ[f ou nul BRA branchement inconditionnel BRK interruption logicielle BRL branchement inconditionnel long BVC branchement si pas de dbordement BVS branchement si dbordement CLC mise zro de la retenue CLD annulation du mode dcimal CLI autorisation des interruptions CLV mise zro de l'indicateur de dbordement CMP comparaison avec l'accumulateur COP interruption passant la main un autre processeur CPX comparaison avec le registre X CPY comparaison avec le registre Y DEC on dcrmente la mmoire DEX on dcrmente le registre X DEY on dcrmente le registre Y EOR ou exclusif INC on incrmente la mmoire INX on incrmente le registre X INY on incrmente le registre Y JML saut long inconditionnel JMP saut inconditionnel JSL saut long un sous programme JSR saut un sous programme LDA charger l'accumulateur LDX charger le registre X LDY charger le registre Y LSR dcalage d'un bit vers la droite MVN dplacement ngatif de bloc MVP dplacement positif de bloc NOP pas d'opration ORA ou logique entre la mmoire et l'accumulateur PEA mettre sur la pile des donnes immdiates PEI mettre sur la pile un mot de la page 0 PER mettre sur la pile la somme de la donne et du compteur ordinal PHA mettre sur la pile le contenu de l'accumulateur PHB mettre sur la pile le contenu du registre banc de donnes PHD mettre sur la pile le contenu du registre direct PHK mettre sur la pile le contenu du registre de banc de programme PHP mettre sur la pile le contenu du registre d'tat PHX mettre sur la pile le contenu du registre X PHY mettre sur la pile le contenu du registre Y PLA mettre dans l'accumulateur le contenu du sommet de la pile PLB mettre dans le registre de banc de donnes le contenu du sommet de la pile PLD mettre dans le regitre direct page zro le contenu du sommet de la pile PLP mettre dans le registre d'tat P le contenu du sommet de la pile PLX mettre dans le registre X le contenu du sommet de la pile PLY mettre dans le registre Y le contenu du sommet de la pile REP mise zro des bits 1 du registre d'tat P ROL rotation d'un bit vers la gauche ROR rotation d'un bit vers la droite RTI retour d'interruption RTL retour long d'un sous-programme appel par JSL RTS retour d'un sous-programme appel par JSR SBC soustrait la mmoire avec la retenue l'accumulateur SEC met la retenue 1 SED met en mode dcimal SEI inhibe les interruptions SEP met 1 les bits du registre d'tat STA mettre le contenu de l'accumulateur dans la mmoire STP arrt de l'horloge STX mettre le contenu du registre X dans la mmoire STY mettre le contenu du registre Y dans la mmoire STZ met la valeur zro dans la mmoire indique TAX transfert de l'accumulateur dans le registre X TAY transfert de l'accumulateur dans le registre Y TCD transfert de l'accumulateur C dans le registre D TCS transfert de l'accumulateur C dans le registre pointeur de pile TDC transfert le registre D dans l'accumulateur C TRB teste et met des bits de la mmoire 0 par l'accumulateur TSB teste et met des bits de la mmoire 1 par l'accumulateur TSC transfert le pointeur de pile S dans l'accumulateur C TSX transfert le pointeur de pile S dans le registre d'index X TXA transfert de X dans l'accumulateur TXS transfert de X dans le registre pointeur de pile TXY transfert de X dans le registre d'index Y TYA transfert de Y dans l'accumulateur TYX transfert de Y dans le registre d'index X WAI attente d'une interruption XBA change B et A dans l'accumulateur C XCE permute les bits de retenue et d'mulation Ces 91 instructions combines aux diffrents modes d'adressage donnent 255 codes diffrents. En effet une mme instruction n'a pas toujours le mme code, cela dpend de l'adressage utilis. Exemple: pour l'instruction LDA on dispose de 15 codes A1 A3 A5 A7 A9 AD AF B1 B2 B3 B5 B7 B9 BD BF On comprend aisment pourquoi l'usage d'un assembleur est indispensable. 7. Encore plus loin dans le moniteur ------------------------------------- En premier lieu, rutilisons le programme Basic du cours prcdent. Celui qui implante la phrase " MONITEUR EN COURS D'ESSAI", des 0 et le mot FIN, de l'adresse $300 $387. Le programme ESSAI1.BAS a t remis sur cette disquette, pour l'excuter faites sous finder un double-clic sur son icne ou taper sous BASIC : RUN /GS.INF3/EXERCICES/ESSAI1.BAS. Une fois cela fait,entrons dans le moniteur en tapant CALL -151 et Retour. Pour poursuivre l'exploration commence dans le numro 1 et continue dans le numro 2, nous allons aborder quelques commandes supplmentaires agissant sur la mmoire et les commandes diverses (miscellaneous monitor commands). 7.a Travail sur la mmoire -------------------------- Nous savons dj agir sur la mmoire pour lire ou crire dans une ou plusieurs adresses. Mais, on peut aussi: entrer directement une chane de caractres ASCII, remplir une zone mmoire avec une valeur, copier une zone mmoire partir d'une adresse, rechercher une chane de caractres et comparer deux zones de la mmoire. ENTRER UNE CHAINE DE CARACTERES ASCII --> Adresse "chane ASCII" Retour Exemple: tapez 00/0320:"APPLE II FOR EVER" Retour (Attention aux doubles ctes) puis 300.387 Retour vous devez lire: 00/0300 : CD CF CE C9 D4 C5 D5 D2 - MONITEUR 00/0308 : A0 C5 CE A0 C3 CF D5 D2 - EN COUR 00/0310 : D3 A0 C4 A7 C5 D3 D3 C1 - S D'ESSA 00/0318 : C9 00 00 00 00 00 00 00 - I....... 00/0320 : C1 D0 D0 CC C5 A0 C9 C9 - APPLE II 00/0328 : A0 C6 CF D2 A0 C5 D6 C5 - FOR EVE 00/0330 : D2 00 00 00 00 00 00 00 - R....... Suit des lignes de 00 00/0380 : 00 00 00 00 00 C6 C9 CE - .....FIN Normalement, il est aussi prvu d'implanter les chanes l'envers. Il suffit de remplacer les deux ctes par l'apostrophe. Mais cette commande ne marche pas si la chane dpasse 4 caractres 00/340:'ERREUR' Retour Puis 300.387 Retour vous devez lire: 00/0300 : CD CF CE C9 D4 C5 D5 D2 - MONITEUR 00/0308 : A0 C5 CE A0 C3 CF D5 D2 - EN COUR 00/0310 : D3 A0 C4 A7 C5 D3 D3 C1 - S D'ESSA 00/0318 : C9 00 00 00 00 00 00 00 - I....... 00/0320 : C1 D0 D0 CC C5 A0 C9 C9 - APPLE II 00/0328 : A0 C6 CF D2 A0 C5 D6 C5 - FOR EVE 00/0330 : D2 00 00 00 00 00 00 00 - R....... 00/0338 : 00 00 00 00 00 00 00 00 - ....... 00/0340 : D2 D5 C5 D2 00 00 00 00 - RUER.... (hlas, la chane est tronque) Suit des lignes de 00 00/0380 : 00 00 00 00 00 C6 C9 CE - .....FIN le mot erreur n'est pas bien install, seules ses quatre dernires lettres sont en place. REMPLIR UNE ZONE MEMOIRE AVEC UNE VALEUR --> Valeur Signe< Adresse de dpart Un point Adresse de fin Z et Retour Exemple: nous allons nouveau mettre des 00 aux adresses $0340 $0343. Tapez C5<00/340.343Z et Retour (Ne pas oublier la lettre Z) Puis 300.387 Retour L'ordinateur affiche: 00/0300 : CD CF CE C9 D4 C5 D5 D2 - MONITEUR 00/0308 : A0 C5 CE A0 C3 CF D5 D2 - EN COUR 00/0310 : D3 A0 C4 A7 C5 D3 D3 C1 - S D'ESSA 00/0318 : C9 00 00 00 00 00 00 00 - I....... 00/0320 : C1 D0 D0 CC C5 A0 C9 C9 - APPLE II 00/0328 : A0 C6 CF D2 A0 C5 D6 C5 - FOR EVE 00/0330 : D2 00 00 00 00 00 00 00 - R....... 00/0338 : 00 00 00 00 00 00 00 00 - ........ 00/0340 : C5 C5 C5 C5 00 00 00 00 - EEEE.... Suit des lignes de 00 00/0380 : 00 00 00 00 00 C6 C9 CE - .....FIN Les quatre lettres RUER ont t remplaces par 4 E. COPIER UNE ZONE MEMOIRE --> Adresse de destination Signe < Adresse de dpart du bloc copier Un point Adresse de la fin du bloc copier Lettre M Exemple: 8000<300.387M Allons voir ce qui s'est pass 8000.8087 Retour on lit: 00/8000 : CD CF CE C9 D4 C5 D5 D2 - MONITEUR 00/8008 : A0 C5 CE A0 C3 CF D5 D2 - EN COUR 00/8010 : D3 A0 C4 A7 C5 D3 D3 C1 - S D'ESSA 00/8018 : C9 00 00 00 00 00 00 00 - I....... 00/8020 : C1 D0 D0 CC C5 A0 C9 C9 - APPLE II 00/8028 : A0 C6 CF D2 A0 C5 D6 C5 - FOR EVE 00/8000 : D2 00 00 00 00 00 00 00 - R....... 00/8008 : 00 00 00 00 00 00 00 00 - ........ 00/8040 : C5 C5 C5 C5 00 00 00 00 - EEEE.... Suit des lignes de 00 00/8080 : 00 00 00 00 00 C6 C9 CE - .....FIN De l'adresse $8000 $8087 on a bien la copie exacte de la zone comprise de $0300 $ 0387. Nous allons pouvoir le vrifier immdiatement. COMPARER DEUX ZONES MEMOIRES --> Adresse de destination Signe< Adresse de dpart du bloc Un point Adresse de la fin du bloc Lettre V Exemple: Tapez 8000<300.387V et Retour (Ne pas oublier le V) Il ne se passe rien l'affichage,l'* revient. Cela veut dire que les deux zones sont bien identiques. Maintenant crivons : 8040:C8 C5 CC CC CF et retour puis 8040.8044 Retour pour vrifier. On doit voir: 00/8040:C8 C5 CC CC CF-HELLO A prsent, lanons nouveau la commande de vrification. 8000<300.387V et retour l'ordinateur affiche: 00/0340:C5 (C8) 00/0342:C5 (CC) 00/0343:C5 (CC) 00/0344:C5 (CF) toutes les diffrences sont ressorties, avec l'adresse et la valeur de la zone de dpart suivie entre parenthses de la valeur diffrente trouve l'adresse d'arrive correspondante. RECHERCHER UNE CHAINE DE CARACTERES --> Antislash ou c cdille Valeur chercher \ ou Signe< Adresse de dbut Un point Adresse de fin Lettre P La valeur chercher peut tre une valeur hexadcimale, une chane hexadcimale, une chane alphanumrique. ( N.B. Si vous utilisez Visit Monitor avec l'accessoire Le Clavier Bien Tempr actif, il faut pour que le ne soit pas interprt comme un retour chariot, maintenir la touche Option enfonce et tapez .) Exemple: tapez C8<8000.8087P (Ne pas oublier les \ ou et le P) L'ordinateur affiche: 00/340: l'adresse o il a trouv la valeur C8 7.b Commandes diverses ---------------------- Ces commandes permettent de modifier l'affichage sur l'cran, de rediriger les entres et les sorties, de modifier l'heure et la date, de modifier et d'examiner les registres et les drapeaux (Flags). METTRE EN VIDEO INVERSE --> Tapez I et Return METTRE EN VIDEO NORMALE --> Tapez N et Return CHANGER L'HEURE ET LA DATE --> Tapez =T=mois/jour/anne heures:minutes:secondes Mois de 1 12, jour de 1 31,anne de 0 99 AFFICHER L'HEURE ET LA DATE --> Tapez =T et Return REDIRIGER LES ENTREES --> Tapez Numro du Slot et Control-K REDIRIGER LES SORTIES --> Tapez Numro du Slot et Control-P EXAMINER LES REGISTRES ET LES DRAPEAUX--> Tapez Control-E Les registres sont affichs dans cet ordre: A,X,Y,S,D,P,B,K,M,Q,L,m,x,e A est le contenu de l'accumulateur X est le contenu du registre d'index X Y est le contenu du registre d'index Y S est le contenu du pointeur de pile D est le contenu du registre direct responsable de l'endroit des pages 0 P est le contenu du registre d'tat du processeur B est le contenu du registre de banc de donnes (DBR) K est le contenu du registre de banc de programme (PBR) M est le drapeau d'tat machine (Aargh!...) Q est le "Quagmire Register" celui qui s'occupe de la vitesse (!!!!) L indique le banc de la carte langage (0 ou 1) m est le drapeau de A, si m=0 A est sur 16 bits, si m=1 A est sur 8 bits x est le drapeau des registres d'index, si x=0 registres sur 16 bits, si x=1 registres sur 8 bits e est le drapeau du mode de fonctionnement, si e=0 on est en mode natif 16 bits, si e=1 on est en mode mulation 8 bits. MODIFIER REGISTRES ET DRAPEAUX --> Valeur nouvelle Signe gal lettre Attention de ne pas bricoler les registres sans savoir, sous peine de ractions tranges parfois. Exemple: mettons $65 dans l'accumulateur, Tapez: *0065=A et Return puis tapez Control-E L'cran doit afficher: A= 0065 X= et la suite des registres. Il nous reste quelques commandes qui seront vues le cas chant, lors de leur utilisation dans un programme assembleur: * adresse X qui excute un programme dans un banc diffrent de $00 en faisant un JSL * adresse R qui excute un programme en faisant un JMP - L'appel d'un outil en mode natif ( A la fin de l'initiation...) - le vecteur utilisateur appel par CONTROL-Y, vous en avez un exemple avec Visit Monitor (voir GS INFOS 2). *Control-B dmarrage froid en Basic *Control-C dmarrage chaud en Basic 8. Et si on programmait! ----------------------- Nous avons appris crire dans la mmoire, utiliser les routines caches dans la ROM, il nous reste deux endroits spciaux de notre Apple explorer, la zone des commutateurs logiques et la pile. Auparavant, nous ferons un petit dtour par l'exercice du numro prcdent. 8.a Correction de l'exercice ----------------------------- Rappel de l'nonc: Ecrivez un programme utilisant l'adressage index par X, dbutant l'adresse $300 et crivant aprs avoir nettoy l'cran, APPLE II FOR EVER. Voici le programme Basic qui nous a permis de mettre la phrase l'envers. 10 HOME 20 J=1 30 PHRASE$="APPLE II FOR EVER" 40 FOR I = 17 TO 1 STEP-1 50 POKE 786+J, ASC(MID$ ( PHRASE$,I,1)) + 128 60 J=J+1 70 NEXT 80 PRINT " Phrase installe" 110 END Ce programme est sur la disquette, dans le dossier EXERCICES,sous le nom ESSAI2.BAS Le programme assembleur qui affiche APPLE II FOR EVER est lui aussi dans le dossier EXERCICES sous le nom PROG1.ASS. Nous allons profiter de sa prsence pour expliquer comment sauver, charger et excuter un programme assembleur. Pour sauver un programme assembleur depuis le moniteur ou le Basic, il faut utiliser la commande BSAVE de Prodos suivie du nom complet, de l'adresse et de la taille. BSAVE Nom du fichier,A$adresse,L$taille (adresse et taille en hexadcimal) ou alors BSAVE Nom du fichier,Aadresse,Ltaille (adresse et taille en dcimal) Pour le charger: BLOAD Nom de fichier,A$adresse,L$taille Si l'adresse n'est pas spcifie le programme sera charg l'adresse donne lors du BSAVE Pour l'excuter directement en l'appelant: BRUN Nom de fichier,A$adresse,L$taille Excutons le notre: BRUN /GSINF3/EXERCICES/PROG1.ASS,A$300,L$24 L'ordinateur affiche en haut de l'cran APPLE II FOR EVER Entrez dans le moniteur et faites 300L pour voir le programme dsassembl. Remarquez le 00 terminateur de phrase, juste aprs le RTS, son existence est importante pour viter des affichages farfelus. 8.b Les commutateurs logiques ------------------------------ Le travail en assembleur de ce numro va concerner l'utilisation d'une partie particulire de la mmoire de notre Apple II, la zone des commutateurs logiques ou SOFTSWITCHS. Ces commutateurs sont activs par le logiciel. Voici les adresses et l'action de certains de ces commutateurs: $C022 partie basse de l'octet couleur du fond, partie haute couleur du texte $CO34 partie basse de l'octet couleur du tour $C050 passe en mode graphique $C051 met en mode texte $C052 texte ou graphique non mlangs $C053 texte et graphique mlangs, 4 lignes de texte $C054 affiche la premire page $C055 affiche la deuxime page $C056 affiche la basse rsolution $C057 affiche la haute rsolution Ce sont les commutateurs qui concernent l'affichage en mode mulation. Amusons nous modifier la couleur du fond. Cette couleur est fixe par la partie basse de l'octet, soit les bits 0 3. Nous laisserons la partie haute $F, soit l'criture du texte en blanc. Entrons dans le moniteur et le mini-assembleur: !00/300:LDA F9 9 met le fond orange ! STA $C022 STA permet de mettre la valeur contenue dans A l'adresse $C022 ! RTS Lancez le par 0300G. Vous pouvez essayer d'autres combinaisons. Maintenant nous allons laborer un programme encore plus visuel. Ce programme, tir d'un vieil Hebdogiciel est un exemple d'utilisation d'une petite routine assembleur partir du Basic. Son action principale est de prsenter alternativement deux dessins en HGR pralablement chargs. Voici sa structure principale: 1 - charger la premire image 2 - charger la deuxime image 3 - rpter la routine 4 - arrt en tapant une touche routine ------- a - mettre en haute rsolution $C057 b - mettre en graphiquArt.Toolbox3: Troisime volet des principes qui rgissent la programmation de l'interface Apple. Chapitre 3 ---------- Les lments graphiques de la programmation ------------------------------------------- Sur l'cran (le bureau), on voit trois lments de base : les menus, les icnes et le fentres. 3.1 Les menus .0123456789:;<=>?@ABC --------------- La partie menu comprend la barre de menus qui affiche les titres des menus. Chacun de ces menus n'est visible que si on le droule en cliquant sur son titre. La barre de menus est propre chaque programme ou application. Les titres sont crits en gnral avec des noms alors que le contenu du menu sera exprim avec des verbes ou des adjectifs. Les noms d'un menu peuvent apparatre en caractres standarts, mais aussi en caractres gras, en italique, en relief, souligns ou ombrs. Dans certains cas, ils peuvent prendre une toute autre forme, des rectangles de couleur dans le menu Color de GS/OS par exemple. Pour placer les items ou options dans le menu, on les range du plus utilis en haut au moins utilis en bas. Dans le menu Fichier, ouvrir est en haut quitter en bas. Les items peuvent tre groups par famille et spar des autres par un trait. Un menu ou un item indisponible un moment apparat en gris. Lorsqu'on choisit une option ou un menu, celui-ci doit passer en vido inverse (highlight). Lorsqu'on opre un choix dans un menu liste, celui des caractres par exemple, une marque doit s'inscrire gauche de l'lment choisi. Dans certaines applications o le travail au clavier est trs frquent, pour viter le recours la souris, il existe des raccourcis au clavier. Ce raccourci clavier est inscrit droite de l'item pour lequel il fait la mme action. Voici ceux prconiss et utiliss dans diffrents menus de diffrentes applications. Attention aux coexistences impossibles si on les met tous, le pomme-I pour lire les informations ou mettre en italique une fonte: Dans le menu Pomme Touche pomme-? Aide Dans le menu Fichier Touche pomme-N Nouveau Touche pomme-O Ouvrir Touche pomme-W Fermer Touche pomme-S Enregistrer Touche pomme-I Lire les informations Touche pomme-D Dupliquer Touche pomme-E Ejecter Touche pomme-Q Quitter Dans le menu Edition Touche pomme-Z Annuler Touche pomme-X Couper Touche pomme-C Copier Touche pomme-V Coller Dans le menu Rangement (du Finder) Touche pomme-A Tout slectionner Touche pomme-R Supprimer Touche pomme-T Vider la corbeille Dans le menu Style Touche pomme-P Standart Touche pomme-B Gras Touche pomme-I Italique Touche pomme-U Soulign Il existe une opration clavier qui n'a pas d'quivalent au menu. Presser la touche Esc pour interrompre une opration. Certains menus sont communs pratiquement toutes les applications et toujours rangs dans cet ordre: Menu Pomme, Menu Fichier, Menu Edition, menus particuliers l'application. ( NB :Les items de ces menus seront donns de haut en bas) Le menu Pomme: ( Apple Menu) -------------- A propos ...( About) --> ouvre une bote de dialogue avec le nom, la version, le copyright du programme et aussi d'autres choses souhaites par le programmeur. Aide ( Help) --> ouvre une bote de dialogue contenant toutes les informations que le programmeur veut fournir l'utilisateur concernant l'usage du logiciel. Et en dessous spars par un trait, on va trouver la liste de tous les Nouveaux Accessoires de bureau ( NDA) contenus dans le fichier Desk Access du Systme. Le menu Fichier: ( File Menu) --------------- Nouveau (New) --> ouvre un nouveau document, nomm Sans Titre (Untitled) pour l'application en cours. L 'item Nouveau est mis en gris ( Disable) lorsque le nombre maximum de documents ouverts en mme temps accept par l'application est atteint. Ouvrir (Open) --> ouvre un document dj existant. Pour choisir celui-ci, une bote de dialogue est ouverte. Cette bote de dialogue affiche le nom du volume et une liste de tous les documents et dossiers disponibles. Le programmeur peut choisir de n'afficher que les documents utilisables ou de mettre en gris ceux qui ne le sont pas. Il doit penser toujours laisser l'accs aux diffrents sous-catalogues et permettre l'ouverture de ceux-ci pour pouvoir accder aux documents qu'ils pourraient contenir. De plus il est utile de pouvoir changer de lecteur pour pouvoir aller chercher un document sur un autre disque. Dans la partie haute de la bote de dialogue on peut avoir une phrase du type: Choisissez un document. Fermer ( Close) --> utilis pour fermer la fentre active ou un accessoire de bureau. Cet item provoque la mme action que le clic sur la case de fermeture. Si le conte- nu du document de la fentre a chang, une bote de dialogue doit apparatre et proposer de sauver: Oui (Yes) ou non (No) le nouveau contenu ou alors,en cas d'ouverture accidentelle due un clic malheureux de fermer la bote et de garder la fentre ouverte: Annuler (Cancel). Enregistrer (Save) --> s'il s'agit d'un document dj enregistr, la mise jour est immdiate. S'il s'agit d'enregistrer un document sans titre, une fentre de dialogue de type Enregistrer sous... ( Save As) doit apparatre et permettre l'utilisateur de donner un nom au document. Si lors d'une sauvegarde d'un document dj enregistr, le disque n'a plus de place, l'application doit proposer l'utilisation de l'option Enregistrer Sous par le biais d'une fentre d'alerte. Enregistrer Sous (Save As) --> permet de copier un document sous un autre nom, dans un autre dossier, sur un autre disque. Version enregistre (Revert) --> ouvre une bote d'alerte qui permet de remettre dans la fentre active la dernire version enregistre du document. Selecteur d'imprimante --> ouvre une bote de dialogue permettant de choisir le port : Appletalk, modem ou printer et le type d'imprimante ImageWriter ou LaserWriter. Format d'impression (Page Setup) --> ouvre une bote de dialogue qui permet de choisir la taille de la feuille, l'orientation de l'impression ainsi que certains effets spciaux dfinis par le programmeur: rduction 50%, pas de saut de page ... Imprimer (Print) --> ouvre une bote de dialogue ou l'utilisateur choisit la qualit d'impression, le nombre de copies et le mode d'insertion du papier, continu ou feuille feuille. Quitter (Quit) --> cette option permet de quitter l'application est de retourner sous le Finder. Si des documents sont ouverts sur le bureau lors de la slection de cet item, une bote d'alerte doit s'ouvrir et proposer de sauver ou non les modi- fications des documents changs depuis leur ouverture et cela pour chacun. Le menu Edition : ( Edit Menu) --------------- Trois parties dans ce menu : la possibilit d'annuler, les actions de manipulation des contenus du document et le presse-papier. Annuler (Undo) --> supprime la dernire opration et remet le document dans l'tat o il tait avant celle-ci. l'quivalent clavier pomme-Z lui est exclusivement rserv. Couper (Cut) --> coupe ou enlve du document la partie slectionne.Cette partie peut peut tre replace ailleurs par l'action Coller. l'quivalent clavier pomme-X lui est exclusivement rserv. Copier (Copy) --> permet de dupliquer la partie slectionne et de la replacer ailleurs par l'action Coller. l'quivalent clavier pomme-C lui est exclusivement rserv. Coller ( Paste) --> place droite du curseur la partie prcdemment coupe ou copie. L'quivalent clavier pomme-V lui est exclusivement rserv. Effacer (Clear) --> efface la partie slectionne sans la mettre dans le presse-papiers. Afficher le Presse-papiers (Show Clipboard) --> permet d'ouvrir la fentre du presse- papiers. Lorsqu'elle est ouverte l'option au menu est renomme, Masquer le Presse- papiers( Hide Clipboard). 3.2 Les icnes ---------------- Pour reprsenter les disques, les applications, les dossiers, les documents, la poubelle, on utilise des dessins appels icnes. Ces icnes peuvent se dplacer sur l'cran l'aide de la souris. Le Finder du systme donne les icnes de base, on peut fabriquer ses propres icnes, mais faites bien attention de conserver une parent entre vos icnes et ceux du Finder, afin que l'utilisateur n'ait pas chercher leur signification. La comprhension du sens d'un icne doit tre immdiate. 3.3 Les fentres ------------------ Il existe trois grandes sortes de fentres: les fentres d'alerte ( Alert window), les fentres de dialogue ( Dialog window) et les fentres pour documents (texte ou dessin) ( Document windows). La fentre d'alerte et une fentre sans barre de titre qui prvient l'utilisateur l'occasion d'une situation inhabituelle. La fentre de dialogue permet au programme de faire prciser certaines options et/ou d'ajouter certaines choses avant qu'une commande soit excute. A l'intrieur des fentres d'alerte et de dialogue, on peut mettre autre chose que du texte. On peut avoir des dessins ( Pictures), des icnes et des contrles. Les contrles de base sont les boutons ( Button), les cases cocher ( Check Boxes), les boutons radios (Radio buttons) et les barres de dfilement ( Scroll Bars). On peut dfinir ses propres contrles. Les fentres pour documents peuvent avoir des lments varis. La plus complte possde: une barre de titre (Title Bar), une zone d'information, une barre de dfilement vertical,une barre de dfilement horizontal, une case de zoom, une case de contrle de taille (Size Box) et une case de fermeture ( Close Box). #gZART.ASS3< ART.TOOLBOX3Lb5ICONS-<GSINFOS| COUVERTURE.35 UTILITAIRES PROGRAMMES5| EXERCICESARTICLESArticle: Art.Compta Essai partir d'un logiciel prt par la socit Brjoux.AE Essai du logiciel de comptabilit: COMPTA.BJX , diteur BREJOUX.AE ------------------------------------------------------------------- Une comptabilit gnrale pour l'Apple II conforme au nouveau plan comptable vient de paratre enfin. Elle est dite par la socit BREJOUX.AE, nous la devons Jean Luc Besnard et Herv Caminati avec la participation de Alan Bird, Glen Bredon, Yvan Koenig et Andr KrzelFHIJKLMNOPQRSj. Cette comptabilit fonctionne sur Apple IIe,IIC et IIgs. Pour la gamme IIe et IIc, pour utiliser pleinement ce logiciel, il faut disposer d'un unidisk 3,5 et d'une mmoire tendue 1 Mga. A la rception, le logiciel comprend une disquette 3,5p non protge contre la copie et un manuel d'utilisation de 25 pages. Le manuel peut paratre court aux personnes habitues aux monstres de plusieurs centaines de pages, mais l'essentiel y est expliqu de faon claire et concise. Installation ------------ Vous tes d'abord invit faire une copie de votre original et ranger celui-ci en lieu sr. Excellente initiative, le programme de copie est sur la disquette. Il servira aussi faire des copies du disque de travail, aprs chaque saisie d'critures. le logiciel n'tant pas protg contre la copie son installation sur un disque dur ne pose aucun problme. Vue gnrale ------------ Cette comptabilit est complte. Elle permet toutes les tapes: l'initialisation, la cration des comptes, les journaux, le brouillard, la balance, le grand livre, la clture. Elle se prsente en mode texte, ce qui dans ce cas n'est pas un inconvnient mais un gage de rapidit et de portabilit, elle s'adresse en effet tout le monde Apple II. Utilisation ----------- Les premiers pas sont guids et une aide permanente est fournie l'utilisateur en haut de l'cran. Le bas de l'cran est rserv au dialogue avec le logiciel. La saisie de toute entre est trs bien contrle et le logiciel bien protg contre les fausses manoeuvres, mme le Control Reset. A la mise en route, copie faite, le programme vous propose 263 comptes dans un plan comptable dj intgr. Vous pouvez accepter ces comptes ou choisir ceux que vous voulez. Puis vient la phase d'initialisation. La premire chose faire est d'entrer la date, puis la raison sociale ou le nom de l'utilisateur de la comptabilit. A ce moment l, le menu principal apparat proposant 5 options: Enregistrement, Edition, Cration, Clture et Utilitaires. L'option cration et ouvrir permet l'utilisateur de crer les comptes qui lui sont particuliers. Le numro d'un compte 6 chiffres et peut comprendre jusqu' 30 caractres. Il est possible de supprimer un compte ou de modifier son nom. On peut lister les comptes sur cran et sur imprimante. L'option cration d'un journal permet d'ouvrir jusqu' 20 journaux divisionnaires. Les journaux devant tre imprims chaque mois, il ne faut crer que ceux strictement utiles. Ces journaux peuvent tre de trois types: contrepartie unique automatique, contreparties multiples, contrepartie libre. Un journal ne peut tre supprim qu' une seule condition, tre le dernier et ne pas contenir d'critures. On peut lister les journaux, on obtient alors le numro du journal, son libell, les numros des comptes de contrepartie et leur intitul. Il est possible d'annuler une pice comptable en contrepassant l'criture errone et en la remplaant par la bonne. Enregistrement -------------- Le nom de la pice, pour l'identification peut avoir 5 caractres, le libell 24. Les valeurs au dbit ou crdit jusqu' 12 chiffres significatifs. Chaque entre n'est valide qu'aprs l'accord de l'utilisateur. On ne peut sortir du journal dans lequel on enregistre qu'une fois que l'galit crdit et dbit est ralise. Les oprations de tri et de classement des critures se font automatiquement lors du retour au menu principal. Edition ------- L'dition peut se faire soit sur l'cran, soit sur papier. Sur l'cran, on peut lister les comptes, les journaux, 11 lignes par 11 lignes avec toutes les facilits de dplace- ment, on peut aussi consulter la balance. Sur papier, on peut imprimer les comptes en format compress, les journaux sur une priode de un mois. La balance n'importe quelle date postrieure la dernire clture. L'dition du grand livre, mme partielle ne peut se faire que sur papier. Le programme assure un assemblage chronologique des pages d'un mme compte. Pour l'dition des journaux, de la balance, des comptes et du grand livre, le programme prend par dfaut les paramtres de l'imprimante ImageWriter d'Apple. On peut donner ses propres codes de commande en passant par le menu des utilitaires. Clture ------- Seule la clture annuelle est une opration obligatoire, mais pour viter d'avoir toutes les critures sur le disque, aprs avoir dit sur papier, les journaux mensuels, la balance et le grand livre, vous pourrez faire une clture priodique. Le programme procde alors une mise jour des numros de page de chacun des comptes, pour le classement dans le grand livre. Le changement d'exercice est gr directement par le programme. Sauvegarde ---------- Il suffit d'utiliser le programme de copie prsent sur la disquette. Utilitaires ----------- On peut limiter l'accs tout ou partie de la comptabilit en fournissant aux utilisateurs une cl d'accs 5 caractres. La comptabilit peut exporter ses fichiers au format DIF vers tout logiciel capable de rcuprer ce format. Les fichiers exportables sont de quatre types: les fichiers du plan comptable, les fichiers des critures, le fichier de balance des comptes et les fichiers des soldes par groupe de comptes. Compacte,4500 critures, 1000 comptes tiennent programme compris, sur une disquette 800K. Compta.BJX est un produit professionnel qui comble un vide dans le monde Apple II un prix Atari. Copie en RAM Disk, elle se rvle beaucoup plus rapide qu'une des comptabilits les plus clbres pour MAC II.Cette comptabilit franaise conforme au plan comptable peut rendre de grands services aux petites et moyennes entreprises et ceci pour un prix de 2000 F TTC. Elle est vendue par BREJOUX.AE 29, rue de Montribloud 69009 LYON Tel 78 36 52 69 NDLR: Information du 30/04/89: cette comptArt.Driver: un envoi de B.Tomeno Ce jour j'ai test divers mode d'impression en comparant vitesse et qualit propos d'un texte de 500 mots rpartis sur 35 lignes pleines , sans lignes vides ni espaces morts soit environ 2800 caractres en une page . J'ai attribu une note sur 20 chaque preuve-papier surtout pour mettre en vidence la quasi-egalit de rsultat de certains choix . Je n'ai volontairement pas test les options de qualit-brouillon (draft) . Sous GSOS il n'y a pratiquement pas de diffTVWXYrences selon le pgm utilis: Multiscribe , GSworks , DeluxeWrite . J'ai partout utilis la Font GENEVA.12 ( en ayant GENEVA.24 en ligne ) en style standart ( ni Bold , ni Shadow...ni couleur ) et en cochant toujours l'option CONDENSED . Voici les rsultats 1) En tte question qualit (20/20) le driver Black en White de STYLEWARE ( Multiscribe ) utilis en Best Quality + option Darker , mais en 8 min 30 2) En deuxime position et galit de rsultat (18/20) -driver styleware black/white en Best + non-dark et en 5 min -driver du GSOS en Bettertext + Color en 8 min 30 -driver du GSOS en Bettertext sans Color en 8 min 30 3) Puis TIMEOUT SUPERFONTS avec option Qualit suprieure qui on peut donner 17/20 en 6 min 4) Driver STYLEWARE black/white option FAST + dark avec 15/20 en 3 min 30 5) Driver STYLEWARE black/white option FAST + non-dark avec 13/20 en 2 min 6) Enfin on trouve a galit (13/20) -Driver GSOS BetterColor , optionColor en 3 min 30 -Driver GSOS BetterColor , sans optionCOLOR , en 3 min 30 -Timeout SuperFonts option qualit normale en 1 min 40 Vous aurez not qu'avec les drivers GSOS il n'y a pas de diffrence si on choisit Color ou Pas-Color mais que le temps chute d'un bon tiers avec les drivers Styleware selon qu'on prend ou pas Dark Ma conclusion -Si vous n'tes pas press ( 8 min 30 ) et que vous voulez du trs beau travail : driver Styleware + BEST + DARKER -Pour un boulot un peu moins soign , soit le mme avec non-dark ( 5 min ) , soit Timeout en qualit suprieure ( 6 min ) -Pour un travail moyen soit le driver Styleware + Fast ( avec dark 3 min 30 , sans dark 2 min ) -Si vous tes press et pas trop exigeant Timeout qualite normal en 1 min 40 Art.Gsinfboot: une contribution de Dominique DELEHAYE Voici le listing du programme de boot pour GSinfos. Les disks de GSinfos n'ayant pas de systme, le programme de boot normalement install sur les blocs 0 et 1 n'est d'aucune utilit, si ce n'est d'afficher le pauvre message "UNABLE TO LOAD PRODOS", ce qui, vous l'avouerez, n'est pas spcialement accueillant pour la personne qui dmarre GSinfos pour la premiere fois ou par mgarde... Je vous propose donc un petit programme, qui, install la pZ\]^_`abcdefghijknlace du boot normal, jecte la disquette, affiche une page graphique vous invitant insrer un disk contenant le systme, et redmarre celui ci ds qu'il est dans le drive; ainsi en cas d'erreur,il vous suffit de mettre une autre disquette pour pouvoir continuer, sans avoir taper sur aucune touche... La page graphique affiche n'est bien sr pas trs riche, car tout le dessin doit tenir sur moins de 0,7K ,ce qui fait partie mme de l'intrt du programme, puisqu'il ne prend ainsi aucun bloc supplmentaire sur le disk... voici donc le listing de ce programme (crit avec le mini-assembleur et sous moniteur) : 801: LDA #A1 ;cran SHGR et linarisation de STA C029 ;la mmoire d'cran. LDA #06 ;couleur du bord STA C034 ;en bleu moyen JSR C50D ;appel au port intelligent 01 ;n de la commande (1=lecture) 13 08 ;adresse des paramtres(813) BRA 81A ;saut la suite du programme 813: 03 ;nombre de paramtres 01 ;n du drive 00 0A ;adresse de stockage (A00) 01 00 00 ;n du bloc lire (bloc 1) 81A: JSR C50D ;appel au port intelligent 04 ;n de commande (control call) 22 08 ;adresse des paramtres(822) BRA 827 ;saut la suite 822: 03 ;nbre de parametres... 01 ;n du drive 00 00 ;liste et code de contrle pour 04 ;jecter le disk (BEUARK!) 827: CLC ;retenue 0 XCE ;e 0 = mode natif REP #10 ;A sur 8 bits ,X et Y sur 16 bits LDA #44 ;Dans A, couleur 4(=bleu moyen) LDX #7D00 ;Dans X,nombre d'octets de l'cran 830: STA E11FFF,X ;puis on met tout l'cran la DEX ;couleur 4 avec une boucle BNE 0830 ;on continue si tout est color LDA #00 ;une autre boucle LDX #0300 ;pour mettre 0 toutes les SCB 83C: STA E19CFF,X ;ainsi que toutes les pallettes DEX ;par scurit BNE 083C ;on continue si tout est fini LDX #001C ;nbr d'octets de la palette 846: LDA 092C,X ;on transfre la palette STA E19E01,X ;dans le banc E1 avec une DEX ;boucle. (palette n[0) BNE 0846 ;bon ben vous connaissez... 850: LDX #000F ;nbr d'octets par ligne de dessin 853: LDA 094D,X ;on transfre une ligne 856: STA E129A7,X ;sur l'cran DEX ;avec une boucle BNE 0853 ;encore... REP #20 ;A sur 16bits (donc natif pur) LDA 0854 ;Puis on change la ligne CLC ; transfrer ADC #000F ;en modifiant les adresses STA 0854 ;voil... LDA 0857 ;idem pour l'adresse du CLC ;transfert:on passe la ligne ADC #00A0 ;suivante en changeant l'adresse STA 0857 ;de destination... CMP #3267 ;toutes les lignes transferes? SEP #20 ;mode mixte(A=8 bits,XY sur 16) BEQ 087C ;si c'est fini on continue BRA 850 ;sinon transfert d'une autre ligne 87C: LDX #0060 ;cette fois:autre dessin (texte) 87F: LDA 0A1F,X ;transfert d'une ligne 882: STA E148C0,X ;dans page graphique DEX ;avec une boucle... BNE 087F ;... REP #20 ;natif pur LDA 0880 ;on change de ligne CLC ;en changeant les adresses ADC #0060 ;enfin c'est la mme chose STA 0880 ;que pour l'autre dessin LDA 0883 ;donc... CLC ; ADC #00A0 ; STA 0883 ; CMP #4BE0 ;tout transfert? SEP #20 ;mixte (A=8bits,XY=16) BEQ 08A8 ;si fini alors on saute BRA 087C ;sinon on recommence... 8A8: LDA #00 ;ici,on va tracer deux lignes LDX #0060 ;noires de 60 octets 8AD: STA E14780,X ;pour finir le dessin STA E14C80,X ;on trace les 2 en mme temps DEX ;boucle... BNE 08AD ;... LDX #0060 ;on trace deux autres traits LDA #11 ;de couleur 1 8BD: STA E14820,X ;voir au dessus STA E14BE0,X ;c'est pareil DEX ;... BNE 08BD ;... LDA #01 ;cette fois on trace STA E14821 ;2 points (un octet) STA E14BE1 ;4 points LDA #10 STA E14880 ;6 points STA E14C40 ;et 8 points. LDX #01FF ;maintenant on va faire 8DF: TXY ;du bruit BIT C030 ;on adresse le haut parleur 8E3: DEY ;boucle de frquence BNE 08E3 ; la faon //e DEX ;boucle de dure BNE 8DF ;dure diminue=>frq. augmente 8E9: SEP #10 ;A X Y sur 8 bits JSR C50D ;appel au port intelligent 00 ;n de l'appel(status call) F3 08 ;adresse des parametres(8F3) BRA 8F8 ;on saute la suite 8F3: 03 ;nbre de paramtres 01 ;n du drive FA 00 ;adresse de stockage(0FA) 00 ;status code 8F8: LDA FA ;on charge le resultat dans A AND #10 ;disk dans drive? (bit 4) BNE 919 ;si oui on saute la fin LDA E19E0E ;ici,on agit sur la palette ADC #01 ;en incrmentant l'octet du vert STA E19E0E ;et bleu de la couleur des lettres CLC ;nettoyage:on annule la retenue REP #10 ;X Y sur 16 bits LDY #2FFF ;ici: double boucle pour perdre du 90E: LDX #FFFF ;temps entre 2 appels au smartport 911: DEX ;et changement de couleur (si les BNE 0911 ;appels au smartport ne sont pas DEY ;assez espacs,a fait encore plus BNE 090E ;de bruit,et la LED reste allume. BRA 08E9 ;et on recommence! 919: JSR FC58 ;HOME (cran texte effac) LDA #41 ;on va passer en cran texte STA C029 ;c'est fait... STZ 03F4 ;octet dcisif du dmarrage JMP FA62 ;( 0=> froid) et on reboot! Et c'est tout! simple,non? enfin a demande quand mme un certain travail de mise au point... Voil, maintemant vous avez tous les lements pour modifier ce boot et le personnaliser (vous pouvez par exemple modifier les dessins, etc...) Il reste quelques octets de libres (6 en 927 92C et 5 en 949 94D) dans lesquels j'ai marqu mon nom, et on peut encore en rcuperer en modifiant lgrement le programme, libre vous donc de le faire (mais respectez quand mme les droits d'auteur...). Je vous proposerai prochainement un autre boot dans un tout autre genre, il est encore en cours de mise au point... sur ce amusez vous bien, longue vie au GS club et au 2GS!!! Dominique. (le 27 mars 89) REFERENCE: Clefs pour APPLE IIGS (N.Breaud-Pouliquen) et une partie du FIRMWARE doc developpeur REMARQUE: ce programme est crit la faon 2e ,ainsi je ne me sers que du smartport, et il n'y a pas d'appel d'autres outils en ROM (car je ne les connais pas suffisamment, j'attends d'apprendre les utiliser grace GSinfos...), je ne sais pas si j'aurais pu gagner de la place en utilisant d'autres tools, mais enfin le programme marche trs bien comme a, alors... NDLR: Pour utiliser son programme, D.DGS.BOOTDu' ' 'EJECTm}0! }1lFINDER.DATAo l+GSINFOSBOOT{$!} lBIP#}5!f}lCLOCK.V1.2|6!| lSTARTUP,|0!|lSUB.INSTALL1{!{!l)INSTALLERz{ !}:l/GSINFOSBOOTV1.2%{.!{/l  `elehaye a crit un programme Basic nomm Installer. Vous trouverez la totalit de l'envoi de notre membre dans le sous-dossier GSBOOT du dossier PROGRAMMES de GSINF3. Dont l'article original au format traitement de texte Appleworks 1.4.w:2<GSINFOSBOOTV1.2 INSTALLER SUB.INSTALL4<STARTUP4 CLOCK.V1.24zBIPf GSINFOSBOOT4EJECT)mr/> DESK.EDITOR CHEAPPAINTT GRIBOUILLE<GS.BOOTD qstuvwxyz{|}~ 33333333333333333333333333333333333333333333333 33333333333333333333333333333333333333333333333 33333333333333333333333333333333333333333333333 33333333333333333333333333333333333333333333333 33<333 33<333 33< 333 33< 333 33< 333 33< 333 333< 333 33< 333 33< 333 33<333 33<333 33<333 33< 333 33< 333 33< 333 33< 333 33< 333 33< 333 33< 333 33< 333 33<333 33<333 33<333 33< 333 33< 333 33< 333 33< 333 33< 333 33< 333 33< 333 33<333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 )4   "D}, M ) TiTWiWg2 Ԣ` H i`iK ԩ`GៀL` HK!HKH@L,0 )i/ XA)Lb +)D\]g_ ?/"p@͸  ɜUUɛ`ff  ܪ330 ˩pʙpwpwʙpppwp˩ppppww̺p&Xb0qqwqqwqwqwwqwqwwwwwwwqwqqwqwwwqwwqwqwwqwqqwwwwwqwwqqqqqqqqqqqwqqqqqqqqqwqqqqqqqwqqwqwwqwqwqwwqwqwwwwwqqwqqwwqqwwwqwqwqqwwqqqqqqqqqwqqqqqqqqqwqqqqqqqqqqwwwwqwwqwwwqwwqqwwwwqwqwqqqwqqwwwqwqwwqqq<<,0:<`_qZ_h)H("8ɍ`ZA ress F _ZLLLLLLLLLLLLLLLLLL_͠  :(1:"BASIC SYSTEM MODIFIE"616369,0I(5:(4);"CAT"220:"LA MODIF C'EST LE : D POUR DIRECTORY":20:22::"XY":721:"TOUS PROGRAMMES DE CE DISK (SAUF BASIC.SYSTEM) SONT FAIT PAR DOM."<(4);"BLOAD CLOCK.V1.2" F1013,76:1014,248:1015,02" P760* d:A Ņ%A Ņ`PP  :010:"BOOT INSTALLER V 0.11"6S23:25:" Gardaal (89)"q(4);"BLOAD SUB.INSTALL" (4);"BLOAD BIP"#(4);"BLOAD EJECT"((4);"BLOAD GSINFOSBOOT")5990*8192-254,0:255,0 210:"INSERER LE DISK A MODIFIER...": 7"NE PAS OUBLIER D'ENLEVER LA PROTECTION"H <"OK?";A$Q F768^ PB(254)k ZC(255)} _B0C01200 dB43300 iB47350 nB39400 xC39450 {500 }13:"Autre disk? ";D$ D$"O"45 D$"OUI"45 :"AU REVOIR..." 6 ,19:" Et la protection!!!"@ 15990J 68192\ @" BEUAARK!"f J1000 ^19:"Heu...ca serait mieux avec un disk dans le drive..." c5990 h1000 19:"Erreur bloc 0" 5990 C39435 "-->Mauvais bloc 0!" 1000) "Erreur bloc 1 itou!"D "Disk non format{???"N 8192X 1000q 19:"Erreur bloc 1"{ 5990 "-->Mauvais bloc 1!" 1000 19:" Erreur non reconnue!!":"Veuillez verifier le disk." 5990 8192 1000J Z13500:Z:G1222:G:" ":GS 125x 19:"C'est OK mec!":8192:1000O=====!====!====!====!====!====!====!====!====!====!====!====!====!====!====!===~4 7 Voici le listing du programme de boot pour GSinfos.>< Les disks de GSinfos n'ayant pas de systeme, le programme :8de boot normalement install{ sur les blocs 0 et 1 n'est =;d'aucune utilit{, si ce n'est d'afficher le pauvre message ><"UNABLE TO LOAD PRODOS", ce qui, vous l'avouerez, n'est pas 86sp{cialement accueillant pour la personne qui demarre 1GSinfos pour la premiere fois ou par m{garde...?= Je vous propose donc un petit programme, qui, install{ a la > LDX #7D00 ;Dans X,nombre d'octets de l'{cran;830: STA E11FFF,X ;puis on met tout l'{cran @ la 6 DEX ;couleur 4 avec une boucle; BNE 0830 ;on continue si tout est color{- LDA #00 ;une autre boucle; LDX #0300 ;pour mettre a 0 toutes les SCB:83C: STA E19CFF,X ;ainsi que toutes les palletes) DEX ;par s{curit{9 BNE 083C ;on continue si tout est fini7 LDX #001C ;nbr d'octets de la palette4846: LDA 092C,X ;on transf}re la palette5 STA E19E01,X ;dans le banc E1 avec une5 DEX ;boucle. (palette n[0)7 BNE 0846 ;bon ben vous connaissez...=850: LDX #000F ;nbr d'octets par ligne de dessin3853: LDA 094D,X ;on transf}re une ligne(856: STA E129A7,X ;sur l'{cran, DEX ;avec une boucle& BNE 0853 ;encore...: REP #20 ;A sur 16bits (donc natif pur)5 LDA 0854 ;Puis on change la ligne ) CLC ;@ transferer6 ADC #000F ;en modifiant les adresses% STA 0854 ;voil@...4 LDA 0857 ;idem pour l'adresse du : CLC ;transfere:on passe @ la ligne< ADC #00A0 ;suivante en changeant l'adresse. STA 0857 ;de destination...; CMP #3267 ;toutes les lignes transfer{es?; SEP #20 ;mode mixte(A=8 bits,XY sur 16)6 BEQ 087C ;si c'est fini on continue> BRA 850 ;sinon transfert d'une autre ligne<87C: LDX #0060 ;cette fois:autre dessin (texte)287F: LDA 0A1F,X ;transfert d'une ligne0882: STA E148C0,X ;dans page graphique/ DEX ;avec une boucle... BNE 087F ;...& REP #20 ;natif pur/ LDA 0880 ;on change de ligne6 CLC ;en changeant les adresses6 ADC #0060 ;enfin c'est la meme chose4 STA 0880 ;que pour l'autre dessin$ LDA 0883 ;donc... CLC ; ADC #00A0 ; STA 0883 ;, CMP #4BE0 ;tout transfer{?2 SEP #20 ;mixte (A=8bits,XY=16)3 BEQ 08A8 ;si fini alors on saute3 BRA 087C ;sinon on recommence...98A8: LDA #00 ;ici,on va tracer deux lignes0 LDX #0060 ;noires de 60 octets18AD: STA E14780,X ;pour finir le dessin9 STA E14C80,X ;on trace les 2 en meme temps& DEX ;boucle... BNE 08AD ;...8 LDX #0060 ;on trace deux autres traits) LDA #11 ;de couleur 1+8BD: STA E14820,X ;voir au dessus) STA E14BE0,X ;c'est pareil DEX ;... BNE 08BD ;...1 LDA #01 ;cette fois on trace 0 STA E14821 ;2 points (un octet)% STA E14BE1 ;4 points LDA #10% STA E14880 ;6 points) STA E14C40 ;et 8 points.9 LDX #01FF ;maintenant on va faire P98DF: TXY ;du bruit O9 BIT C030 ;on adresse le haut parleur U98E3: DEY ;boucle de fr{quence E9 BNE 08E3 ;@ la fa\on //e T9 DEX ;boucle de dur{e !: BNE 8DF ;dur{e diminue=>fr{q. augmente.8E9: SEP #10 ;A X Y sur 8 bits6 JSR C50D ;appel au port intelligent7 00 ;n[ de l'appel(status call)8 F3 08 ;adresse des param}tres(8F3)0 BRA 8F8 ;on saute @ la suite/8F3: 03 ;nbre de param}tres( 01 ;n[ du drive5 FA 00 ;adresse de stockage(0FA)( 00 ;status code98F8: LDA FA ;on charge le r{sultat dans A5 AND #10 ;disk dans drive? (bit 4)5 BNE 919 ;si oui on saute @ la fin7 LDA E19E0E ;ici,on agit sur la palette< ADC #01 ;en incrementant l'octet du vert@> STA E19E0E ;et bleu de la couleur des lettres : CLC ;n{toyage:on annule la retenue, REP #10 ;X Y sur 16 bits> LDY #2FFF ;ici: double boucle pour perdre du>90E: LDX #FFFF ;temps entre 2 appels au smartport=911: DEX ;et changement de couleur (si les= BNE 0911 ;appels au smartport ne sont pas > DEY ;assez espac{s,ca fait encore plus> BNE 090E ;de bruit,et la LED reste allum{e.. BRA 08E9 ;et on recommence!6919: JSR FC58 ;HOME (ecran texte effac{)8 LDA #41 ;on va passer en {cran texte* STA C029 ;c'est fait...7 STZ 03F4 ;octet d{cisif du d{marrage9 JMP FA62 ;(@ 0=>@ froid) et on reboot!<:Et c'est tout! simple,non? enfin \a demande quand meme un %certain travail de mise au point...>^ ,@ main ^ """") ;8[il"H"hHHH "hHH"iHH"F:"""DD"d:"" moqsuwy{d}dddd  "S," :"" ""{imH"H"HiH"HiH""iHH"H"HiH""{i+k*/SYSTEM/TOOLSJVous avez un seul lecteur,remettez le disque SYSTEME et appuyez sur retour*/SYSTEM/TOOLS)Dansons la carmagnole, vive le son du GS.1Dansons la carmagnole, vive le son!, vive le son! ;8[imm"S," :""""{i+k/gsinf3/gsinfosX Remettez le disque GsInfo et appuyez sur la touche retour /gsinf3/gsinfos ;8[iH"h{i+k ;8[i d H{iH "h  ̉  {i+;ik ;8[iHH}H "h""""ϭцө{iHJ"{iHJ"{iH{iH"HH"l:""H "h  9"{i+k!Cliquez la souris pour continuer./gsinf3/couverture.3 ;8[i  3" {iH"{iH" e e Q Q A A / /   {iH "{iH" {iH"{iH"v v c c L L 8 8   {iH"{iH""HHH-"hH "HHH-"hH "HHH-"hH "HHH-"hH "HHH-"hH ""H"h*"{i+k!==Rserv aux non-membres \N444.==Desk.Editor\N443==Domaine Public\N442==GSInf.Boot\N441>> Le coin hard et soft \N3==La Toolbox\N414.==Pascal\N413==Assembleur\N412>> Initiation \N2== Cherchez l'erreur!\N511.== Petites annonces\N510== Infos dernires\N509== Courrier\N508== Driver\N507== Compta.BJX\N506== GS trucs et astuces\N505== Envoi d'Y.Koenig \N504== Transwarp GS \N503== Editorial\N502>> Sommaire \N5== Quitter\N411*Qq.== Imprimer un article\N401>> Fichier \N12>>@\N0X==A propos de GS Infos...\N400==-\N401D. ;8[i """"""""""""H""{i+k ;8[i{iH(XJ"HH{iH "h"{iHhn}J"{iH IIH """ :""":""""F:""""i:""s:"""2:"MM"Z:"  "Fi:""s:""}:"":""H"h "{i+kFCertains portions of this software are copyrighted by TML Systems,Inc.(c)-1987 TML Systems,Inc. D.Melchior GSclub-94CMaintenez le bouton de la souris enfonc et appuyez sur une touche.IDelehaye Dominique,Koenig Yvan,Rey Jacques,Tomeno Bernard et Vincent,XterMaquette et Rdacteur en chef:Editeur:&Pour quitter un article avant la fin :Ont particip ce numro :FGS Infos n3,le magazine du GS pour les membres du club exclusivement.Vu ;8[idݭ : i ݢ:"""ɢd,:"" "__"""H"hH "h={iHJ"{iHU" {i+k-Pressez une touche pour continuer la lecture. ;8[iHHH "hۆݩۍݍ" ,"w "N%  "$&(*,.02468:<>@BDFHJLHH "hHH""",:"""uu""""HH "{i+k2Cliquez la souris pour quitter l'article. ;8[i{iH((XdJ"HH{iH "hۆۢ" :"" "||"":"JJ"-:"  "{iH(7J"{iH H "H"hۢ "{i+kVu@Les fichiers sont des fichiers de type texte avec fonte tendue.1Rcuprez le fichier avec un traitement de texte. Vous voulez imprimer un article: ;8[i"!""{i+k Un source comment de D.Delehaye/gsinf3/articles/art.GSinfboot ;8[itt"YY""{i+kLe carnet des applications/gsinf3/articles/art.dompublic ;8[i " ""{i+kune contribution de Tomsoftware/gsinf3/articles/art.Deskeditor ;8[inn"OO""{i+kEssai des drivers d'impression/gsinf3/articles/art.driver ;8[i""{i+k Editorial/gsinf3/articles/art.Editorial ;8[idd"??%""{i+k$Transwarp GS: La carte acclratrice/gsinf3/articles/Art.transwarp ;8[i"""{i+kESSAI Logiciel/gsinf3/articles/art.compta ;8[iEE"**""{i+kLes trucs et astuces du GS/gsinf3/articles/Art.Astuces ;8[i"!""{i+k Initiation au langage assembleur/gsinf3/articles/art.Ass3 ;8[i//"""{i+kL'envoi d'Yvan Koenig/gsinf3/articles/art.y.koenig ;8[i"""{i+kInitiation au langage Pascal/gsinf3/articles/Art.Pascal ;8[i!!"""{i+kLa toolbox : principes de base/gsinf3/articles/Art.Toolbox3 ;8[i"}}""{i+kLes membres nous crivent/gsinf3/articles/Art.Courrier ;8[i  """{i+kLes dernires nouvelles/gsinf3/articles/Art.Dernieres ;8[i{{"hh""{i+kLe prochain numro/gsinf3/articles/Art.Numero3 ;8[i"""{i+kLes petites annonces/gsinf3/articles/Art.Annonces ;8[iaa"WY[]_"{i+k Mea Culpa/gsinf3/articles/Art.Erreurs ;8[i{iH"J"{iHF-F-"{iH--"{iH,,"{iH,,"{i'HB,B,"{iGH,,"{igH++"{iH++"{iH>+>+"{iH**"{iH**"{iH{*{*"{i'H:*:*"{iGH))"{igH))"{iHw)w)"{iH6)6)"{iH(("{iH(("{iHs(s("{i'H2(2("{iGH''"{igH''"{iHo'o'"{iH.'.'"{iH&&"{iH&&"{iHk&k&"{i'H*&*&"{iGH%%"{igH%%"{iHg%g%"{iH&%&%"{iH$$"{iHxJ"HH{iH "hHH"{iHnJ}J"HH{iH $$H "{iHJ"{i{iHH{iHHH """:"$$"U:"$$"i:"$$"":"$$"#:"k$k$"-:"C$C$"7:"$$$$"A:"$$"K:"##"_:"##"s:"##"}:"##":"##"H"hHH "{i+k94120 FONTENAY-SOUS-BOIS6 Impasse la Croix PommierM.MELCHIOR DenisM.MELCHIOR Denis'Puis les suivants, tous les deux mois. !Vous recevrez GS Infos n1,2 et 3des domaines publics gratuits.'Vous bnficierez des services du club,Cotisation 1989 : 360 F.Devenez membre du club! cette adresse:Envoyez un chque l'ordre de:Pour recevoir GSInfoVu@0000000000000000000000000000000000000000000000000000000000000000@0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0@0F000000000000000000000000000000000000000000000000000000000000F0@0F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFFFFF111111F111111FFFFFFF111111FF11FF1111111FF1111111FFF0F0@0F0FFFFFF11111111F111111FFFFFF11FFFFFF11FF11FFF11FF11FFFF11FF0F0@0F0FFFF1111111111F1111111FFFFF11FFFFFF11FF11FFF11FF11FFFF11FF0F0@0F0FFFF1111FF11111F1111111FFFF11FFFFFF11FF11FFF11FF11FFFF11FF0F0@0F0FF11111FFF11111FF111111FFFF111111FF11FF11FFF11FF1111111FFF0F0@0F0FF1111FFFF1111FFFF11111FFFFFFFFFFFF11FFFFFFFFFFF11FFFFFFFF0F0@0F0FF1111FF111111FFFF11111FFFFFFFFFFFF11FFFFFFFFFFF11FFFFFFFF0F0@0F0F11111FF11111FFFFF11111FFFFFFFFFFFF11FFFFFFFFFFF11FFFFFFFF0F0@0F0F11111FFFFFFFFFFF11111FFFFFFFFFFFFF11FFFFFFFFFFFFFFFFFFFFF0F0@0F0F11111FFFFFFFFFF11111FFFFFFFFFFFFFF11FFFFFFFFFFFFFFFFFFFFF0F0@0F0F11111FFFFFFFFF11111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0F11111FFFFFFFFF11111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0F11111FFFF1111F11111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FF1111FFFF1111F11111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FF1111FFFF1111F111111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FF11111FF11111F1111111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFF11111111111FF11111111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFF11111111FFFF1111111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFFFF1111FFF11FF1111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFFFFFFFFFFF1111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFFFFFFFFFFF11111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFFFFFFFFFFF111111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFFFFFFFFFFFF11111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFFFFFFFFFFFFF11111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFFFFFFFFFFFFFF1111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFFFFFFFFFFFFFFFF11FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F000000000000000000000000000000000000000000000000000000000000F0@0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0@0000000000000000000000000000000000000000000000000000000000000000 ;8[iߥF߂")"" "" """""""""""""""ɐhɑgɛfɜiɝhɞgɹfɺeɻdɼcba`_^]\[ZY ,"{i+;ik ;8[i H{iH"hͥ͂ "   {i+k ;8[i"""""""""{i+kH;i{HH ;[ H "H"hHHH "hhH "HHHH "hhe: "kHH ;[HH"HH""" d&y)H "h "Ԣ"""H"8kHH"h"kHH"k0;8 ;[H"h#H({iH "h%)))XHH "h: ) )d   +;i08k"k ;[ 0 1 :T+  ;i k ;[ k l e:e::D+  ;i k ;[   :0 )   h)+H   ;i(k HH;[H"h H "    hh+;ik ;[HH""+;ik ;[0  +  ;i k ;[0  +  ;i k ;[0   +  ;ik ;[  Ȁ +  ;ik ;[  Ȁ +  ;ik ;8 [  d) e )e     ;e i ;[907301 )80'e     +  ;ikHH ;[ d0b) W  gF @ e )e)8 0  ):  +;ik HH;[ F0D @0>)8 04  8 8  e :e   hh+  ;ik H;[d 8 2 )    8 ) h+  ;ik {cH;[hh+hk {cH;[ JJJ -)0 0 0 0 0 0 0  hh+hhk {cH;[  :JJJ 1)0 0 0 0 0 0 0  hh+;ik{cH ;[ +;ik{cH ;[ I7+;ik{cH ;[ 7+;ik ;[   (+;i (k ;[I7   (+;i (k ;[ I7  (+;i (k ;[ jjjjjjjj +;ik ;[JJJ+)0 0 0 0 0 0 0 7    (+;i(k H;[IIʩ FeI+k H;[ I Iʀ f  8 F F I+kcck8k H;[IIIIʀFf ee&IIhhhh+k H;[ I I IIʀ&&ff !  8  FfFfͥ  IIzzzzzz+kIIkIIk##kkCCkIIk8 # zz(k *kJjkjjjk***k;8 ;[  {iH "{iH{i H " +;ik;8 ;[  {iH "{iH{i H " +;ik;8 ;[H({iH "h+;ik;8 ;[H({iH "h)+;ik ;[:"hH "h::H:"+;ik;8 ;[{iH "{iHU""+;ik;8  ;[{i H)" 8   {iHU"+;i k;8 ;[{i H)" 8d  "zH"HHg"h{iH ~"h"+;ik;8 ;[{i H)" 8d  "zH"HHg"h{iH~"h"+;ik ;[) eH0"+;ikHHH ;[ HHHHH &"  Ȁ8: ))e:  +  ;ikHHH ;[H HHH HH '"  Ȁ 8: ))e:  +  ;i k;8% ;[$ &{i$H-H+H{iH "{i$H{iH1H/H "+'+&*;i)k ;[HHH)H ("h +;ik ;[HHHH)H )"h h +;ik;8& ;[.H,H{iH{iH{iH "{iH2H0H "+(,'+;i*kHHH ;[ )f A [8Ai a {8ai 80))  J ) J) +  ;i k""""""""""""""""""""""""""""""""33333333333333333333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUffffffffffffffffffffffffffffffffwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww ;[;8 ")) )))));i+;ik ;[ HH H HHH "+  ;i k ;[;8")) ;i+;ik ;[;8" ;i+;ik ;[;8+" ;i+;ik ;[HHHHHH H$"h hhh+;ik ;[;8 " ;i+  ;ik ;[;8 " ;i+  ;ik ;[;8 " ;i+  ;ikHH;iHHHHHڢ "hhk    hhZ"HHkHHHH "hk ;[  "ኇ+ ;i k   ;[Z z Z"+hhhk . &     ;[Z z Z"+hhk ;[ ڢ "+  ;ik ;[  "+  ;ik   ڢ "+  ;ik ;[ " +hhk;iHHHڢ "ኃhhk ;[d  +hhk ;[ȗȥ @ȩ+hkH "hk ;[ "  +hhkHH "hhkH "hk;iH "hk "  k H H H H "(p0   ;ik;8  ;[dd\:"hi ) A[i     + ;ik;8 ;[$&{iH"` V$&") d d dd{iH"$&{iH"(+$#;i"k;8$ ;[HH,*"hH,*."h222202 2 2 22 2.)dHHH" "h!#%#2%2# {iH" 22+&2%1;i0k;8 ;[$$G$dd{iH"$$$$$ $$ + $#;i"k;8( ;[HH0."h! " "666646 6 6 66 62)AHHH" "h!#!%!'%6'6 66H0.2"h)6)66646 6 6 66 62)_HHH" "h!#!%!'%6'6) {iH" 666dd{iH"+*6)5;i4k;8 ;[  ' dd{iH"   + ;ik;8 ;[$$A${iH"$$HH""+ $#;i"k;8 ;[$& " {iH"+$#;i"k;8 ;[ "{iH"+ ;ikk;8 ;[  < $& d {iH"L  +$#;i"k;8 ;[  < $& d {iH"L  +$#;i"k;8 ;[$$n$HHHH$H " "hh {iH"${iH"{iH"+$#;i"k;8 ;[  2 {iH" H"zz$&+ ;ik ;[) +;ik;8 ;[$$$$$) d {iH"L $+ $#;i"k;8  ;[&&& d {iH"!&&  &!L &+"&!%;i$k ;[) +;ik ;[ HH"+;ik ;[ HH"+;ikHH ;[   ȥ  "+ ;i kHH ;[  )   "+;ikHH ;[    ȯ   ȯ   "+ ;i ktruefalseHHHHH ;[HHHHH &"  Ȁ 8 : ) )e:   "+  ;ikHHHHH ;[HHHH HH '"  Ȁ 8 : ) )e:   "+  ;ik;8) ;[//3 (3*(5 *{i(H9H7H{iH "{i(H{iHHH "5/1"++7*6;i5kHZHH ;[ 80,* )e)     HH"%  ȷ ȷ HH" +kHH ;[   ") "+  ;ikHH ;[   "  ) "+ ;i kHHHH ;[":e   Ȁ :    +  ;ikHH ;[   "%HHeHژ8 ("h "+ ;i kHH ;[   " ,HHHeHژ8 )"hh "+ ;i k;8* ;[0002"LHH{iH{i H{i H "{i H6H4H "02"+,4+3;i*kZHH ;[ "N)   Ș "Ȁػȷ)  Ȁ阠+hhhhkZ ;[ )? HH"% ȷȷ HH"+kZ ;[ ) )   +k;8 ;[d)  : )) H"h{i H)"{i H "H{i H{i HO"h)HH:" HH")j{i H)"H i H:" @HHg"{i HHH H H~"h"H 8 H:"HH "h)5HH "h)!HH ")  "+;ik;8< ;[BB)) H"h{i H)"{i1H "H{i H{i1HO"h)HH:"d{i H)"  i{iHV"᩼ {iHV"᩼ H({iH "hХ ɥ) {iHU" H i H:"႑v8pI9) {i H)"H H"8hH H:" 8 i{iHU"H"  B5 HHg"{i1HHH H H~"h"H 8 H:"Ⴋd;HHH "hhh=H ""h9) 4;Ȅ;  "= "BN&; " " ";;Ȅ;  9 ";f) B +>B=A;i@k;8 ;[d)  : HH " " +;ikprinter: console: keyboard: /i/ j05 @ DOc hZk\nZq\ Z\    DD    q t wz}     \\AT     Z\( +/Z2\G Q TZW\ep s~ Z\  mm     \\AT  %23 8;>APSVuYu\_e72iuluorux{~     C FJU e hku %2   72        $4$'672: = @ C F I L O Re Ue XQ [Q ^A aA d/ g/ j m p s v y $472        $472v v c c L L 8 8    $4 72. 36B S X[g x }          d  n  x                           ;  O  n   I I                        0  3 6 @  M  Z  j  m p z             M M              ' 7 :=G W Z]g x  [az }     __  }; %25 H K  uu    "%(+.147:= @"C$F&I(L*O,R.X0[2^4a6d8g:j<m>p@sBvDyF|HJLNPRTVX         L   % (u+u5 B HLOY \ `k       - 0|3|= J Z ]J`Jj z }       uu7272(u+u.t1t772;>AYDYJ72Nuu7272u!u$n'n-72147O:O@72Duu72uudd72!$'?*?0724uu7272uuEE72 **72ouruux~7272uu//72 72Zu]u`ci72mpsv|72uu!!7272LuOuRU[72_be}h}n72ruu  72727u:u={@{F72JMPhShY72]uu7272uuaa%72)W-0Y47[;>]BE_IL F-F-2@--2@,,2@,,2@B,B, 2@,,2@,+/+22@@+C+F2@T>+W>+Z2@h*k*n2@|**2@{*{*2@:*:*2@))2@))2@w)w)2@6)6)2@( (2@(("2@0s(3s(62@D2(G2(J2@X'['^2@l'o'r2@o'o'2@.'.'2@&&2@&&2@k&k&2@*&*&2@%%2@ % % 2@ g%# g%& 2@4 &%7 &%: 2@H $K $N 2@n         $ $! $! ! ! ! ! !$!$! ! !$!$! ! !$!$" "  " #"$&"$0" @" C"k$F"k$P" `" c"C$f"C$p" " "$$"$$" " "$"$" " "#"#" " "#"#" # #####  # ###&##0# @# C##F##P# a# z# - --^-b-M-----~--. ....?&.-.4. . /^3/ B/-S/^v/!z/v~/}/ / /}////P / / /b0/d0/ /f0/f00Z0 0\00f070^0>0`0U0h0p0\0u0Z00`00^00h00h00h00 10f01b0 1d01 ;1 @1 G1i1J1i1X1 ]1 1 2 2 *2 ?2U2E2V2p22v22<%2]<8i<8@>@%E>E*E@E3E@E8E>EGHq^XH8^Hs^cHs^GIPnI4HIHIPJPJ4HK ^K ^KHKPMP_MPMPMP NP_NPNPNPZOPOPO98PPPPP,QQ,QVQSQSQRQRQRQ RQ RQRQSRSSSSSTOT7T$T8T+T9T7TTYTVlT?WTVT?WTVDUnVsU?WUnVU?WVnV[V?WVVVVWKPW8W%W9W,W:W8WWXXXXXPXyWXY\P\Z] ]^^P^ ^^yW^Z ;[ ):  +;ik;8 ;[    {83|DESSIN24e>4<DESSIN14e> RAYON.PAS PROG1.ASS> ESSAI2.BAS J1/PHRASE$"APPLE II FOR EVER">(I1711_2786J,((PHRASE$,I,1))128i<JJ1oFP"Phrase install{e"n X L`ŠƠɠxrqx|tnrzztnrx{vt{xjbbkw|zpnz|td`an|~upvtd]^m}xrpwuv||xkijw|lZ\drpejlptvrjlnvtwpt|vwxrtvvwxjjXDG_szz|vqnltttpsxz~xvzpdhwurwzrnotrv|tppbXY_qzz|{tkbegstnnh`enyxzxxzv}Art.Courrier: Un long article de R. Le Masne propos de Gribouille et des fichiers de GS Infos --------------------------------------------------------------------------------- M. Le Masne nous crit au sujet de Gribouille, le traitement de textes de Mme Hod, nous explique comment il rcupre les fichiers textes de GS Infos et de Logo, puis pour finir, nous pose quelques questions. Nous avons laiss cet article dans sa version trs originale sous la forme d'un programme Basic. Pour le lire, retournerGH sous le finder, dans le dossier PROGRAMME, ouvrez le sous-dossier GRIBOUILLE et cliquez deux fois sur STARTUP. ----> Les fichiers de type $B3 sont des fichiers de code S16, ce sont des applications Prodos 16 ou GS/OS. On les lance en cliquant deux fois dessus ou il se lance eux mmes s'ils sont installs sur un disque contenant Prodos 16 ou GS/OS. Ceux de type $C1 avec auxtype $0000 sont des fichiers de code PNT, ce sont des fichiers de dessin sauvs sur 32 kiloOctets sans compactage en super haute rGRIBOUILLEu' '  ''STARTUP\(!(GSIF.TXT/,77FINDER.DATAF>   D$(4)D$"PR#3"T"Disquette /GSIF de correspondance avec GS club 94"(11:" (Roger le Masne - 9 avril 1989"-" 63 rue Joseph Bertrand 78220 VIROFLAY)"2::7:"BONJOUR A TOUS"4 <:::"PREMIEREMENT je d{sirerai recevoir la disquette GS.CLUB.10 UTILITAIRES"E F17:"merci"v P:"DEUXIEMEMENT voici quelques recettes" Z:"TROISIEMEMENT voici quelques questions." d:23:15:"t a p e z u n e t o u c h e q u e l c o n q u e ":A$:# n::: !"#$%&'()*+,-:10:25:"les RECETTES d'abord"; x25:" ________" :23:15:"t a p e z u n e t o u c h e q u e l c o n q u e ":A$: 1000 :::10:25:"les QUESTIONS maintenant" 25:" _________"( :23:15:"t a p e z u n e t o u c h e q u e l c o n q u e ":A$:2 2000Q :10:25:"AU REVOIR ..."n :12:40:"... ET MERCI"x 23:~  les recetteso :3:" Je suis un utilisateur forcen{ de GRIBOUILLE. (Je pr{cise que je n'ai aucun int{ret dans la soci{t{ de Madeleine Hod{). C'est un traitement de texte d'un emploi on ne peut plus pratique." :" Outre mon courrier, je l'utilise pour mes tableaux de Multiplan transform{s en texte et qui, ins{r{s dans un autre texte, sont imprim{s @ partir de GRIBOUILLE. " :" J'utilise {galement GRIBOUILLE pour ins{rer dans le texte, avec la fen}tre m{nag{e en n'importe quel emplacement de la page, un graphique r{alis{, par exemple en BASIC (c'est ainsi que j'ai r{alis{ mon ouvrage ";i"'LE LIVRE DES POLYEDRES' de 400 pages et pr}s de 400 figures que GSclub 94 a bien voulu annoncer). -:" J'ajoute que j'ai particip{ @ la r{alisation de la documentation de GRIBOUILLE en {crivant une fiche relative @ l'impression des symboles math{matiques, exposants, indices, fractions";$" (barre de fraction dans l'axe de la ligne et align{e avec les signes +, - ou =) ";7."exposants ou indices au num{rateur ou d{nominateur, signe 'somme' de l'int{grale, etc. Cette fiche figure dans la doc de GRIBOUILLE, y compris le nouveau GRIBOUILLE-GS."8:23:15:"t a p e z u n e t o u c h e q u e l c o n q u e ":A$::QB:3:" Beaucoup des programmes BASIC de mes poly}dres, relativement lourds avec de nombreuses coordonn{es de points assez r{p{titives, ont {t{ {crits avec GRIBOUILLE puis transform{s en BASIC "; L"(routine 'capture'). Le pr{sent texte est bien sur {crit avec GRIBOUILLE. Un ennui, si je place sans difficult{ les accents circonflexes avec GRIBOUILLE, je ne sais pas le faire ";V"dans le transfert BASIC, d'o| la faute d'orthographe, manque d'accent circonflexe sur le 'sur' de 'bien sur'.`:" Voici deux applications de GRIBOUILLE."j:23:15:"t a p e z u n e t o u c h e q u e l c o n q u e ":A$::Bt:" IMPRESSION DES TEXTES DES DISQUETTES GS INFOS"~" _____________________________________________"[:" Il suffit d'appeler tous les textes de GS Infos et de les placer les uns @ la suite des autres avec la fonction AJOUTER de GRIBOUILLE (dans la limite de la capacit{ de GRIBOUILLE bien sur, 45000 caract}res)."*:" Il faut ensuite, avec la fonction RECHERCHE/REMPLACEMENT SYSTEMATIQUE de GRIBOUILLE substituer aux codes en inverse les lettres accentu{es ou modifi{es telles que { ou \ obtenues par GRIBOUILLE."z:23:15:"t a p e z u n e t o u c h e q u e l c o n q u e ":A$::E" Voici la liste des transformations @ effectuer dont je ne puis garantir qu'elle soit exhaustive car je l'ai seulement relev{e sur les textes propos{s par les deux disquettes re\ues de GS Infos"" J'ai indiqu{ en regard la fr{quence d'apparition constat{e sur une suite de textes comportant 45000 caract}res.":" ";::"N";::" sera transform{ en { Fr{quence 469"q" ";::"H";::" d[ @ Fr{quence 125"" ";::"O";::" d[ } Fr{quence 67"!" ";::"P";::" d[ e accent circonflexe Fr{quence 19"y" ";::"M";::" d[ \ Fr{quence 10"" ";::"T";::" d[ i accent circonflexe Fr{quence 9")" ";::"Y";::" d[ o accent circonflexe Fr{quence 6"" ";::"]";::" d[ | Fr{quence 5" " ";::"I";::" d[ a accent circonflexe Fr{quence 2" " ";::"#";::" d[ #:" le # est particuli}rement int{ressant, sinon il disparait compl}tement ce qui rend les textes relatifs @ l'assembleur inutilisables."(:23:15:"t a p e z u n e t o u c h e q u e l c o n q u e ":A$::2::" Il reste maintenant @ imprimer. Ici apparait une difficult{ car il semble que les textes qui nous sont fournis, r{alis{s avec un traitement de texte que je ne connais";<" pas, ne sont pas tap{s au kilom}tre. Ils sont donc remplis de 'retour chariot' intempestifs que l'on rencontre chaque fois que l'on arrive en fin de ligne. Il faudrait donc les {liminer, mais cela ne parait pas possible";VF" car il faudrait distinguer entre les 'retour chariot' fin de ligne et les 'retour chariot' fin de paragraphe. La seule solution consiste @ choisir un format avec un nombre de caract}res par ligne";"P" suffisant. J'ai choisi pour ma part 102 caract}res par ligne avec une marge @ gauche de 6 ce qui donne 96 caract}res utiles. Je pense que cela convient dans tous les cas. On peut aussi, si on le";Z" souhaite, utiliser les caract}res compress{s grace @ la commande GRIBOUILLE pomme-ouverte WCC. Ceci ne permet plus {videmment d'obtenir une justification @ droite."d:23:15:"t a p e z u n e t o u c h e q u e l c o n q u e ":A$::Zn:" TRANSFORMATION DE FICHIERS LOGO EN LOGO II"x" __________________________________________"E :" Il s'agit de r{cup{rer les fichiers {crits dans le LOGO ancien (qui {tait en Dos 3.3 et ne s'appelait pas LOGO I) pour les utiliser en LOGO II (qui est en ProDos)."; " Je suis affront{ @ ce probl}me car je tiens des sessions de LOGO @ l'intention de jeunes."^!:" Les fichiers LOGO {tant des fichiers 'texte', GRIBOUILLE est tout indiqu{. De plus (merci GRIBOUILLE !), GRIBOUILLE qui est en ProDos sait r{cup{rer les textes en Dos 3.3."" Il suffit donc de r{cup{rer un tel texte, d'effectuer grace @ la fonction RECHERCHE/REMPLACEMENT SYSTEMATIQUE de GRIBOUILLE les changements utiles et enfin de sauvegarder ";a""le r{sultat sur une disquette format{e en ProDos. LOGO II l'accepte."":23:15:"t a p e z u n e t o u c h e q u e l c o n q u e ":A$::&#:" Voici quelques-unes des substitutions @ op{rer (je n'ai pas pris le temps d'{tablir une liste compl}te)."#:" Les crochets ouvrant et fermant, rectangulaires en QWERTY ou [ et ] en AZERTY seront remplac{s respectivement par < et >.#" DONNE de LOGO (I) sera remplac{ par RELIE de LOGO II"6$" BG d[ FOND d["y$" FFO d[ FFOND d["$" XCOR d[ COORX d["$" YCOR d[ COORY d["B%" RAC d[ RC d["%" TEST d[ TESTE d["%" FIXECHELLE d[ .FECHELLE d["&":23:15:"t a p e z u n e t o u c h e q u e l c o n q u e ":A$::&,:" Incidemment je signale que j'ai r{alis{ un programme de 'tortue volante' en LOGO. Elle se d{place dans l'espace dans les trois directions et parcourt par exemple les 12 ar}tes ";'6"d'un cube dessinant celui-ci en perspective @ partir d'un point de vue que je place n'importe o|. Si je le mets @ l'infini (par exemple 10 000) cela donnera une perspective cavali}re. ";e(@"Ma tortue bien-aim{e, ne reculant devant rien me dessine dans une orientation quelconque toute surface g{om{trique si j'ai r{ussi @ le lui apprendre, par exemple sph}re ou tore avec m{ridiens ";9)J"et parall}les, hyperboloide ou paraboloide hyperbolique (qui est une selle de cheval), sans compter bien sur tous les poly}dres possibles. Que voulez-vous, la g{om{trie dans l'espace est mon p{ch{ mignon.")T:23:15:"t a p e z u n e t o u c h e q u e l c o n q u e ":A$::)Y10:"TURBO-PASCAL"::0*^" J'{tudie actuellement dans un groupe auquel j'appartiens TURBO-PASCAL sur GS. Il parait que c'est plus puissant que TML-PASCAL.";*h" Mais cela n{cessite une carte CP/M. J'ai donc t{l{phon{ @ Br{joux pour me procurer une carte : 1600 F. Je suis ensuite all{ @ Ordin'Occas, adresse communiqu{e par Hyperpomme : 290 F."`+r" Est-ce le meme produit ? Je ne sais, mais en tout cas \a marche et cela me suffit. Comprenne qui pourra."+|:23:15:"t a p e z u n e t o u c h e q u e l c o n q u e ":A$::++ les questions{,:3:" Je suis un autodidacte en mati}re d'informatique et bute sur des points qui sont surement du B.A.BA. Toute honte bue je pose mes questions auxquelles il me sera";#-" probablement r{pondu : 'mais si vous aviez pris la peine de lire tel document ... voire telle disquette de GS Infos'. Je fais donc amende honorable par avance."-:" O| trouve-t-on les significations des types de fichiers tels que $B3, $C1, $C9 ? Et comment les utilise-t-on ?"-" Comment acc}de-t-on aux diverses fontes propos{es et comment les utilise-t-on ?"." Mon revendeur (Microvalley) m'a fourni le Finder mais avec une documentation polycopi{e dite 'provisoire' tr}s succincte. Y a-t-il une documentation compl}te ?"T/ " Comment }tre sur que l'on dispose de la derni}re version des utilitaires ou divers logiciels tels que GS.Paint, AppleWorks etc. GS Infos peut-il en dresser une liste ?"/:23:15:"t a p e z u n e t o u c h e q u e l c o n q u e ":A$::0 10:" Enfin saurai-je utiliser la disquette GS Club 10 UTILITAIRES que je vous commande ?"U0*:23:15:"t a p e z u n e t o u c h e q u e l c o n q u e ":A$::[04 10 D$ = CHR$ (4) 20 PRINT D$"PR#3" 30 PRINT "Disquette /GSIF de correspondance avec GS club 94" 40 HTAB 19: PRINT "(Roger le Masne - 9 avril 1989)" 50 PRINT : PRINT : HTAB 7: PRINT "BONJOUR A TOUS" 60 PRINT : PRINT : PRINT : PRINT "PREMIEREMENT je d{sirerai recevoir la disquette GS.CLUB.10 UTILITAIRES" 70 HTAB 17: PRINT "merci" 80 PRINT : PRINT "DEUXIEMEMENT voici quelques recettes" 90 PRINT : PRINT "TROISIEMEMENT voici quelques questions." 100 INVERSE : VTAB 23: HTAB 15: PRINT .0123456789:;<=>?@ABCDE"t a p e z u n e t o u c h e q u e l c o n q u e ": GET A$: NORMAL 110 HOME : PRINT : PRINT : PRINT : VTAB 10: HTAB 25: PRINT "les RECETTES d'abord" 120 HTAB 25: PRINT " ________" 130 INVERSE : VTAB 23: HTAB 15: PRINT "t a p e z u n e t o u c h e q u e l c o n q u e ": GET A$: NORMAL 140 GOSUB 1000 150 PRINT : PRINT : PRINT : VTAB 10: HTAB 25: PRINT "les QUESTIONS maintenant" 160 HTAB 25: PRINT " _________" 170 INVERSE : VTAB 23: HTAB 15: PRINT "t a p e z u n e t o u c h e q u e l c o n q u e ": GET A$: NORMAL 180 GOSUB 2000 190 HOME : VTAB 10: HTAB 25: PRINT "AU REVOIR ..." 200 : VTAB 12: HTAB 40: PRINT "... ET MERCI" 210 VTAB 23: END 220 RETURN 230 REM 240 RETURN 250 RETURN 1000 REM les recettes 1010 HOME : VTAB 3: PRINT " Je suis un utilisateur forcen{ de GRIBOUILLE. (Je pr{cise que je n'ai aucun int{ret dans la soci{t{ de Madeleine Hod{). C'est un traitement de texte d'un emploi on ne peut plus pratique." 1020 PRINT : PRINT " Outre mon courrier, je l'utilise pour mes tableaux de Multiplan transform{s en texte et qui, ins{r{s dans un autre texte, sont imprim{s @ partir de GRIBOUILLE. " 1030 PRINT : PRINT " J'utilise {galement GRIBOUILLE pour ins{rer dans le texte, avec la fen}tre m{nag{e en n'importe quel emplacement de la page, un graphique r{alis{, par exemple en BASIC (c'est ainsi que j'ai r{alis{ mon ouvrage "; 1040 PRINT "'LE LIVRE DES POLYEDRES' de 400 pages et pr}s de 400 figures que GSclub 94 a bien voulu annoncer). 1050 PRINT : PRINT " J'ajoute que j'ai particip{ @ la r{alisation de la documentation de GRIBOUILLE en {crivant une fiche relative @ l'impression des symboles math{matiques, exposants, indices, fractions"; 1060 PRINT " (barre de fraction dans l'axe de la ligne et align{e avec les signes +, - ou =) "; 1070 PRINT "exposants ou indices au num{rateur ou d{nominateur, signe 'somme' de l'int{grale, etc. Cette fiche figure dans la doc de GRIBOUILLE, y compris le nouveau GRIBOUILLE-GS." 1080 INVERSE : VTAB 23: HTAB 15: PRINT "t a p e z u n e t o u c h e q u e l c o n q u e ": GET A$: NORMAL : HOME 1090 PRINT : VTAB 3: PRINT " Beaucoup des programmes BASIC de mes poly}dres, relativement lourds avec de nombreuses coordonn{es de points assez r{p{titives, ont {t{ {crits avec GRIBOUILLE puis transform{s en BASIC "; 1100 PRINT "(routine 'capture'). Le pr{sent texte est bien sur {crit avec GRIBOUILLE. Un ennui, si je place sans difficult{ les accents circonflexes avec GRIBOUILLE, je ne sais pas le faire "; 1110 PRINT "dans le transfert BASIC, d'o| la faute d'orthographe, manque d'accent circonflexe sur le 'sur' de 'bien sur'. 1120 PRINT : PRINT " Voici deux applications de GRIBOUILLE." 1130 INVERSE : VTAB 23: HTAB 15: PRINT "t a p e z u n e t o u c h e q u e l c o n q u e ": GET A$: NORMAL : HOME 1140 PRINT : PRINT " IMPRESSION DES TEXTES DES DISQUETTES GS INFOS" 1150 PRINT " _____________________________________________" 1160 PRINT : PRINT " Il suffit d'appeler tous les textes de GS Infos et de les placer les uns @ la suite des autres avec la fonction AJOUTER de GRIBOUILLE (dans la limite de la capacit{ de GRIBOUILLE bien sur, 45000 caract}res)." 1170 PRINT : PRINT " Il faut ensuite, avec la fonction RECHERCHE/REMPLACEMENT SYSTEMATIQUE de GRIBOUILLE substituer aux codes en inverse les lettres accentu{es ou modifi{es telles que { ou \ obtenues par GRIBOUILLE." 1180 INVERSE : VTAB 23: HTAB 15: PRINT "t a p e z u n e t o u c h e q u e l c o n q u e ": GET A$: NORMAL : HOME 1190 PRINT " Voici la liste des transformations @ effectuer dont je ne puis garantir qu'elle soit exhaustive car je l'ai seulement relev{e sur les textes propos{s par les deux disquettes re\ues de GS Infos" 1200 PRINT " J'ai indiqu{ en regard la fr{quence d'apparition constat{e sur une suite de textes comportant 45000 caract}res." 1210 PRINT : PRINT " ";: INVERSE : PRINT "N";: NORMAL : PRINT " sera transform{ en { Fr{quence 469" 1220 PRINT " ";: INVERSE : PRINT "H";: NORMAL : PRINT " d[ @ Fr{quence 125" 1230 PRINT " ";: INVERSE : PRINT "O";: NORMAL : PRINT " d[ } Fr{quence 67" 1240 PRINT " ";: INVERSE : PRINT "P";: NORMAL : PRINT " d[ e accent circonflexe Fr{quence 19" 1250 PRINT " ";: INVERSE : PRINT "M";: NORMAL : PRINT " d[ \ Fr{quence 10" 1260 PRINT " ";: INVERSE : PRINT "T";: NORMAL : PRINT " d[ i accent circonflexe Fr{quence 9" 1270 PRINT " ";: INVERSE : PRINT "Y";: NORMAL : PRINT " d[ o accent circonflexe Fr{quence 6" 1280 PRINT " ";: INVERSE : PRINT "]";: NORMAL : PRINT " d[ | Fr{quence 5" 1290 PRINT " ";: INVERSE : PRINT "I";: NORMAL : PRINT " d[ a accent circonflexe Fr{quence 2" 1300 PRINT " ";: INVERSE : PRINT "#";: NORMAL : PRINT " d[ # 1310 PRINT : PRINT " le # est particuli}rement int{ressant, sinon il disparait compl}tement ce qui rend les textes relatifs @ l'assembleur inutilisables." 1320 INVERSE : VTAB 23: HTAB 15: PRINT "t a p e z u n e t o u c h e q u e l c o n q u e ": GET A$: NORMAL : HOME 1330 PRINT : PRINT : PRINT " Il reste maintenant @ imprimer. Ici apparait une difficult{ car il semble que les textes qui nous sont fournis, r{alis{s avec un traitement de texte que je ne connais"; 1340 PRINT " pas, ne sont pas tap{s au kilom}tre. Ils sont donc remplis de 'retour chariot' intempestifs que l'on rencontre chaque fois que l'on arrive en fin de ligne. Il faudrait donc les {liminer, mais cela ne parait pas possible"; 1350 PRINT " car il faudrait distinguer entre les 'retour chariot' fin de ligne et les 'retour chariot' fin de paragraphe. La seule solution consiste @ choisir un format avec un nombre de caract}res par ligne"; 1360 PRINT " suffisant. J'ai choisi pour ma part 102 caract}res par ligne avec une marge @ gauche de 6 ce qui donne 96 caract}res utiles. Je pense que cela convient dans tous les cas. On peut aussi, si on le"; 1370 PRINT " souhaite, utiliser les caract}res compress{s grace @ la commande GRIBOUILLE pomme-ouverte WCC. Ceci ne permet plus {videmment d'obtenir une justification @ droite." 1380 INVERSE : VTAB 23: HTAB 15: PRINT "t a p e z u n e t o u c h e q u e l c o n q u e ": GET A$: NORMAL : HOME 1390 PRINT : PRINT " TRANSFORMATION DE FICHIERS LOGO EN LOGO II" 1400 PRINT " __________________________________________" 1410 PRINT : PRINT " Il s'agit de r{cup{rer les fichiers {crits dans le LOGO ancien (qui {tait en Dos 3.3 et ne s'appelait pas LOGO I) pour les utiliser en LOGO II (qui est en ProDos)."; 1420 PRINT " Je suis affront{ @ ce probl}me car je tiens des sessions de LOGO @ l'intention de jeunes." 1430 PRINT : PRINT " Les fichiers LOGO {tant des fichiers 'texte', GRIBOUILLE est tout indiqu{. De plus (merci GRIBOUILLE !), GRIBOUILLE qui est en ProDos sait r{cup{rer les textes en Dos 3.3. 1440 PRINT " Il suffit donc de r{cup{rer un tel texte, d'effectuer grace @ la fonction RECHERCHE/REMPLACEMENT SYSTEMATIQUE de GRIBOUILLE les changements utiles et enfin de sauvegarder "; 1450 PRINT "le r{sultat sur une disquette format{e en ProDos. LOGO II l'accepte." 1460 INVERSE : VTAB 23: HTAB 15: PRINT "t a p e z u n e t o u c h e q u e l c o n q u e ": GET A$: NORMAL : HOME 1470 PRINT : PRINT " Voici quelques-unes des substitutions @ op{rer (je n'ai pas pris le temps d'{tablir une liste compl}te)." 1480 PRINT : PRINT " Les crochets ouvrant et fermant, rectangulaires en QWERTY ou [ et ] en AZERTY seront remplac{s respectivement par < et >. 1490 PRINT " DONNE de LOGO (I) sera remplac{ par RELIE de LOGO II" 1500 PRINT " BG d[ FOND d[" 1510 PRINT " FFO d[ FFOND d[" 1520 PRINT " XCOR d[ COORX d[" 1530 PRINT " YCOR d[ COORY d[" 1540 PRINT " RAC d[ RC d[" 1550 PRINT " TEST d[ TESTE d[" 1560 PRINT " FIXECHELLE d[ .FECHELLE d[" 1570 INVERSE : VTAB 23: HTAB 15: PRINT "t a p e z u n e t o u c h e q u e l c o n q u e ": GET A$: NORMAL : HOME 1580 PRINT : PRINT " Incidemment je signale que j'ai r{alis{ un programme de 'tortue volante' en LOGO. Elle se d{place dans l'espace dans les trois directions et parcourt par exemple les 12 ar}tes "; 1590 PRINT "d'un cube dessinant celui-ci en perspective @ partir d'un point de vue que je place n'importe o|. Si je le mets @ l'infini (par exemple 10 000) cela donnera une perspective cavali}re. "; 1600 PRINT "Ma tortue bien-aim{e, ne reculant devant rien me dessine dans une orientation quelconque toute surface g{om{trique si j'ai r{ussi @ le lui apprendre, par exemple sph}re ou tore avec m{ridiens "; 1610 PRINT "et parall}les, hyperboloide ou paraboloide hyperbolique (qui est une selle de cheval), sans compter bien sur tous les poly}dres possibles. Que voulez-vous, la g{om{trie dans l'espace est mon p{ch{ mignon." 1620 INVERSE : VTAB 23: HTAB 15: PRINT "t a p e z u n e t o u c h e q u e l c o n q u e ": GET A$: NORMAL : HOME 1630 RETURN 2000 REM les questions 2010 HOME : VTAB 3: PRINT " Je suis un autodidacte en mati}re d'informatique et bute sur des points qui sont surement du B.A.BA. Toute honte bue je pose mes questions auxquelles il me sera"; 2020 PRINT " probablement r{pondu : 'mais si vous aviez pris la peine de lire tel document ... voire telle disquette de GS Infos'. Je fais donc amende honorable par avance." 2030 PRINT : PRINT " O| trouve-t-on les significations des types de fichiers tels que $B3, $C1, $C9 ? Et comment les utilise-t-on ?" 2040 PRINT " Comment acc}de-t-on aux diverses fontes propos{es et comment les utilise-t-on ?" 2050 PRINT " Mon revendeur (Microvalley) m'a fourni le Finder mais avec une documentation polycopi{e dite 'provisoire' tr}s succincte. Y a-t-il une documentation compl}te ?" 2060 PRINT " Comment }tre sur que l'on dispose de la derni}re version des utilitaires ou divers logiciels tels que GS.Paint, AppleWorks etc. GS Infos peut-il en dresser une liste ?" 2070 INVERSE : VTAB 23: HTAB 15: PRINT "t a p e z u n e t o u c h e q u e l c o n q u e ": GET A$: NORMAL : HOME 2080 VTAB 10: PRINT " Enfin saurai-je utiliser la disquette GS Club 10 UTILITAIRES que je vous commande ?" 2090 INVERSE : VTAB 23: HTAB 15: PRINT "t a p e z u n e t o u c h e q u e l c o n q u e ": GET A$: NORMAL : HOME 2100 RETURN @GSIF.TXT<STARTUPsolution. Ceux de type $C9 ont pour code FDF, ce sont des fichiers Finder Data, ils contiennent les informations utiles pour le finder: fentres, icnes pour prsenter les dossiers lorsqu'on les ouvre sous finder. On peut les supprimer. Pour accder aux fontes, il faut d'abord les copier dans le sous-dossier FONTS du dossier SYSTEM de votre disquette systme. Elles seront utilises par les logiciels en mode natif comme Multiscribe GS, APW GS. On peut aussi utiliser ces fontes avec TimeOut SuperFonts pour Appleworks. Pour les versions de logiciels, d'aprs le Guide Apple II: GS Paint 1.2 ; AppleWorks 1.4 franais et 2.1 anglais La disquette GSCLUB 10 contient les utilitaires avec leur documentation en anglais. La diffrence de prix entre une carte CPM compatible et la CPM Microsoft vendue par Brjoux s'explique d'une faon simple. Dans le second cas, le sytme d'exploitation CPM est livr avec la carte et Microsoft ne le donne pas. Dans le premier cas, la carte est vendue sans le systme, ce quArt.Dernires: Un mlange de toutes les infos glanes ces deux derniers mois. Rubrique Club ------------- Une trs bonne nouvelle pour les membres du club: La socit Brjoux consent 10% de remise sur les cartes pour Apple IIgs et disques durs. Pour en profiter, il faut ne pas rcuprer la TVA et envoyer la photocopie de sa carte de membre. Transwarp GS : 3439,40F prix club 3095,46 GS RAM 256K : 2372,00F prix club 2134,80 GS RAM plus 1Mo : 4506,80F prix club 4056,12 RAMKEEPER : 1IKLMNOPQRS\]^_`abijmnopqr719,70F prix club 1547,73 Disque dur Winchester BJX 20 : 7827,00F prix club 7044,30 Sonic Blaster: 1067,40F prix club 960,66 Brejoux.A.E 29A, rue de Montribloud 69009 LYON Tel:78 36 52 69 Une raison de plus, s'il en fallait une ! de ne pas regretter son adhsion au club. Pour ceux qui peuvent se dplacer Paris, la socit MicroChip brade du matriel Apple II GS ou autre II, matriel provenant de la sortie du rseau Apple d'un important vendeur au nom invitant la conqute des toiles. Tlphonez avant pour savoir ce qui leur reste. Un IIgs mono avec un lecteur 3,5 est vendu 5800F, II GS couleur avec un lecteur 7800F . Les drives 3,5 1500F pice etc... Deux adresses: Ordin'Occase 8, bd Magenta Tel 42 08 00 60 ou 42 08 12 90 Chip'Occase 107, rue de la Tombe Issoire Tel 43 21 51 00 Rubrique vendeurs ----------------- Un adhrent du 45 nous informe qu'ACCE ne ferait plus de Soft IIGS. Il a command Space Quest en Dcembre et vient de recevoir son chque, ils ne com- mandent plus pour le GS. Nous serions donc passs du seul Samedi rien du tout. De toute faon, leurs prix n'taient plus des plus attractifs. Un adhrent du 93 nous avertit de la disparition de Personnal Computer, rue de Clichy Paris. La maison mre ne s'occuperait plus du GS ?! Nous aimerions faire un tour de France de vos concessionnaires. Ecrivez-nous, surtout si vous en tes content. Tout n'est pas pourri dans le Royaume de Navarre. Et si on faisait un guide Michelin des concessionnaires! Pour les softs, le seul qui ait rpondu nos sollicitations concernant ses disponibilits et ses prix, c'est la socit Brjoux, socit qui n'a pas hsit parler de nous dans sa publicit, sans nous avoir rien demand en change. Voici in extenso, la liste et les prix TTC des logiciels II GS qu'elle vend. La configuration mmoire minimale est ajoute ct : Multiscribe GS : 800,00 F (512k) Multiscribe GS Font disk 300,00 Multiscribe GS Art disk 300,00 Deskworks : 480,00 F (512k) Appleworks GS : 2500,00 F (1,25Mo, 2 lecteurs 3,5) Wintype : 400,00 F TML Pascal : 950,00 F (768k) TML Source Code Library 450,00 TML Basic : 950,00 F Merlin 8/16 plus : 900,00 F Print Shop GS : 480,00 F (512k) Print Shop GS Sampler edition 300,00 Print Shop GS Party edition 300,00 Profiler GS : 900,00 F Visualizer GS : 900,00 F Deluxepaint : 800,00 F (768k) Deluxepaint Holyday disk 300,00 Deluxepaint Art disk (1 ou 2) 300,00 Paintworks Gold : 800,00 F (1,25Mo) Paintworks Gold Clip Art.1 300,00 Alien Mind : 350,00 F Cavern Cobra : 350,00 F (512k) Monte Carlo : 350,00 F Mean 18 : 350,00 F (512k) Kidstime : 350,00 F (512k) Diversi Tune : 450,00 F Diversi Tune Musiques (1 6) 150,00 Music Studio 2.0 : 950,00 F Music Construction Set 475,00 Zany Golf : 450,00 F Cartooners : 500,00 F Jig Saw : 475,00 F VS/Com 1.14 : 990,31 F SuperMacroWorks : 550,00 F Prosel : 500,00 F Compta.BJX : 2000,00 F Super Senior : 4744,00 F (Disque dur, ImageWriter) Thunderscan (digitaliseur): 2134,80 F (Imagewriter I ou II) Port par envoi 25,00 F Ca y est GS/OS francis est arriv, tout concessionnaire Apple doit tre capable de vous le fournir (moyennant 140 F H.T.). Si le votre rpond GS connat plus, donnez lui le numro de rfrence produit : A2D6013F. Si jamais vous grillez votre Ensonic et lui seul, refusez le changement de carte mre. L'Ensonic est sur support, il est rfrenc chez Apple et cote un peu moins de 160F, son numro de rfrence est 343 0051 A. La socit MacSell m'a communiqu la procdure pour obtenir la mise niveau de mon VS/DRAW 1.0 en 1.1. D'abord, il faut tlphoner Mardi ou Jeudi aprs-midi M. PetitLaurent Herv pour obtenir un numro d'autorisation ( Ca me rappelle la boutique qui ne vendait des softs que le samedi). Numro d'autorisation la cl, il faut envoyer son original, en recommand, accompagn d'un chque de 296,50F TTC. Tel:(1) 48 43 60 33 MACSELL BP24 93501 PANTIN Revue de presse --------------- Un miracle dans Science et Vie Micro de Mars, l'Apple IIGS et cit dans deux articles diffrents et de faon non ngative. Une premire fois dans " le petit journal de l'informatique l'cole", o il est dit que les Apple II comptent pour 13% dans l'quipement des collges de l'enseignement priv et que ces Apple II sont essentiellement des GS. Une deuxime fois, dans l'article concernant le MAC SE/30 o il est crit :" Autre nouveaut: sur la carte mre du SE/30 figure un composant nomm 'Apple Sound Chip' qui intgre un synthtiseur 4 voies stro et un convArt.Editorial Au cours du seul mois d'avril, nos adhrents ont presque tripl. Merci aux tablissements Brjoux et la revue Pom's qui ont inform le monde de l'Apple II GS de notre existence. Plus nous serons nombreux, plus notre activit sera riche et intressante pour chacun de nous. Notre disquette recueille la fois des critiques et des compliments contra- -dictoires. Le ct lmentaire de certains articles est diversement apprci. Je ne peux donner qu'une rponse. Au dpart ce choix a tTV dlibr. Cette disquette numro 1 a servi de vitrine au Club, pour viter de leurrer les adhrents sur nos activits. Les spcialistes de la programmation, s'ils ont besoin d'inform- ations, vont la chercher dans la documentation de l'ADPA ou les livres Addison Wesley. D.Melchior D.Melchior e $C050, affiche le dessin 1 c - enlever les 4 lignes de texte du bas d'cran $C052 d - Afficher le dessin 2 $C055 Le programme BASIC ------------------ Nous avons repris deux dessins de polydres de M. Le Masne, ils sont dans le dossier Exercices de la disquette, sous les noms Dessin1 et Dessin2. 10 HOME 20 D$=CHR$(4) 30 PRINT D$;"BLOAD/GSINF3/EXERCICES/DESSIN1,A$ 2000" 40 PRINT D$;"BLOAD/GSINF3/EXERCICES/DESSIN2,A$ 400Art.Annonces : les petites annonces de nos membres. ___________________________________________________ 1-A vendre: APPLE IIC 384 Ko + monochrome vert + souris --> 4500F dbattre Logiciels originaux ( Professionnels, utilitaires ) --> 120 F pice Tel (16-1) 48 55 84 78 aprs 19h 2-Cherche la solution d'Alien Mind. Ecrire au club qui transmettra. Frais d'envoi rembourss. 3-Recherche disque dur pour IIGS Contacter Thierry au (1) 40 12 95 85 4- A vendre:1 d0" 50 CALL 768 60 TEXT 70 END 10 on efface l'cran 20 CHR$(4) obligatoire pour les ordres en mode programme 30 on charge DESSIN1 dans la 1re page graphique l'adresse $2000 40 on charge DESSIN2 dans la 2me page graphique l'adresse $4000 50 on appelle la routine l'adresse 768 ou $300 60 on remet en mode texte Ne faites pas RUN tant que la routine assembleur n'est pas installe. Tapez CALL-151 et ! pour entrer dans le mini-assembleur et entrez ce qui suit: !00/300:BIT C050 ! BIT C057 ! BIT C052 ! BIT C054 ! LDA D0 ! JSR FCA8 ! LDA C000 ! BPL 309 ! RTS Sortez du mini-assembleur et vrifions en tapant 300L. Le dsassemblage doit donner: 00/0300: 2C 50 C0 BIT C050 00/0303: 2C 57 C0 BIT C057 00/0306: 2C 52 C0 BIT C052 00/0309: 2C 54 C0 BIT C054 00/030C: A9 D0 LDA D0 00/030E: 20 A8 FC JSR FCA8 00/0311: 2C 55 C0 BIT C055 ertisseur de sons chantillonns, galement stro. Il s'agit d'une version limite du synthtiseur 16 voies quipant l'Apple IIGS". Plus d'1 million d'Apple IIGS vendus, l'Apple IIGS reprsentant 65% des ventes de la gamme Apple II. A votre avis de quel pays s'agit-il ? Les U.S.A bien sr, pays o les revendeurs Apple vendent toute la gamme et non ce pays o dans sa publicit, un revendeur Apple qui revendique et titre en gros caractres "Rien qu'Apple tout Apple" ferait mieux d'crire "Rien que le Mac tout le Mac". L'Apple IIGS n'est pas cit une seule fois. Imaginez un concessionnaire Renault ne vendant que des R25 ... Lu dans Scarlett du mois de mars, des nouvelles plutt pessimistes. La plus sombre tant reprise du journal MacWeek. Ce journal pense qu'un nouveau GS sera annonc l'Applefest de Boston, que ce GS serait le dernier de la famille Apple II et que la gamme serait arrte d'ici un an. Les rumeurs vont toujours bon train...Les pleureuses vont se rgaler. Attendons dj l'Applefest pour juger de la vracit du premiers propos. Incider d'avril va plus loin en annonant que ce GS aurait 1,25 Mo de mmoire de base et le systme d'exploitation en ROM, ce qui diminuerait considrablement les temps de chargement au boot. Le mme Scarlett fait tat de la fusion de deux magazines amricains partir de Juin, Incider et A+ et du passage une parution mensuelle de The Apple Buyer's Guide. Dans A2-Central du mois d'avril, on y apprend qu'Apple a des problmes avec George Harrison, l'un des Beatles. En effet, la maison de disque des Beatles s'appelle Apple Corps. Les deux compagnies avaient sign un accord en 1981, Apple computer ne devant pas vendre de produits musicaux. L'ancien Beatles estime que l'introduction de l'interface MIDI et l'Ensonic de L'Apple IIGS constituent une violation du contrat. Quand on pense qu'Apple a oblig les magazines comprenant son nom dans leur titre le modifier, cela rappelle le premier gag de l'histoire du cinma. On y apprend aussi qu'il n'y a pas qu'en France que la gamme II est maltraite. Une partie du courrier des lecteurs est intitule "International Situation Critical" et reprend des extraits de lettres venant de France, Hollande, Italie, Canada, Allemagne. Tous se plaignent de l'incapacit volontaire o non des revendeurs leur fournir les nouvelles ROM ( depuis plus d'1 an en France, certains ne les ont toujours pas), la ROM rvision C pour la carte SCSI et les versions du systme d'exploitation. Dans la revue Pom's du mois d'Avril, Jean Yves Bourdin prsente notre club et une erreur de typographie nous permet mme d'y paratre deux fois de suite. C'est le compte rendu de la runion d'Angers qui semble en avoir fait les frais. Dans cet article J.Y. Bourdin revient sur les propos qu'il avait tenu concernant la francisation d' Appleworks GS. Seule une pression importante d'utilisateurs enregistrs, c'est dire ayant ACHETES le logiciel pourrait peut-tre amener CLARIS le faire. Ne vous attendez absolument pas cela dans un avenir trs proche. Quelques pages avant, Ariel Seban prdit que les derniers irrductibles de l'Apple II n'auront d'autre choix que de craquer pour ce maudit Mac. Beaucoup ont dj craqu, mais pas pour un Mac, il sont passes l' ennemi et pour des raisons qui ne sont pas obscures. Il a craqu avant nous, serrons les rangs. Pour rentrer dans le rang, change IIGS couleur avec Transwarp et 2 Mo contre Mac II cx couleur avec logiciels ! Une demande d'informations m'est parvenue de Suis&jH# IMPRIMANTE" SON.INTRO!D FONTE.EDITEURCHEAPPAINTTuHUSTON! ' 'HELPe6 d>CHEAPPNT.SYS16">;dPATTERNS5  dPICTURES5 0dDOCUMENTATION88  dICONS& dCYCLES5  dPALETTES5  dFINDER.DATAɪ! 4dHELPuHUSTON!6' d'FINDER.DATAfu u eCOLORS.MENUg  eEDIT.MENU  eFILE.MENU  e*FONTS.MENU,!eGENERAL eSPECIAL.MENU  eT00LS  e&jh5T00LSSED5H SPECIAL.MENUGENERAL.INFO FONTS.MENU FILE.MENU EDIT.MENUH COLORS.MENUCOLORS.MENUuHUSTON! ' e'/ASSIGN.PALETTESi , gCOLOR.1.TO.2pN,gCOLOR.2.TO.1qN,gCYCLE.PICTUREr,g*EDIT.COLORt,g*EDIT.CYCLEx&,g-EDIT.PATTERNS{,g,MIX.PALETTES~9,g Displays a dialog to allow reviewing the available color palettes and enables assigning a different color palette (any of the 16 available) to a line or group of lines in either the paint set or any of the 8 cycle sets. The vertical scroll bar moves a small line marker to its right, this marker indicates the line that is currently selected. The line number is displayed next to the Palette select scroll bar. When the scroll bar is moved the palette display changes to reflect the palette that ihjklmnos assigned to that line. By sliding the palette selection scroll bar (the horizontal scroll bar) you can change the currently selected palette. The Cycle Speed scroll bar (located at the bottom left corner of the screen) is used to set the speed of the current cycle set. Each of the 8 cycle sets can have a different speed. Clicking on the following buttons provides the results listed below: Revert- will reassign all the color palettes to the lines they were assigned to before selecting palettes from the menu in the current color set. Set 1 line- will cause the currently selected color palette to be assigned to the currently selected line. Set All- will assign the currently selected color palette to all the lines of the current page. All Above- will assign the current color palette to the currently selected line and all lines above it on the visible canvas. All Below- will assign the current color palette to the currently selected line and all lines below it on the visible canvas. From Here- used to set the first line for assigning the currently selected color palette to a range of lines. You click this button at the first line in the range and then click the "To There" button at the last line in the range. To There- used to set the last line for assigning the color palette that was selected when the "From Here" button was pressed to a range of lines. After this button is pressed all lines between the first and last line will have their color palette set to the one that was selected when the "From Here" button was pressed. Paint- will select the line assignments for painting a picture. Cycle- will allow you to select line assignments for a Cycle Set used in cycling a picture. Set(1-8)- when the Cycle botton has been selected it allows you to select one of eight Cycle Sets to edit. Click on the number of the cycle set you want to edit. Use(1-8)- these buttons can be toggled on or off by clicking on them. when a button is on it is used for cycling the picture, when off it does nothing. Init Cycle- when the Cycle button has been selected this function resets all 200 line assignments for the currently selected Cycle set to the line assignments used in the Paint set, sets speed to "0" and sets the Use button to the off position. Fwd- sets cycle direction so that the Cycle sets Cycle from set 1 to 8. Rev- sets cycle direction so that the Cycle sets Cycle from set 8 to 1. Okay- will cause the current assignment of color palettes to be implemented. Cancel- will cancel changes to color palette assignment set you are currently working on (the paint set or 1 of the 8 cycle sets). Copies the color palettes and their line assignments from page 1 to page 2. Copies the color palettes and their line assignments from page 2 to page 1. Displays the whole picture and cycles it using the currently loaded Cycle Record. To return to drawing mode just click the mouse or press a key. Displays a dialog that lets you select any of the 16 color palettes available on the current page by sliding the palette selection scroll bar and allows you to edit any of the colors in the palette selected. Select a color from the current color palette by clicking the mouse on the check box below the color. You can then edit the color by sliding the R (Red), G (Green) and B (Blue) Scroll bars to adjust the hue of each color. Clicking the Default button will change the currently selected colsuvor to the system default color. If you press and hold any key and then click the default button it will change all the colors in the currently selected palette to their default colors. Clicking the Revert button will change the currently selected color to the Color it was when Colors was selected from the menu. If you press and hold any key and then click the Revert button it will change all the colors in the currently selected palette to the color they were when Colors was selected from the menu. Click the Okay button to accept all the changes you have made and return to the canvas. Click the Cancel button to cancel all changes made to the current color palette and return to the canvas. Replaces the Tool/Color window with the Edit Cycle dialog and begins to cycle the currently displayed portion of the picture. You can select the speed, direction, cycle sets used and scroll the picture. To select the cycle set to edit speed on, click the mouse on the applicable set number to the right of the word "Set". To select/deselect a cycle set to use for cycling click the mouse on the applicable set number to the right of the word "Use". To set the Cycle direction just click on eitwyher the "Fwd" or "Rev" buttons. To set the currently selected cycle sets speed, move the scroll bar towards the "S" for slow and towards the "F" for fast. Click Okay to accept any changes you made and close the dialog. Click Cancel to undo all changes you made and close the dialog. Displays a dialog that enables you to modify the existing patterns or create new ones. The palette Select scroll bar lets you see what a pattern looks like with the different color palettes. Clicking the Default button will change the current pattern back to the System default. Clicking the Revert button will change the current pattern back to what it was before selecting Patterns from the menu. Clicking the Okay button will cause the changes you have made to the patterns to be implementez|d. Clicking the Cancel button will cancel all pattern changes you have made. To select a pattern just click the mouse on it in the pattern window. To select a color just click the mouse on the color you want from the color window or Position the mouse in the enlarged view of the pattern on top of a color you want to select and press the Control key. That color will become the current one. To edit a pattern just click the mouse in the enlarged view of the pattern. Displays all 16 colors in all 16 color palettes at the same time. You can copy a color from one palette to another palette or to another position in the same palette. This is done by pressing and holding the mouse button within the color you want to copy and dragging that color onto the color you want to replace and releasing the mouse button. You can copy one palette to another. This is done by pressing and holding the mouse within the Palette number you want to copy and dragging it onto} the palette number of the palette you want to replace and release the mouse button. Click the Okay button to accept the last change you made and close the dialog. Click the Cancel button to undo the last change you made and close the dialog. Click the Undo button to cancel the last change you made. EDIT.MENUuHUSTON! ' e'CLEAR,COPY,CUT,HORIZ.FLIPQ,INVERTF,PASTE2,RESIZE6,UNDO,VERT.FLIPN, Used to clear the canvas to white. Color palette line assignments are not affected. A dialog will be displayed to verify your decision. This function places a copy of the area enclosed by the edit rectangle or lasso on the clipboard. The edit rectangle or lasso may then be dragged to anywhere on the screen to paste it with the Paste function. This function places a copy of the area enclosed by the edit rectangle or lasso on the clipboard and clears the area under the edit rectangle or lasso to white. The edit rectangle or lasso may then be dragged to anywhere on the screen to paste a copy using the Paste function. This function flips the contents of the edit rectangle or lasso horizontally. This function inverts the area. within the edit rectangle or lasso. This function is only enabled after a Cut, Copy or Resize operation has been performed (in the case of Resize, you must also create a resized edit rectangle or lasso first). It will paste a copy of the last area cut, copied or resized on the canvas in the area within the edit rectangle or lasso. This function allows expanding or compressing the area within the edit rectangle or lasso. After selecting this function, the edit rectangle or lasso will disappear. Create another edit rectangle or lasso the size you want the resize area to be adjusted to, drag it to where you want it and paste it. This selection will "UNDO" the last thing you did on the canvas. In order to undo something the Undo item must be selected before other changes are made to the canvas. This function flips the contents of the edit rectangle or lasso Vertically. FILE.MENUuHUSTON! ' e'CHOOSE.PRINTERu,+DELETE.FILE$,LOAD.CYCLE(,LOAD.PALETTES,LOAD.PATTERNS,LOAD.PICTURE,PAGE.SETUPb,PRINT,QUITP,SAVE.CYCLE,SAVE.PALETTESC,SAVE.PATTERNS7,Choose Printer Displays a dialog for selecting the printer and printer port you desire for printing a picture. Displays a dialog for deleting any file on any currently loaded disk. It requires that the full pathname be entered. An example of this would be " /SystemDisk/MyOldFile ", please note the "/",this charactor is required at the beginning of the disk name, directory name (if any) and the file name. after entering the pathname, click on the okay button to accept or the cancel button to cancel the operation. If an error is encountered ( disk write protected, file not found, etc. ) a message will be displayed explaining the problem. Displays a dialog for loading a Cycle Record. A Cycle Record contains the direction of the Cycle, which of the 8 Cycle Sets to use, 8 Cycle Sets and the speed each Cycle set is set to. Both pages share the same Cycle Record. The current Cycle Record will be lost when a new one is loaded. Displays a dialog for loading a set of 16 color palettes and the horizontal line assignments for each onto the current page. The current color palettes and their line assignments will be lost when a new set of palettes is loaded. Displays a dialog for loading a set of 16 patterns. Both pages share the same set of patterns. The current patterns will be lost when a new set of patterns is loaded. Displays a dialog for loading a picture onto the current page. Any pictures that use the PIC format will be selectable. The picture contains its own color palettes and the horizontal line assignments for each of the color palettes. Anything that is on the current page along with the current color palettes and their line assignments for that page will be lost when a new picture is loaded. Displays a dialog for selecting the type paper and picture orientation for printing a picture. Displays a dialog to print out a picture and allow selection of print quality, number of copies, paper feed method, color or black and white. Please note that currently the printer will only use the color palette displayed in the Tool/Color window. Used to exit CheapPaint, displays a dialog to make certain of your decision. Displays a dialog for Saving a Cycle Record. A Cycle Record contains the direction of the Cycle, which of the 8 Cycle Sets to use, 8 Cycle Sets and the speed each Cycle set is set to. Both pages share the same Cycle Record. Displays a dialog for saving the current page color palettes together with their line assignments to disk. The default file name is "Untitled.pal" unless a set of palettes has been loaded or saved prior to this attempt, in which case the default file name will be that of the last set of palettes loaded or saved. Displays a dialog for saving the current patterns to disk. The default file name is "Untitled.pat" unless a set of Patterns has been loaded or saved prior to this attempt, in which case the default file name will be that of the last set of patterns loaded or saved. Both pages share the same patterns. SAVE.PICTURE, Displays a dialog for saving the current page picture to disk. The picture, current color palettes and their line assignments will be saved to disk together. The default file name is "Untitled.pic" unless a picture has been loaded or saved prior to this attempt, in which case the default file name will be that of the last picture loaded or saved. Pictures are saved in the PIC format. Modify Font Displays a dialog that allows you to change the size and style of the current font. The size can be anywhere from 6-30 point and is changed by using the scroll bar, the current size is displayed next to the scroll bar. The Styles available are bold, italic, underline, outline and shadow. Styles are changed by clicking the mouse on the button next to the desired style. More than one style can be selected at the same time. Changing Fonts CheapPaint uses standard Apple IIgs fonts and any fonts you have of this type are usable with CheapPaint. Any font located in the Fonts directory of the boot disk at the time that CheapPaint is launched will be added to the Fonts menu and selectable for use and/or modification, provided that there is room for all of them on the Fonts menu. The Fonts menu length(top to bottom) is limited and only so many font names will fit on it. Any fonts that don't fit won't show up on the menu and won't be selectable. To change a font just select it from the Fonts menu. Default size is 8. IMPORTANT NOTE Each font you load from the Fonts menu uses up space in your computers memory the first time it is loaded. While all the fonts on the menu can be selected, that does not mean that they will all fit into your available memory.Attempting to load too many fonts with only 768k memory could cause your system to lock up or crash. While this won't damage your computer it does require you to reboot it and thus losing whatever work you have done. GENERALuHUSTON!' e'COORDINATES,*COPY.COLOR5FIND.COLOR5%PAGES, SCROLLINGJ,SELECT.BRUSH,#,SELECT.COLOR,$ Coordinate display can be toggled on and off by clicking in the Coordinate display box or by selecting it from the Special menu. It displays the current location of the cursor in reference to the whole picture. To copy any color from the screen (no matter what palette it belongs to) to the currently displayed color palette in the Color/Pattern window, put the cursor in the current color rectangle and click it. This puts the system in Color Copy mode. Position the hole in the cursor over the color you want to copy and click the mouse. The color that was the current color will be replaced by the new color and the system will be returned to normal draw mode. To exit Color Copy Mode without copying a color press the ESC key. Pressing the Control key will set the current color and palette displayed in the Tool/Color window to the color and palette currently located under the mouse cursor. Located to the right of the Coordinate display box in the Tool/Color window are the page changing buttons.The program has two independent pages, designated as page 1 and 2, each with its own set of 16 color palettes. Each color palette contains 16 changable colors. Any one color palette can be assigned to any one line, thus allowing a total of 256 colors on the screen at one time. The assignment of color palettes to individual lines is maintained seperately for each page. To change pages just click on the number of the page you wish to display. All filing, printing, editing, color palette and line assignment changes affect only the currently selected page. Located to the right of the Page changing buttons are the scroll buttons. The scroll position for each page is independent of the other. To scroll a page just click on the button with the arrow that points in the direction you want to scroll. The large arrows scroll 25 lines and the small ones scroll 5 lines at a time. There are a total of 12 different brushes available, 6 solid brushes and 6 airbrush patterns (only selectable when the Airbrush is the current tool). They are displayed in the center area of the Tool/Color window. To select a brush move the cursor to the brush you want and click the mouse on it. When moved onto the canvas, the cursor will change into the currently selected brush, unless you are using the Airbrush. The Airbrush cursor is displayed when using this tool. Color or Pattern selection To select a color or pattern, click the mouse on the color or pattern you wish to select. The current color/pattern will be displayed in the current color rectangle at the extreme left of the Tool/Color window. All drawing is done using the currently selected color/pattern, with the only exception being text. Text is limited to the color selections, the patterns are not available. When a pattern is selected with text as the current tool, the text color will be the same as the color above the pattern that has been selected. IMPORTANT NOTE When you are using more than one color palette at a time on the canvas, press the Option key to update the Tool/Color window to the color palette of the line the mouse is currently on. The Tool/Color window will remain in that color palette until the Option key is pressed again on a line containing a different color palette. SPECIAL.MENUuHUSTON! ' e'COORDINATESy,.CREATE.STENCIL,FULL.SCREEN,PAGE.1.TO.2o8PAGE.2.TO.1o8STENCIL.ON.OFF;, Selecting this item from the menu will cause coordinate plotting to be toggled on and off. When toggled on the mouse cursor coordinates will be displayed in the Coordinate display box in the Color/Pattern window at the bottom of the screen. Coordinates can also be toggled off and on by clicking the mouse within the coordinates display box in the Tool/Color window. This function is used to define a stencil. Once this item is selected,you can select the shape you will use to create the stencil. The shapes available are all of the framed type : Oval, Polygon, Rectangle, Region and Round Rectangle. If the current tool at the time Create Stencil was chosen from the menu was one of these, then that shape will be the the default shape used. If any tool other than these was the current tool, then the Region shape will be the default shape. In any case you can change the shape you will use by selecting it from the Tool/Color window. The method used to draw the stencil will depend on the shape selected, refer to the instructions covering creating shapes. After the Mouse button is released, Stencil is turned on and drawing will only occur inside the stencil area. To exit the create stencil mode with out creating one press the ESC key. To deactivate the stencil select Stencil Off from the special menu. This function causes the entire canvas of the current page to be displayed. No drawing can be done while in this mode, to return to the drawing mode either click the mouse or press a key. Copies canvas contents of page 1 to page 2. Color palettes and line assignments on page 2 are not affected. Copies canvas contents of page 2 to page 1. Color palettes and line assignments on page 1 are not affected. This function toggles a previously created stencil on and off. This selection is disabled until a stencil is created with Create Stencil function from the Special Menu. When stencil is turned on, only the area within the stencil can be drawn on. Everything else is 'masked off', just as in a real stencil. T00LSuHUSTON! ' e 'AIRBRUSH,*ARCG,$EDIT,,$FILL^,%LASSO$,/LINE,/PENCIL,1&SHAPESK,2TEXTe,2$ZOOM,4 This tool simulates an Airbrush, you can "spray paint" in the currently selected Color or pattern. When selected the brush selection in the Tool/Color window changes to the patterns available to the Airbrush. This Tool Creates curved lines. To use it, move the cursor where you want the arc to begin and press the mouse button and drag the arc to where you want it and release the button. To change the direction of the bow in the arc, just swing the arc above and past your starting point from left to right or right to left. This tool is used to create an edit rectangle for purposes of editing the area within the rectangle and dragging the rectangle around the canvas. To create an edit rectangle press and drag the mouse until the desired size rectangle is created, release the button. This tool can be constrained at any time you are using it by pressing and holding the Shift key. To Drag the edit rectangle around, just press and hold the mouse button while the mouse cursor is within the edit rectangle. Now moving the mouse will drag the edit rectangle. If the mouse button is clicked outside the edit rectangle and the mouse is on the canvas, the edit rectangle will disappear. To cut, copy or resize between page 1 and 2 just position the edit rectangle over the area to be cut, copied or resized. Select Cut, Copy or Resize from the Edit menu and then change pages. Position the edit rectangle ( in the case of Resize, you will need to create a new resized edit rectangle) where you want to paste at and then select Paste from the edit menu. When the stencil function is turned on you can copy from anywhere on the canvas, but cutting, inverting, pasting, horizontal and vertical flipping will only affect the area contained within the stencil. This tool is used to fill an enclosed area with the currently selected color. To use Fill just click the mouse in the area you want to fill. A fill operation can be stopped at any time by pressing any key other than the Open Apple, Control or Option. If you are using more than one color palette, Fill will treat a line that has a different color palette than the one that the fill was started on as the upper or lower boundry of the area to be filled. The reason for this is to prevent unexpected fills, since you may tend to forget where one color palette starts and one leaves off. Lasso shares all the same editing functions as the Edit tool, but lasso is not restricted to Rectangles, it can be any shape you want to make it. To use the Lasso, move the cursor to the point you want to start from then press and drag the mouse. Outline the area or shape your want and then release the button. The Newly created lasso can be positioned anywhere on the canvas. This tool can be constrained at any time you are using it by pressing and holding the Shift key. To Drag the Lasso around, just press and hold the mouse button while the mouse cursor is within the Lasso. Now moving the mouse will drag the Lasso. If the mouse button is clicked outside the Lasso and the mouse is on the canvas, the Lasso will disappear. To cut, copy or resize between page 1 and 2 just position the Lasso over the area to be cut, copied or resized, select Cut, Copy or Resize from the Edit menu and then change pages. Position the Lasso (in the case of resize, you will need to create a new resized lasso) where you want to paste at and then select Paste from the edit menu. When the stencil function is turned on you can copy from anywhere on the canvas, but cutting, inverting, pasting, horizontal and vertical flipping will only affect the area contained within the stencil. This tool enables you to draw perfectly straight lines with the currently selected brush and color/pattern. To make a Line, Press and hold the mouse button where you want the line to begin and then stretch the line to where you want it to end. release the mouse button. This tool can be constrained at any time you are using it by pressing and holding the Shift key. If the Stencil function is on then drawing will only occur within the stencil. This tool allows you to draw free hand with the currently selected brush and color/pattern. To use the Pencil, just press and hold the mouse button. Draw with it like you would a real pencil. When your done just release the mouse button. This tool can be constrained at any time you are using it by pressing and holding the Shift key. If the Stencil function is on then drawing will only occur within the stencil. These tools can be constrained at any time you are using them by pressing and holding the Shift key. If the Stencil function is on then drawing will only occur within the stencil. To create Ovals, Rectangles or Round Rectangles(Solid or empty). Move the mouse cursor to the start point, press the mouse button and drag the mouse until the desired size shape is created. Release the mouse button. To create a polygon, position the cursor where you want it to start and click the mouse. A 'rubber band' will be attached to the cursor, stretch the rubber band to any where you select and click again. The rubberband will be replaced by a solid line and a new rubberband will start at the last point of the canvas clicked on. Continue this until you have defined the shape you want then double click the mouse to finish the polygon. To create a region, position the cursor where you want it to start and press the mouse button, drag the mouse to define the shape and release the mouse button to finish the Region. To create a wedge, move the cursor where you want the wedge to begin. Press the mouse button and drag the wedge to where you want it and release the button. To change the direction of the bow in the wedge, just swing the wedge above and past your starting point from left to right or right to left. This tool allows you to type text on the canvas using the currently selected font and color. To use Text, just position the cursor where you want the text to begin and click the mouse. A text cursor will appear, now just type with keyboard. Press the delete or left arrow keys to delete a charactor and the return key perform a carriage return. This tool allows you to select, inspect and edit a small area of the canvas that is blown up approximately 10x. To use Zoom, just click the mouse on the area you want to edit. A dialog will appear with the zoomed area, a normal sized view of that area, a color window, a DoZoom button, a horizontal scroll bar and a vertical scroll bar. To edit the zoomed area select the color you want by clicking the mouse on the desired color from the color bar and click the mouse on the zoomed pixel you want to change. The normal sized zoom area will be updated as you change the enlarged zoom area. There is another way to select a color, when the mouse is in the zoomed area, position the mouse over a color you want to select and press the Control key, that color will become the currently selected one. The Currently displayed color palette at the bottom of the Zoom dialog will also be updated with the palette the current color belongs to. To Edit another area, move the scroll bars as required, the new area will appear in the normal sized view, press the DoZoom button and the new zoom area will be "Zoomed" for editing. If you are using more than one color palette, the color window in the Zoom dialog can be updated to the color palette of the line under the mouse cursor by pressing the Option key. It will display that color palette until you press the Option key with the mouse cursor on a line with a different color palette. Click on the Close box at the top of the Zoom dialog to return to the canvas. ,@ main 0"":Q"S") ;8[i111`-T/T    0Y0HH"1h11 1 11 ( H"1"18pI0"18pI0 U Tz Tm T` Tu HHg"1h HHg"1h HH  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~g"1h 8pI0Z8pI0$:H"h e: :  傦  {i+k Untitled.cyc Untitled.pat Untitled.pal Untitled.picA ;8[i`"1H"1h1"1HH 1H "1h1111H1H"111iH@1H"1xd:"1{ie T{ieH{ieH"1{ieHL"1 7"1{ieHS"1{ieHL"1 7"1{ieHS"1{ieHL"17"1{ieHS"1"1c 8cpI0RcH"1cie)a  {ieH"1c"1#:"1y"1#:"1U"1:"1/"1-:"1"1moqsuwy{d}dddddddd{imH"1 "11H"19"11H11iH"11H11iH"111iH1H"11H"11H11iH"1"1"1"1"11H11iH"11H11i H"1HH1H "1hHH "1{i+kcopyrighted by TML Systems,Inc.%Certain portions of this software are#copyright (c) 1986 TML Systems,Inc.#Copyright (c) 1988 by Earl Gehr and CheapPaint ;8[ioHmH"1kHiH"1(H(H"1HH"1 H H"1 H Hh"1 H Hh"1 H Hh"1 "1"1"1"1"1"1"1"1"1"1"1"1"1"1"11H1H"1"11H"1"1{i+k ;8[io{iH"'{iTN=,x{iH "&{iTYH8! {iH "%{iT {iH""{iT\ ? !  {iH"!{iT g M 5 ! {iH" {iT"1HH H-"1hH "1HH!H-"1hH "1HH"H-"1hH "1HH%H-"1hH "1HH&H-"1hH "1HH'H-"1hH "1 "1H"1h*"12"1{i+k==Page 2 to 1\N806.==Page 1 to 2\N805==Stencil On\N804DV*Ll==Create Stencil\N803*Ss==Full Screen\N802V*Dd'>> Special \N800==Coordinates\N801*Gg==Color 2 to 1\N903.==Color 1 to 2\N902==Edit Cycle...\N908V*Kk==Cycle Picture\N907*Bb==Mix Palettes...\N906V*Pp==Assign Palettes...\N904*Aa==Edit Patterns...\N905V*Yy)>> Colors \N900==Edit Colors...\N901*Ee==System\N702.)>> Fonts \N700==Modify Font...\N701V*Mm==Clear\N505*Nn.==Vert Flip\N509DV*Ff==Resize\N506D*Rr==Paste\N503D*Vv==Invert\N504D*Ii==Horiz Flip\N508D*Hh==Cut\N501D*Xx==Copy\N502D*Cc>> Edit \N500==Undo\N507V*Zz==Quit\N410*Qq. ==Print\N409==Page Setup\N408==Choose Printer\N407==Delete File\N411==Picture\N404V==Patterns\N406==Palettes\N405==Save Cycle\N413==Picture\N401V==Patterns\N403==Palettes\N402 >> File \N400==Load Cycle\N412==Help...\N302.$>>@\N300==About CheapPaint...\N301 ;8[i82H0H"11 "1d;d90\/`-T&0^/`-T'0_!/`-T(_90]/`-T)0[/`-T*0a/`-T+=?ACE8EpI0vE: {iGe{i=TH1E: {iGeHO"1hE;{i=HK"1EE;a000`00Y0Z000[0\0]0^0_0w0n0e0\0S0J0A8800 9H`k t} 8;pI} V"1;: {iGeT;: {iGeHV"16H4H"10_  9_ % "B" 0_  9_ % "B" 0[ -(:( 6H4H"1((H(H"1 0\ - 0a - ! 1"11"11"11"11"11"11"16H4H"1  H H$"1."12"1 . H Hy"1 H Hj"1 S"16"1  H H$"1 {i+k ;8[i2H0H"16"1`ddǩɩ-d{iH{iH"1 V"1 !ddǩ!ɩ ˩{iH{iH0"1ߩ"{iHS"11 eH0"11T"1ݩ8pI0v eH0"1 eHT"10"1 eHS"1݂ ݩ%8pI0) eHS"1݂"B"6"1ߩ"#{iHS"17"1 T"1  "6"1թ%ש٩-۩ͩ%ϩ!ѩ-өߩ$".H:"1G"1H :"1E"1{iHS"1sqmo{iHV"1{iHV"1{i+k21 ;8[i [  j ߩ!ݩ8pI0B e{iT{iH K"1݂{iHK"1 ݩ"8pI0B e{iT{iH K"1݂ߩ"!ݩ8pI0B e{iT{iH K"1݂{iHK"1#ݩ%8pI0B e{iT{iH K"1݂11 11 ! " " &$*(N8":<>@BDFHJLNPRT@VXZ\^`bdfhjlnprt vxz@|~HH8 "1h46#Trtvxz?|HH8 "1h022H0H"1HH"1hцө "1{i+k ;8[iddݩߩ@ۍ1ݍ1ߍ1፾1HH]1H "1h((HH]1H "1h 6H4H"1"1T((ۍݍߍHHg"1hm"1S"1n"1.H,H"1.H,H"1"1$"1"1b0"1T"16H4H"1h"1{i+k ;8[i""1 (HH]+"1"1{i+k ;8[i"1HH (]+"1"1"HH"1h{i+k ;8[i" "1٩ ۩ݩ6HH{iH "1h"1"1"1dd۩ݩ,7"1{iHT"14 :"1f""1"1:"1>""1(:"1""12:"1!"1<:"1!"1F:"1!"1PP:"1!"1PZ:"1!"1Pd:"1!"1 n:"1X!"1 x:"11!"1 :"1!"1٩x۩ݩ{iH !H "1H"1H"1h "1 "1"/H"1{i+k Okay upgrades and support.&to provide quality, low cost software,&Your honesty will allow me to continueCharleston, SC 294041135 A Touhey Ave Earl Gehr within 2 weeks to :& required to send payment of $10.00& to legally use this software you are'copied and distributed freely. However,' This software is shareware and may be CheapPaint v1.3 ;8[i8pI0H."1hۥ5-d(8pI:/"1ۅ8pI/"1ۅ8pI::/"1ۅ8pI/"1ۅj8pId۩8pI/"1ۅ)8 0 #H`"""""(#X## {i+  ;ik ;8[i" "11)˭1)11)ϭ1)ɭ1)11)ͩߩ2ᩨHH{iH "1hӆӢ"1A :"1- "vߩxᩄ㩾{iH -H "1vߩᩄd{iH -H "1ߩ$!{iH -H "1{iH K"1{iH -H "1{iH K"1{iH v-H "1{iH K"1{iH n-H "1{iH K"1{iH g-H "1_ߩn㩲 {iH "H "118H /"1Z^:"1b-"1߅ץ٥ۥi{iHS"1{iHL"1H:::H:"11H "IߩL{iHS"1{iHL"11H1H"1H0"1h"z8<:"10 "HH"1hH"1/"1d/"1d/"1d/"1dí/"1dŭ  H"1H"1hѥт /"1  d#/"1   /"1  d#/"1   /"1  d#/"1  9 /"1  dÂ#/"1   /"1  dł#/"1  łH ."1hi17"1{iHT"1H:::H:"1"11H "I'80 +H`g)) *Z**+* eeeeō11  1    "11ϭ1 1 1 1 1H1H"11b0"1{iHT"1H0"1h"z8<:"10 "HH"1hH"1H"1 8pI "1Ӣ "1"1 1 1 1 /  1 1 1H1H"1/H"1{i+kSizeShadowOutline UnderlineItalicBoldOkayCancel Modify Font ;8[i6H4H"1H"1hi᩾8pI062"12"111  ɾHH"1h11H"1h1 1  1  "11H1H"1/H"1{i+;ik ;8[i6H4H"118pI1H"118H"1( "1(J((H(H"1(H(H:"1|("1@8(pI  (8pI  8(pI  (8pI  (  .H,H"1"1 (HH]+"1((H(H"1"16H4H"1|"1( ( (H(H:"1|("1@8(pI  (8pI  8(pI  (8pI  { .H,H"1"1((H(H"1"16H4H"1|"1 ( ( {i+k ;8[i6H4H"1)᭪18pI1H"118H"1   F 8(pI.((H(H"1(: (eH(: (H(: (H"1(:(8(pI(: (H(H:"18(pI0(H(H:"1|("1.H,H"1"1((H(H"1"16H4H"1|"1 5 0((H(H"1|("118pI߂߭(8(em(((H(H:"1|("18(pI ( (.H,H"1"1 (HH]+"1((H(H"1"16H4H"1|"1(((8(pI (:((H(H:"1᭮(: (eH"11)8pI - (: (: (( (: (H(H:"1|{iH"1@8pI (:(((H(H"1.H,H"1"1(: (eH(: (H(: (H"1{iH"1"16H4H"1(H(H:"1"1(: (H(H:"1|"1׍(ٍ(ۍ(ݍ( {i+;ik ;8[i"  H"1;{iH{i6H "16`HH1H "1hن{iLٍۍ"N "S{i7)"Xݩߩ;HH{iH{i<H {iH "1h22HH"1nݩsߩ}2HH{iH ;H "1 tt ddߩi6 8pI06 i6) :6 6  "hH:"1{i6H"1"X1  h H{iH "1h H{iH"1hYH{iH{i2H{iH"1h* 5  % 7"1{iHT"1 8pI06 i6) :6 6  "hH:"1{i6H"1"X1  h 1 "1H{iH&H$H"1h  H "1h%  "b٢"12HH "1/H"16H4H"1"{i+k Next PageDisplay which help file: ;8[i"H"1H"1hHHH "1h "/H"1{i+k ;8[i"H"1HHH "1h "/H"1{i+k ;8[i""Xddݩߩ@H"1HHH "1h"1HH (]+"1"1(H(H"12H0H"1"2H0H"1HHHH"1h"1Y{iH"1"1"1{iH"1H"1h)H{iH"1{iH"1HH"1{iH"1HH]1H "1h((((6H4H"1Y1uH"1"1 (HH]+"1"1"H/H"1{i+k ;8[i466H4H"1 "m "( [ (% %6 "1 (HH]+"1"1 1H1H,"11 eH0"118pI1H"118H"1"10"8X"8Q"K4J"K4C"8<"z?5"D."D'"8 "8"8"8 "8"8"."$)"l&"b"#H "1h ""KH"1h"YqZp[\]^_`+aiɅ7Ɇ6ɇ5Ɉ4ɉɊɋɌɍɎɏ 022H0H"11 "1H1 O"1hZ K 2H0H"17"1 T"16H4H"1"٩%۩ݩ-ߩѩ%ө!թ-H1{iHO"1hqsmo %. {iHV"1{iHV"1" H1{iHO"1hqsik %. {iHV"1{iHV"1" ٩۩ݩ-H1{iHO"1h"٩0۩"ݩ=H1{iHO"1h"H11O"1h % 18pI  %8pI0oH1 eHO"1h78 pI3 eH0"11T"1፪18pI8 11r/T/Tq/@T^/TK/T8/ T%8 0 YEH`DDDEE,E `-/Tፊ"ፀ"႑6H4H"1{i+;ik ;8[i"H"1U٩@۩sݩHH{iH "1h"1ɚ{i-HT {iHTH :"1{iH"1٩۩ݩP{iH HH "1{iHXK"1{iH HH "1H"1h8pI "1ɚ   %(    % " "/H"1{i+;ik Okay CancelWant to clear the screen?Do you want to quit now? ;8[i߭ 40"1 /`-T,"*߂"4""ɓ2H0H"16"1ݩ8pI0o eH0"1 eHT"17"1 eHS"1݂ɜ  ɓ 6 "1HH (]+"1"1 ( /H"1"H"""/H"1n"""_";X"6<Q"<J"EA":"+1"+("+"+"+ "+"+"""."/H"1""_2H0H"1"/H"1""~"2H0H"16"1ݩ8pI0r eH0"1 eHT"10"1 eHS"1݂/H"1  "!  "  ( # /`-T-  1"11"11"11"11"11"11"11"1"!"E K 2H0H"17"1 T"16H4H"1"" $"-"4"4" w" n""T"_ "N"jG"6@-h.ɑ_ɒWɓOɔɕwɖoɗɘəɚɛjɜɝ7O{|ɽɾ!i"e#~$A%&ɅDɆɇɈMɉxɊɋɌ 8pI  H"1hi8pI 0% "- ","1H"1h{i+;ik ;8[i ( " "H{iH"1hͥ)1 "11"1 81pI  18pI %D ˩8pI0)H1H"1hH"1˂ )"1͂)ɥl /`-T, /`-T-  0"1"(0[ -( "1 c0[ -( "1 :""FH+"?   (  {i+k ;8[i""6" "I"!"": "1"1"4"" O"{i+k ;8[iץץ ץ8pI0H."1hۥ d8pI:/"1ۅ8pI/"1ۅ8pI::/"1ۅw:8pI/"1ۅC/"1ۅ)8 0 RH`QQRR4RbRRR {i+  ;ik ;8[i8pI0H."1hۥd8pI:/"1ۅ8pI/"1ۅ8pI::/"1ۅs8pI/"1ۅC/"1ۅ)8 0 ^TH`WS_SgSlSSSS*T {i+  ;ik ;8[i "18pI0. i{eH"1ש٩۩2HH{iH_"{iH "1hӆӢ"1ש٩۩Y{iH _H "1{iHZK"1{iH _H "1{iHZK"1{iH _H "18pI0I 8pI0eH"1i シש٩ ۩ݩ8pI08pI0R ei:{e{iT{iHK"1ギ ii:{i{eT{iH K"1O8pI07"1 ii:{eHS"17"1 ii:{eHL"1 ii:{eHT"1 ii:{eHL"17ש٩ ۢ{iH"18pI0M{iH{iH ii:H ii:H"1傳8pI0y7"1 ii:H ii:::H:"1 "I ii:{eHS"1ႇ8pI0a8pI0> ei:{eHL"1႟ ttt H"1H{iH "1h H{iH"1hH{iH{iH{iH"1h߂z8pI0. i{eH"1B"H{iH"1 t ~ 1 "1 t H "1h8pI0N8pI0+H1 ei:{eHO"1h t {iH"1 t 8pIH"1h8  ei:18ץ ei:18٥ ei:81ۥ ei:81ݥႲ02"1."1H "1h\1 "118ו18ٕ1eە1eݕ{iHS"1{iHS"18pI08pI0fH1 ei:{eHO"1h 5= {iH"1{iH"1   H"1h8 %  H"1h8 %H< {iH"18H"1 ゚w8pI  8pI %  "1Ӣ "1婖8pI0)i Hmu H"18pI0!u H"1/H"1{i+kCancelOkayUndo ;8[iL "18pI0<:i^: : iN: M 8pI06 = i Xd٢j tkt mu i d˩ͩ,HH{iH~"{iH "1hHH"1< :"1}"1'H:"1*H<"1:"1,<"1 =8pI0"1ɩ ˩2ͩϩ8pI0D7"1{iHT"1{iHK"1傼7"1 ˥8{iHS"1Fɩ˩UͩϢHH{iH QH "1ᢅHH/"1iH::H:"1}"1υ˥i{iHS"1{iHL"1Ʌ˅åͅťυǥH:::H:"1 "IFɩ˩UͩQ:"1{iHS"1}"1FѩөUթ{iHS"1{iHL"1HQ:"1muH "Iɩ˩ͩ%ϢHH{iH QH "1ݢHH/"1ɩ ˩ͩjϢHH {iH QH "1HH /"1ɩ˩ͩ{iHS"1H:::H:"1}"1ɩi˩ͩrϥH:::H:"1}"1{iHS"1u{iHS"1{iHS"1{iHL"1{iHL"1H::H:"1}"1H::H:"1}"1{iHV"1{iHV"10^{iHS"1{iHL"1H::H:"1}"1a{iHS"1{iHL"1ԣ::H:"1}"1Y[]0_{iYHS"1{iYHL"1[H]::H:"1}"1{iYHV"1ɩ˩ͩϩ8pI0 {iYe{iT [H ]:::H:"1 "I {iYeHS"1 {iYeHL"1{iH K"1Mɩ˩ͩϩ8pI0: {ie{iT: H: :::H:"1 "I: {ieHS"1: {ieHL"1:: {ieHV"1{iH K"1ɩ˩ͩ{iHS"1H:::H:"1}"1ɩ˩ͩ{iHS"1H:::H:"1}"1Zɩ˩iͩUϢHH{iH }H "1{iHK"1HH{iH }H "1{iHK"1HH {iH }H "1ZɩZ˩iͩϢHH{iH }H "1{iHK"1HH{iH }H "1{iHK"1HH {iH }H "1Zɩ˩iͩϢHH{iH ~}H "1{iHK"1HH{iH y}H "1{iHK"1HH {iH r}H "1H"1H{imH "1hl H{imH"1hH{imH{iH{iH"1h8 pI k5 8pI %kt ۂLHHHۢ."1h =8pI0"17"1{iHT"1H:::H:"1 "IHHHۢ."1h7"1'H:"1*H<"17"1'H:"1*H<"1߅ݥmu iᢅHH/"1 =8pI0"17"1{iHT"1H:::H:"1 "I{iHT"1HQ:"1muH "Imu i8pI0 iSumu8pI0 imu婕mu8pI0 i8pIL8pI02 i:H"h e88pI0! i mu iᢅHH/"1 =8pI0"17"1{iHT"1H:::H:"1 "I8pIL8pI02:H"h e i88pI0! i 8pI0<::i^  : : iNM k hݢfk)hᢅHH/"1 =8pI0"17"1{iHT"1H:::H:"1 "Iݢf8pI4݅f8pI0mu if8pI4f݅8pI0mu ik t dj#: HHHۢ."1h18( 0 sH`hmmMo`ooop4qq+rHrs 1 "1H "1h81pI %r H1{iHO"1h %/ {iHV"1{iHV"1 H1{iHO"1h--  {iHV"1{iHV"1H1{iHO"1hj5{iHV"1H "1h{iHV"1: HH /"1:: {ieHV"1:  8pI0D:H"h e  i ゼmu iᢅHH/"1 =8pI0"17"1{iHT"1H:::H:"1 "I8pI0H1: {ieHO"1hc: {ieHV"1H "1h::  :  cH1{iHO"1h j%y {iHV"1{iYHV"1j {iaHV"18pI0! i ٩8pI0% i iHHH /"1mu iᢅHH/"1 =8pI0"17"1{iHT"1H:::H:"1 "I H1{iYHO"1hj5{iHV"1{iYHV"1j t {iYeHV"18pI02:H"h e id٩8pI0! i mu iᢅHH/"1HH /"1 =8pI0"17"1{iHT"1H:::H:"1 "Ij8pI0H1 {iYeHO"1h {iYeHV"18pI02:H"h e i٥ {iYeHV"18pI02 i:H"h emu iᢅHH/"1: HHH /"1 =8pI0"17"1{iHT"1H:::H:"1 "I; 8pI  8 pI %  "1HH "1婖8pI0)i Hmu H"18pI0!u H"1{i+kCancelOkayRevertTo There All Below Set 1 Line From Here All AboveSet AllUseSetPaint Init CycleCycleRevFwdFSLineSelect PaletteAssign Color Palettes ;8[i "1$~8pI078$ H"1h"18pI0<8 i {eeTӥ8 i{i{eTddբ$t~@HH{iH-"{iH "1hHH"1d :"1"1c-HH{iH "SH "1H::H:"1"1{i{iTi{iHS"1{iHL"1H:::H:"1 "I :HH{iH H "1{iHK"1HH{iH H "1{iHK"1HH{iH H "1{iHK"1{iHL"1HH{iH H "1dݩ۩8pI0݅ۅ8pI0D i{e{iT{iH K"1ゼ{iHK"1iݥiۥbd8pI0f8pI0C i"Th"zzH7"1 i{eHT"17"1 i{eHS"1e i)"zH7"1 i{eHT"17"1 i{eHS"1 i)"zH7"1 i{eHT"17"1 i{eHS"1 i)H7"1 i{eHT"17"1 i{eHS"1!80 ĄH`܂fڃF 2 i"Th"zzH7"1:::: i{eHT"17"1:::: i{eHS"1e i)"zH7"1:::: i{eHT"17"1:::: i{eHS"1 i)"zH7"1 i{eHT"17"1 i{eHS"1 i)H7"1 i{eHT"17"1 i{eHS"1!80 H`Մ_Ӆ? 9800( H`ׂЄׂЄׂЄׂЄׂЄׂЄׂЄׂЄ ソ傚0cn8dݩ۩8pI0݅ۅ8pI0 i {e{iT7"1{iHT"17"1 i {eHS"1 i {eHL"1{iH K"1Nݩ۩cn{iHK"10J@iDcnLݩ۩8pI0-݅ۅ8pI08 i{e{iT8 i{ieH0"1{iHT"17"18 i{eHS"18 i{eHL"1{iH K"1'ݩ۩cn{iHK"1DTi7"1{iHS"1{iHS"1{iHL"1{iHL"1ע7"1{iHT"18 i{eH0"1{iHT"10cBDcTT^H"1H{iH "1h H{iH"1hH{iH{iH{iH"1hقZHHH٢."1hթ$~8pI0բ"17"1{iHT"1H:::H:"1 "I {ieT%8 i{i{eT{8 i{e{iT8pI0< 8 ie{eTy "1{iH0"1{iHT"18 i{eHT"1d8pI0f8pI0C i"Th"zzH7"1 i{eHT"17"1 i{eHS"1e i)"zH7"1 i{eHT"17"1 i{eHS"1 i)"zH7"1 i{eHT"17"1 i{eHS"1 i)H7"1 i{eHT"17"1 i{eHS"1!80 zH` 2 i"Th"zzH7"1:::: i{eHT"17"1:::: i{eHS"1e i)"zH7"1:::: i{eHT"17"1:::: i{eHS"1 i)"zH7"1 i{eHT"17"1 i{eHS"1 i)H7"1 i{eHT"17"1 i{eHS"1!80 sH` 9800( H` ソ傚H"1!80 H`))) 1 "1H1{iHO"1h% %M "1H1H1H"1hע"1ע7"1{iHT"1 H1{iHO"1hH "1h%?8pI0H1 i{eHO"1hע7"1 i{eHT"17"1 i{eHS"1d8pI0_ߩ8pI0<"゚߂" i i) e i i"Th H"Ih i i"Th H"Ihl i i"ThעH"Ih!80 H`A ߂": i: i) e: i: i"Th H"Ih i i"Th H"Ihl i i"ThעH"Ih!80 BH`9ݕ 9800( hH` {iH0"1{iHT"18 i{eHT"1߂ァH1{iHO"1hH "1h%t8pI0]H1 i {eHO"1h#ע7"1{iHT"1傣H1{iHO"1hH "1h%x8pI0aH18 i{eHO"1h# "18 i{e{iTӥ8 i{ieH0"18 i{i{eT{iHT"1dߩ8pI0f8pI0C߂ i"Th"zzH7"1 i{eHT"17"1 i{eHS"1e i)"zH7"1 i{eHT"17"1 i{eHS"1 i)"zH7"1 i{eHT"17"1 i{eHS"1 i)H7"1 i{eHT"17"1 i{eHS"1!80 ךH`yY 2 i"Th"zzH7"1:::: i{eHT"17"1:::: i{eHS"1e i)"zH7"1:::: i{eHT"17"1:::: i{eHS"1 i)"zH7"1 i{eHT"17"1 i{eHS"1 i)H7"1 i{eHT"17"1 i{eHS"1!80 МH`rR 9800( H` ソ߂H"1傟      "1HH "16H4H"1$~8pI0#8$ H"1{i+kCancelOkayRevertDefaultSelect PaletteChange Patterns ;8[i "1d{iH"12ͩC8pI0:82 iH͢"1hע"1͂{i{iTͩ8pI0H"h{ie "z H"h 8"z H"h H"h e8͂Uϩѩө"HH{iH "1h"1? :"1""1ϩѩ&өթͩ8pI0d͢7"1{iHT"17"1{iHS"1{iHK"1͂&ϩѩ2өթͩ8pI0U{iH !H "1{iHK"1͂/"19ϩѩHө}թͩ8pI0{iH "SH "18 {iqeχՠӠi8 {iqeHS"18 {iqeHL"1υ٥8 wۥӅݥ8 wi{iHS"1{iHK"18 sH8 u:::H:"1͂6 "I< "I* "I 8 wH8 u:::H:"1͂9"1>"1+"1 ͂/"1/"1/"1wϩѩө{iH "SH "1/"1υ٥ՅۥӅݥiߥiH:H:"1 "1{iHS"1{iHL"1H:::H:"1 "I:ϩѩGө{iH H "1{iHK"1{iH H "1{iHK"1{iH H "1{iHK"1{iH H "1H"1H"1hႂ ͩ8pI0vH/"1H"hH/"1H"hH/"1H"hH/"1˩8pI07"18 {iqeHT"18 sH8 u:::H:"1˂]H"hH "IVH"hH "I7H"hH "I ˂!H/"1͂_ ͩ8pI0HH."1hrH"hH."1hH"hH."1hH"hH."1h H"h H"h eH"huũddddkmo͂r˩8pI0ˢ/"1˂I˩8pI0ˢ/"1˂ {iH"1˩8pI07"18 {iqeHT"18 sH8 u:::H:"1˂]H"hH "IVH"hH "I7H"hH "I ˂!͂bXH."1h7"1{iHT"1H:::H:"1 "I2ͩC8pI0ע"1͂{iH"1{i{iTͩ8pI0'H"h{ie "z H"h 8"z H"h H"h e8HH."1h8pIVH"hH/"1H"hH/"1H"hH/"1˩8pI07"18 {iqeHT"18 sH8 u:::H:"1˂]H"hH "IVH"hH "I7H"hH "I ˂!͂d(: : e: : {iH"1H"vhU" {ieT{i{iT{iH"1ͩ8pI0'H"h{ie "z H"h 8"z H"h H"h e8HH."1h8pIVH"hH/"1H"hH/"1H"hH/"1˩8pI07"18 {iqeHT"18 sH8 u:::H:"1˂]H"hH "IVH"hH "I7H"hH "I ˂!͂a{iH"1I8@08 QH`ppp( 8pI  "12ͩC8pI0'ͥ82 iH"1͂ "1{i+kCancelOkayRevertDefaultSelect PaletteBGREdit Color Palettes ;8[idǩ ɩA˩,ͩϩѩpөwթש٩۩ݩ ߩ 勩{iTdǩɩ"˩3ͩDϩUѩfөwթש ٩ ۩ ݩ ߩ 勩{iTdǩɩ˩ͩϩѩөթש ٩ ۩ ݩ ߩ 勩{iTdǩɩ ˩0ͩ@ϩPѩ`өpթש٩۩ݩߩ勩{iTdǩɩ˩ͩϩѩөթש ٩ ۩ ݩ ߩ 勩{iTdǩɩ ˩0ͩ@ϩPѩ`өpթש ٩ ۩ ݩ ߩ 勩"{iTdǩɩ"˩3ͩDϩUѩfөwթש٩۩ݩߩ勩B{iTdǩɩ˩ͩϩѩөթשy٩j۩[ݩLߩ=.勩b{iTdǩɩ˩ͩϩѩөթ שy٩j۩[ ݩL ߩ= .勩{iTdǩɩ˩ͩϩѩө թ שy ٩j ۩[ ݩLߩ=.勩{iTdǩɩ,˩=ͩOϩRѩeөwթש٩۩ݩߩ勩{iTdǩɩ˩ͩϩѩөթשy ٩j ۩[ ݩL ߩ= .勩{iTdǩɩ˩ͩϩ ѩ өթשy٩j۩[ݩL ߩ= . 勩{iTdǩɩ˩ͩϩѩөթש ٩ ۩ ݩ ߩ 勩"{iTdǩɩ˩Cͩtϩѩө'թHש٩۩ݩ<ߩᩞ勩B{iTdǩɩ˩ͩϩѩөթש ٩ ۩ ݩ ߩ 勩b{iT8pI0,ԥ eH"18pI0K8pI0  t  "" 33 DD UU ff ww u i ̕] ݕQ E 9800( ~H`ȷԷ(4@LX  e{iTéŋ{iT""""3333DDDDUUUUffffwwwwéŋ{iT̅݅݅̅wwéffŋ{iTddddddddéŋ{iTéŋ{iTwwwwwwwéwŋ"{iT444444444444444é4ŋB{iT;;ݪݪ;;ݪݪ;;ݪݪ;;ݪéݪŋb{iTffffffffffffffffwéwŋ{iT33DDUUff33DDUUff33DDUUff33DDUUéffŋ{iTUUUUUUUUUUUUUUUUéŋ{iT;;R%R%;;R%R%;;R%R%;;R%éR%ŋ{iTéŋ{iTwwwwwwwwwwwwwwwéwŋ"{iTwwwwwwwwppwwwwpwwwpwwwwwéwwŋB{iT""33DDUUffww̅݅é""ŋb{iT8pI06 eeT{i+k ;8[iDS8SpI0MS iUHSH"1hSHS H"1Sqs}"IhMMHH+"1Ɇ]mo}"IhIik}"IhEZik}"IhImo}"IhEIHHEHH+"1MHH+"1S8SpI0MS HSH"1h SHS iUH"1SS8SpI02Si HuSu H"1SS8SpI0(SHu H"1S{i+;ik ;8[i".H,H"1HHg"1hӆӢ%"1{iH "1dd۩ݩ@HHg"1hm"1{iHS"1n"1Y"1{iH"1$"1ݢ"1{iHuH"1%9moHHikHH}+"16ikHHmoHH}+"1%  qsik % &  qsmo %z 1٭1ۭ1ݭ1ߥmu٥muݭ6H4H"1Y{iH"1 (HH]+"1 "1.H,H"1"1{iH"1Ӣ$"1"HӢh"1h"1{i+;ik ;8[i1 "11"1H{iH1H1H"1h46g- - 2 H"1/T- , - 2 H"1/ T,  %U 0\  & %5 H"1/ T&  0^  ' %5 H"1/ T'  0_  ( %5 ` H"1/` T( ) 0]  ) %5 H"1/T) 0[  * %5 @H"1/@T* a 0a  + %2 H"1/T+ ͌    /H"1 #H"1#H"1{i+k ;8[i6H4H"1 > H H$"1$:"1 H Hj"1 6"1."1b0"11T"1"1 (HH]+"1"1.H,H"16"1ddݩߩ@HHg"1hՆբ%"1{iH "1HHg"1hm"1{iHS"1n"1Y"1{iH"1$"17"1{iHT"1"1{iH"1բ$"16H4H"1բh"1 (  H Hj"11"11"11"11"11"11"11"1{i+k Stencil On ;8[i6" ( "1 (HH]+"1"1"X}[]"Ih7I8IpI0MI iWHIH"1hIHI H"1I7HH+"1qsmoiqksu umqosu uqs[]}[]"Ih77HH+"1I8IpI0MI HIH"1h IHI iWH"1I.H,H"1HHg"1hEEHH%"1{i=H "1Ktt@HHg"1hSm"1{iKHS"1SHHn"1Y"1{iKH"1SHH$"16H4H"1OKmuKOmuOY{iKH"1I8IpI02Ii HuIu H"1II8IpI0(IHu H"1I.H,H"1"1{i=H"1EHH$"16H4H"1EHHh"1SHHh"1"1 (HH]+"1"1"H{i+k ;8[i٩8pI0 قHH1H "1hmoHH1H "1hikik}"IhH+"1mqosddݩߩ@ۍaݍcߍegik[]_Y.H,H"1HHg"1hՆբ%"1{iH "1HHg"1hm"1{iHS"1n"1Y"1{iH"1$"17"1{iHT"1"1{iH"1բ$"16H4H"1mo[]" բh"1h"1{i+k ;8[iHH"1h߆ש1٩۩<ݥׅمۅ݅ שۥׅمۅ݅שۥׅمۅ݅ש!ۥׅمåۅť݅ǩթ8pI0H1: {ieHO"1hՅ: {ieHV"1".H,H"1HHg"1hцѢ%"1{iH "1dd٩۩@HHg"1hm"1{iHS"1n"1Y"1{iH"1$"1ۢ"1{iHuH"16H4H"14u8uHu8u;uiu.uiu!80 H`ԪԷ u8pIu28upI2umuץmuY{iH"1 (HH]+"1"1.H,H"1"1{iH"1Ѣ$"1"HѢh"1h"1ߢ"1: {ieHV"1Ղ+թ8pI0-Յi Hue H"1Ղթ8pI0!խu H"1Ղ{i+k ;8[i:".H,H"1HHg"1hEEHH%"1{i=H "1Ktt@HHg"1hSm"1{iKHS"1SHHn"1Y"1{iKH"1SHH$"1"11uH"1I8IpI02I iWHIH"1hII8IpI0*IHI H"1I]H[H }+"1 "/gH "1hH"vh H"1hII8IpI0-IHI iWH"1I*"1Kt@{iKH9"16H4H"1KtMtO@QKmuKOmuOY{iKH"1 (HH]+"1"1.H,H"1"1{i=H"1EHH$"16H4H"1"HEHHh"1SHHh"1{i+k ;8[i.H,H"1HHg"1hՆբ%"1{iH "1ddݩߩ@HHg"1hm"1{iHS"1n"1Y"1{iH"1$"1"11uH"1"1.H,H"1"1{iH"1բ$"16H4H"1բh"1h"1{i+k ;8[i2H0H"1 {ieT{iHL"1{iHV"1{i+k ;8[i2H0H"10_ %8pI0 8"z} 8"z}7"1 eHL"1 eHT"1 eHL"17"1"8pI  8&pI % :: : 6"1v::H:"1="1H:"1="1::H:"1="10:H:"1="1H:"1="1:H:"1="1H:"1="1::H:"1="1H:"1="1::H:"1="1H:"1="1&:"1="1:::H:"1="1H:"1="1:::H:"1="1H:"1="1}::H:"1="1H:"1="1::H:"1="1H:"1="1::H::H:"1="1HH:"1="1::HH:"1="1H::H:"1="1f:"1="1:::H:"1="1H:"1="1:::H:"1="1H:"1="1:::H:::H:"1="1HH:"1="1:::HH:"1="1H:::H:"1="1%8 0 SH`.ޱ8  %8pI07"1 eHL"1 eHT"1 eHL"17"18 H8 H,"1傮 iH:"1 H:"1 H:"1{ H:"1_ iH:"1A H:"1%8 0 H`)Ge ="1l{i+k ;8[i,"1H "1h1 "1 "H1"1ho1::H1H:"1="11H1H:"1="11H1::H:"1="1H1"1h1:H1H:"1="11H1H:"1="11H1:H:"1="11H1H:"1="1MH1"1h1::H1H:"1="11H1H:"1="11H1::H:"1="11H1H:"1="1H1 "1h1H1H:"1="11:::H1H:"1="11H1H:"1="11H1:::H:"1="11H1H:"1="1H1$"1h+1::H1H:"1="11H1H:"1="11H1::H:"1="11H1H:"1="11::H1::H:"1="11H1H:"1="11::H1H:"1="11H1::H:"1="1vH1("1hV1H1H:"1="11:::H1H:"1="11H1H:"1="11H1:::H:"1="11H1H:"1="11:::H1:::H:"1="11H1H:"1="11:::H1H:"1="11H1:::H:"1="1<{i+kHHH ;[ HHHHH &"  Ȁ8: ))e:  +  ;ik;8 ;[H({iH "h+;ik;8 ;[d)  : H"h{i H)"{i H "H{i H{i HO"h)HH:" HH")j{i H)"H i H:" @HHg"{i HHH H H~"h"H 8 H:"HH "h)5HH "h)!HH ")  "1+;ik}xsn i d _ZUPKFA<72-(# "#'( )*";i1(kH11;i{HH ;[ H "H"hHHH "hhH "HHHH "hhe: "k ;[  :T+  ;i k"1k ;8 [  d) e )e     ;e i ;[HH"ᯗHH"""1k H;[ I Iʀ f  8 F F I+k H;[IIʩ FeI+kcck##k8 # zz(k H;[ I I IIʀ&&ff !  8  FfFfͥ  IIzzzzzz+k8kHHHHH ;[HHHHH &"  Ȁ 8 : ) )e:   " +  ;ikHH ;[  )   " +;ikHZHH ;[ 80,* )e)     HH"% ȷȷ HH"g+k;8 ;[$$$$$) d {iH"]L $1+ $#;i"k:Q S.14171:1>`-BI`-JN/RY/Z`flruy00111111(11 1:JNUVZ^zefzjnmuvmz~``u  1  1  1     2;QT 11111111111 111.191I1S[w111111111"1/1\1111yy11UU11// 11!+111111111111111 1.191<1G1J1N1Q1f1p1z11111111111111om1ki1((11   1  1! % 013 7 B1L1V1`1j1t1~111111111111111 1 1# & ) o, o; @ 'M 'Q NT NW =Z =] ,` ,c f i l o r u x { ~          x x  & & Y Y H H 8 8 ! !            % %   " 1 6 "C "G \ J \ M ? P ? S ! V ! Y  \  _ b e h k n q t   ! !     g  g  M  M  5  5  !  !         1     1 1 ! !" 13 18 "; "G 1X 1] %` %l 1} 1 & & 1 1 ' ' 1 1 1 1 1 12011110/`-/`-0 /`-/`-#&02/6`-=/>`-ADJR0^/b`-i/j`-mpvy0/`-/`-0/`-/`-1131Y1p0y0000000000000000 000499;k=?ACEGIKMO QSUWYt[]}_t w 1  16410B 09B=E0U(_(d6h4s1vy|((((100 11111!1.11654@1C N R ]1j1mpz1}   1  1 11   12 01!1%`(`f1j m w1{ !~ !11111 117:J1TWg1knx111B11*1. 1 ;1? O U`11GG11EE11sqm o#1:1Y _ e k 11$>1111/151;1A1G M S Y _ekqw}" &$*(8:<>@BDFHJLNPRTVXZ\^`bdfhjln p rtvxz%|+~147<8?8I1N4Q6WTZ]`rctivoxuz{|8810220111111 11)1.(1(<1P1U X [6_4j1mpz1~((1111.,1. ,1$12158B1EbHbR1UXb1e6i4t11111111H'1AL1~1111111f"f"111>">"'171:"="G1W1Z!]!g1w1z!}!11!!11!!11!!11!! 1 1 X! X!' 17 1: 1!= 1!G 1W 1Z !] !g 1 ! ! 1   1 1 1 1  / / !1"1"1#1O#1#1#1###"#"#"#"#"#(##X###$#$1&$1.$14$17$1?$1G$1M$1P$1$1$1$1$-$-$ $ $$-$-%1-%-0%-H%1r%-u%-%1%1%-%-%1%1&v- &v-!&1:&1P&n-S&n-k&1&1&g-&g-&1&"&"&1&1'1#'1&'b-)'b-3'1Z'1s'1'1'1' ' 'I'1'1'1'1'1'0'0'1(!(1$(0'(0-( 0( 3(@(1Q(1T(u(1}((1((1((1()1!)()-)2)7)>)A)M)1^)1i))1))1)))1))1) *'*1,*G*1O*\*x*1}**1***1**1* +1+1"+15+1J+1W+1Z+1a+ d+ g+I+++g)+)+ *+Z*+*+++*+1+1+1+1+1+1+1+1+1,1,1,1,1,b,b),1<,1@,0C,0M,1T,o,1r,0u,0{, ~, ,,1,1,,,1,1,1,,1,1,1,1 -----&-1/-14-18-1F-1I-/L-/X-1-6-4-1-1.1.1'.1*.1/.2.5.8.;.S.1X.1[.1k.1o.1t.1~.1.1.1.1.1././.1.6.4.1.1.1/1 /1/1/(/()/1,/(7/:/=/(@/(C/(G/(U/1X/(\/(g/1m/(p/(z/1/(/(/(/(/(/./, 01010 01014070:0(=0(@0(D0(R01\01_06c04n01{01~0(0(0(0(010(0(010(0(0(1(.1.21,=11G11J1M1P1(S1(V1(Z1(h11r11u16y1411111(1(161411111111112172(D2G2J2(M2(P2(T2(b21e2h2k2(s2(v2(2(2(2(2(212(2(2(2(2(2(212(2(2(212(2( 31 3.3,31%31(3+3.3(13(43(83(F31P31S36W34b31o31333(3(3(3(313(3(31313(3(3(3(3(3(313(3(414(4(#4()4.-4,841B41K4O4`41c4f4i4(l4(o4(s4(4141464441414(4(4(4(4(4(4(4(414(4(4(5151$505(85(B5(H5(O5(W5([5(f51|515(5(555(5(5(5(515.5,5151555(5(5(5(5(5(6(6166261<61?66C64N61Q6(U6(`61l61o6(w6({6(61616(6(6(6(666617; 7;-71B71V71g7j7o7t7w7z7}7N77777S7777777X81&81U8;X8;p818888881 91999X91T91r9191 :1:19:E:Z:j:~::1:1:::X:1:1:1:1;1$;1K;N;Q;b`;1s;1v;/y;/;1;6;4;1;;;;;1;1<<<1<</ </,<1C<G<J<V<1Z<^<i<1s<w</z</<1<1>>,>1B>1M>1a>1f>(i>(l>(o>(~>>>6>4>1>Y>Y>1>1>u>1>1>>>1>1>H>/>/>1?4?6#?6'?42?15? @?G? R?( [?j?({? ?1???1?1?1?1?1?1???1?1 @1@1@1+@18@1;@0A@8H@8O@K4V@K4]@8d@z?k@Dr@Dy@8@8@8@8@8@8@.@$)@l&@b@#@1@@K@1@A0A2A2A0A1A1A1A1A1A1A A A1A B B2 B0B1#B1&B )B 3B16B6:B4EB1KBxB1{B1B1BqBsBmBoB1B1BB1B1B1CqCsCi Ck5C1HC1KChC1kC1~C1CC1C1C1CC1C1C1C1C1C C1D 4D17D1@DCDSD1wDzDD1D1D1D1D1DDD1D1D/DD/DD/DD/DD/D@E/E@ E/ EE/EE/ E'E/(E/E/3E :E/;E TEYEYED[ED]ED_EEaEEcE,EiE`-mE/tE`-uE/xE{EEEEEEEE6E4E1EEEE1F1/F1KF-HSF-HhFHpFHF1F1F HF HF1F1 GH GH%G16G1]G1G(G GG/G/G1[H pH1uH {H/H`-H/H`-HHHHH4HHH2H0H1H1HII1II.I1;I1DIGIWI1I1III1I1I(II/I/I1IHIIII/I/J1 JJJJ;!J6<(J<1JE8JAJ+JJ+SJ+\J+eJ+nJ+wJ+~JJJ.JJ/J/J1JJ_J2J0J1JJ/J/J1JJ~JJ2J0J1J1 K#K3K11\1uzz|~T1111'41V1c111Ɛ1Ӑ11 1*171U1nssuwyّܑ1)) ) 111"1%181b1f1j1u1111111В1111,1J1W1u1T6IfTITДIA`TITҕITI=BBD9FHݕchhjlnprtvxz|~11Ж1111$1J1M1k111111Η1111,1|11 T$1F1S1u111Ǚ11 1*171U1p1111ҚךךٚyۚݚYT1?1L1n111111#101N1i1111˜ММҜrԜ֜R  69E111641ݝ1B1Y111ޞ,BZ1Ɵ1֟1ٟ"ܟ"1101=1P1i1!!Р11 1Q"ST"Sl1ġ11&1?1h1u x {I  I  I111"1^1q11"S"Sɣ1ݣ11  1)1B1W1_ b eI1Ĥ1ڤݤ11$'?1X1nq1111121;R1v111Φڦ ݦ I  I   I`11Ƨ1ԧ11$<S11"1F1g11  Iɩ ̩ ϩIܩ  I91I1\1q1y | I1ƪ1,H^v1֫1߫11:1[11  I  ìIЬܬ ߬ IFz1~vݭ1/Kay1®ٮ111=1^11  I ï ƯIӯ߯  I31LQQSUWY[]_acegikmoqpspupw(y{}1Ͱ11O\ l"y˳Bس*b7GTd"qöBж"b/TWg1y~~ȷԷ(4@LXȸ)67D"]Bjb̻!.GT "mBzϾbܾ y1 1qsÿI1moI.i1kFI^iakvImoI11-13 Q1u 1u 1.!,,181L1_1y1111YY1111u 1mo-i0kM1SiVkfmio1qsikqsmo1111 uu64%1(Y+YG1PTe1s1v.z,1111H11111 111%1)141>4C6Ue qt1//   1/ /   0*E H T1X/\ c/d jmpz0  1/ / 0 ` ` 1 /$` +/,` 258B0Vqt1//0@@1/@/@ 09<H1L/PW/X^adkn//11164(1+ 6 : E1HɝKɝX1[ _ j1o {11bb1111111.,111$171C1S1f1t1wYzY111111116411(! $) - 81E1R1_1l1y111(111X[]IO1d o11qsmoiqksu  umqosu  uqs[][] I;1r1x 1.,1111121E1X1[Y^Yh1{11641uuYY1u &1[u` k1}.,1111641111 "1,1/Hb y11mo11ikikI1mqosace g#i&k5[8]>_AYD.H,S1_1s111111YY11111$171E1H6L4W1Zm]ol[o]r 111B1E1c11.,1111111"1%Y(Y21E1S1b1ehwu1641uuuuuuuuԝԪԷuuuu$u,u1Y4YP1Y]n1x1{.,1111H11118u@ K1sux 1.,1111141G1Z1]Y`Yj1}11111u116 A1S]W[n1q |/g1v 11181;6?4J1mu{uYY111.,111164$1'H;1N1e.i,t11111111YY11#1-1036191?uM1W1Z.^,i1loy11164111201 %181O2S0^1a0ܬܬ11!11:=S1`11111 11*1=1M1]1m1}1111111111$141E1U1g1w1111111111"131C1T1d1x1111111111'171I1Y1k1{111111111%151NSSU.WY8[]11111 #11C1Oa1m}1111)Ge 1=1K1W1Z1d1g rw1z1}11111111111111 1 1%1*151E1H1M1X1h1k1o1{111111111111111 111 1-1=1@1D1Q1a1h1k1n q {1111111111111111111*1:1A1D1G$J$T1`1f1q11111111111111111111)191<1B1O1_1b1h1u1111((111111111111111)191<1@1N1^1a1h1v111111111111111 1111!9@Vnu1[`kp|1  bov}g]1 (" ,@ ~GLOBAL >j7IkW]GI{[}MpduWPB/ G\ BSMASWuv1 ,@ ~global 1Zu ,@ sub1 u ;8[i F }[]"Ih  G {iFTB[]> F G H {iFTB> F  G H {iFTB>` G {iFTB>  ɑɒɓVɜ H"1{iFH{iFH{iOH "16H4H"1 O6 "1HH (]+"1"1 Os T{iUT_{iUTJ{iUT5{iUT ɑɒɓɜ "1{ie"NB>"X"bɓ  ɜ %a .H,H"1HHg"1hHH%"1{iH "1tt@HHg"1hm"1{iHS"1HHn"1Y"1{iH"1HH$"18pI02 iHH"1hHH+"18pI0M HH"1h H iH"16H4H"1tt@mumuY{iH"18pI02i Huu H"18pI0(Hu H"1 (HH]+"1.H,H"1"1{iH"1HH$"16H4H"1HHh"1HHh"1 "1 {i+;ikLoad which Cycle set:Load which Patterns:Load which palettes:Load which picture: ;8[i=t;t}[]"IhWEC{iOTK[]G{iOT&ECt{iOTKG{iOTECt{iOTKG{iOTvECt{iOTKG {iOT ɔɕɖ<ɝ H"1!{iOH{iOH{iOH "16H4H"1"1HH (]+"1"1O"1ɖ  ɝ %< .H,H"1HHg"1hHH%"1{iH "1tt@HHg"1hm"1{iHS"1HHn"1Y"1{iH"1HH$"11uH"1"1{iH"1HH$"1HHh"1HHh"18pI0M iHH"1hH H"1HH+"18pI0-H iH"1 T{iUT_{iUTJ{iUT5{iUT ɔɕɖɝ {ie"%{ieECʍ"1={ie"NKG"]1;"b;H ; + = + = H  "1H"1U6s HH{iH "1h??HH"1=+ ; +  :"1"1_?HH{iH H "1{iH_K"1?HH{iH wH "1=t;t ; H = H {3 :"1e"1;t=tB?HH{iH `H "1 H"1h998pI  ?HH "16H4H"1"1HH (]+"1"19>"1{ie"%{ieECʍ"1={ie"NKG"]1;"b;H ; + %= + %= H % "1{i+;ikOkayThe disk is full. Try againCancelThe disk is write protected.Save Cycle set as...Save Patterns as...Save palettes as...Save picture as... ;8[i2 6HH{iH "1h"1 :"1"1 :"1"1-"{iHH" "1KZn{iH H "1"{iH H "1H"1t H"1h?{iH"1{i"%1,"1 7:"1"1"1"1q"1U"1E"1|1"1i"1V"1C'M+X@cDnEyFNQ A:"1"1.tF,H "1h7"1{iHT"1    %  "1/H"1{i+kClick mouse to continue.Undefined error.Directory structure damaged.Access not allowed.File not found.Volume directory not found.Path not found.Invalid pathname syntax.Disk is write protected. I/O Error.Cancel Okay Example : /SystemDisk/MyPictureDelete which file? ;8[i6H4H"1(!((H(H"1 6"1."12"1 H H$"1 H Hp"1 H Hy"1 H Hp"16"1 W."12"1S"1 H Hy"16"1{i+k ;8[i6H4H"1 o."12"1S"1 H Hy"1 0"16"1 6"1."12"1 H Hp"1 H Hy"1 H Hp"1 H H$"16"1(^8(pI(: (H(H:"1(8pI(H(H:"1"1{i+k| ;8[i ׭ ٭ ۭ HH"1h߆6H4H"1{iH "18pId㩕8pImu2H0H"1 J :"1"1 :"1"1 {iH" h{i{iT{iH H" h{i{iT:"1))8pI%7"1{iHT"17"1{iH"1{iH" h{i{iT{iH H" h{i{iT :"1))8pI*7"1ש {iHT"17"1{iH"1 ߦ026H4H"1{i+kV >H > ;8[i/`-T-1 "1"1H1H1H"1h"11"1HH1H"1h)H"1h㭪13HH"1h)H"1h 13HH"1h)H"1h E81pI *H"1h)H1H"1 {i+k ;8[i6H4H"1   H H$"16"1."12"1S"1 H Hy"1  H H$"16"11"1(^8(pI(: (H(H:"1(8pI(H(H:"1& "1   H H$"1."12"1S"1 H Hy"1 0"1  H H$"16"1H"1h{i+k| ;8[i6H4H"16"1"1 (HH]+"1"1 H Hj"1 H"10#"8?"88"81"K4*"z?#ɅɇɌɎ /H"1$0"10"1/`-T, "1HH (]+"1"1"H"!{i+k ;8[i6"1"."12"1 W"$:"1 H Hj"1"1 (HH]+"1"1 2 "$:"1 H H%"1  6"1  "H {i+k Stencil Off Stencil On ;8[i  H H$"1H"1hխ6H4H"1."12"11 "181pI118pI111H "1h1 "1 "81pI118pI1H{iH "1h %R81pI 18ӂ81ӥ81pI 18т81ѩ  d 18pI;ݥ̉#e"z"z 8ق1dς8̉e"z"z e݂1ݥ٩ϭ18pIAۥ̉)e"z"z"h8ׂ1d͂=̉%e"z"z"heۂ1ۥשͩ8pI{iHS"1{iHS"1׍ٍۍݍ , 0"1wy{} R 0"10"10"10"10"10"1 S"16"1  H H$"1{i+k ;8[i6H4H"16"1 o  H H$"1."12"1 ׆HiH"1 "1 H Hy"1H1 H Hu"1hH "1h18181 "1 "1818߭ H H8H8Ho"1 ׆HiH" H Hy"1 H Hy"111ۆ݂* H Hj"1  6"11"11"11"11"11"11"11"1  H H$"1X H Hy"1wy{}  H H$"1"z?6"1{i+k ;8[iH"1hݭ6H4H"16"1{  H H$"1."12"11 "1S"1H1O"1h*H "1h18181 "1 "18188H8HK"18pI888pI 88pI 8@8pI8@8@S"1S"1  6"11"11"11"11"11"11"11"1  H H$"1VS"1wy{}  H H$"1""6"1{i+k ;8[i ""1 (((HH]+"1) ( HH]+"1"1 6"1."12"1 H Hp"1 H Hy"1 H Hp"1 H H$"16"1 u6H4H"1 HHg"1hHHg"1hن%"1 T H H٢q"1H٢x"1h$"1٢$"1 H H$"1 ݆HiH"6"1 V"11"1s_b0"1T"10"10"1      0"11"11"11"11"11"11"11"1 $"1   6"CH!HH"1dѭխϭͭ:8pI0::ϥͅӥ{iH"1͂kaӭ׭ϭͭ:8pI0::ϥͅѥ{iH"1͂ ."12"1 *$"1٢h"1h"1 w  H H$"1  S"1  H Hy"1  H H$"1 6"1(({i+;ik ;8[i1 "111݆1"1H{iH1H1H"1h46  81pI % "1Hݢ"1h1"18pI0)H1H"1hH"12H0H"11 eH0"11T"16H4H"1 {i+k ;8[iHH"1hɆ d H{iH "1h )ӅՅå::::H{iH "1h )bӦ">hņɥŦ"^pI  H{iH{iHO"1h%     d {i+k ;8[i1 "111HH:"1t t  6"1  ."11110"11 "1 "H{iH "1h 581pI188181pI18818pI 111H1H<"1 iH iH<"1H "1h."11 eH0"1  6"11H1H<"1 i1 i1)  H"+3h  HH<"10ɌHHg"1hm"1HH:"18pI07 iH iH<"1HH<"1HHn"1HHz"1HHh"1 m"1HH:"18pI07 iH iH<"1HH<"1 H Hn"1H"1h{i+k ;8[i  6"1Y1  0Y  0ɉ %% 0"1 ."1{iH "1߆11:"1H "1hG1 "1 "H{iH "1h %y81pI 18݂81ݥ81pI 18ۂ81ۭ0Z8pI11  d 18pI;٥Ή#e"z"z 8Ղ1dт8Ήe"z"z eق1٥թѭ18pIAץΉ)e"z"z"h8ӂ1dς=Ή%e"z"z"heׂ1ץөϭ0Ʌ  0Ɇ - {iHS"1{iHS"1 0ɇ  0Ɉ - {iHX"1{iHX"1 0Ɏ  0ɏ b {iH8"zH8"zH]"1{iH8"zH8"zH]"1 0Z.:"11H1H<"1<"10Y  0ɉ  ."1Ήu8pI3="1IH="10ۢ="1IH="11H1H<"1."111 ."11 eH0"1 6"1m"1("10{iH8"zH8"zH^"1{iH8"zH8"zH]"1{iHT"1{iHS"1{iHX"1{iHY"1tߢ<"1c:"11H1H<"1@ZɅzɆ\ɇɈɉɎ ɏ '"1 H Hn"1{i+k ;8[i0a   6"1 0a -  H H$"1 HHg"1h1 "111߆11ۆݢm"1("11H1H:"1H "1h\1 "1 "H{iH "1h %թӥ81pI 18݅ق dե81٥81pI 18ۅׂ dӥ81ץ8pI3="1IH="10ע="1IH="1<H{iH1"1h  1H1H<"1 11ۆ݂ߢ<"1'"1"1n"10a  % HH (]+"1 H Hi"1."12"1 H Hy"1  H H$"16"1  H H$"16"1."12"1 H Hp"1 H Hy"1 H Hp"1 H H$"16"10"1N0"10"10"10"10"10"1 9  z"1  㭻 H Hi"1 "1h"1{i+k ;8[i{iH "1ަچܭ10"1."1ZH "1hb1 "1 "18pI  8pI % 18pI %dW 81pI  8pI % 18pI % 81pI  81pI % d  18pI  81pI % Z   18pI  18pI %  d 81pI  18pI %   Z 81pI 1Х̂ 1̥Х81pI 1Υޅʂ 1ʥޅΥ ʅҥ8̅8ԥ8e΅֥ЅإZ$8ʅ8ҥ8̅8ԥ΅֥Ѕإɴ 8ʅ8ҥ̅ԥ΅֥8eЅإʅҥ̅ԥ8e΅֥8eЅH{iHR"1h.{iHb"1{iHb"111چ܂."11 eH0"10ɋ{iHc"1{iHb"1{i+k ;8[iHHg"1h孽 F ߆wHiH" H Hi"1(m"1wS"1n"1w "1h"1."12"1  H H$"1  H Hy"1S"1  H H$"1{i+k ;8[i/ق٥8pI0H."1hۥ d8pI:/"1ۅ8pI/"1ۅ8pI::/"1ۅr8pI/"1ۅC/"1ۅ)8 0 JH`IIIJ0J^JJJ {i+  ;ik ;8[i8pI02 iHH"1ht 1 "111 "118pI118pI1/81pI/1/81pI1  8pI0"8pI0]H"h ei{e{i睊T{iHK"1 {iH K"1N:HH{iHb {iH "1hHH"1 t 0{iHS"1{iHL"1爫 HH{iH IH "1HHH/"1iHH{iH IH "1HHH/"1者HH{iH bH "1HH9"1者8pI0 i懲{e{i睊TH7"1 i{eHT"17"1 i{eHS"1{iH K"1W者}iH7"1{iHT"17"1{iHS"1{iHL"1者}CW{iHS"118181i1i{iHHH"1{iH"16H4H"1{iH"18pI0U iu iuH iH"18pI0%HH"1H"1'HH"18pI08pI0-H iH"1i i "8pI0|HuHuH"1hH7"1H"h ei{eHT"1H"1H{iH "1h H{iHHH"1h  H "1h%  H{iH"1hH{iH{iH{iH"1h t .H,H"1"1{iH{iHHH"1"1HHH."1hHHH."1h8pI8pI8pI88ii6H4H"1{iH"18pI0U iu iuH iH"1HH"1{iHHH"1HH:"1 "1 '8pI08pI0-H iH"1i i "8pI0rHuHuH"1hH7"1H"h ei{eHT"1H"1H"1HH9"1NF_ 1 "1H1{iHO"1hH "1h%8pI0mH1 i{eHO"1h-H7"1{iHT"1H1{iHO"1hH "1h% H1{iHO"1h8pI0"8pI0H1H"h ei{eHO"1hvH7"1H"h ei{eHT"1uHuH:"1="17 H1{iHO"1h8pI0"8pI0H1H"h ei{eHO"1hvH7"1H"h ei{eHT"1uHuH:"1="17 H1{iHO"1h8pI0"8pI0H1H"h ei{eHO"1hvH7"1H"h ei{eHT"1uHuH:"1="17 H1{iHO"1h 8pI0"8pI0H1H"h ei{eHO"1hvH7"1H"h ei{eHT"1uHuH:"1="17 H1{iHO"1h 8pI0"8pI0H1H"h ei{eHO"1hvH7"1H"h ei{eHT"1uHuH:"1="17 H1{iHO"1h5  5 J 8pI0"8pI0H1H"h ei{eHO"1hJ8pI0-H iH"1c75P"1H1H1H"1h"1H7"1{iHT"1 .H,H"1{iH{iHHH"1HH "1/H"18pI0-H iH"16H4H"1"1HH (]+"1"1"H{i+kDo ZoomZoom ;8[i1 "1 ,H1 H Hu"1h  < 11"1H"1h1"1H1H"1h)ߥͪ1 "1ץ,"11 eH0"1 d :H"1hݥ  8pI  111"1H1H"1h)  ,H{iH H Hu"1h  ԉ 1  d H"1hݥ  8pI  111"1H1H"1h)  ,H{iH H Hu"1h  ԉ 1 : d Յҥم8pI0ׅ҅:H"1hݥ  8pI  H"vh "1_ ,H{iH H Hu"1h  ԉWҢ:"18pIҢ<"1 d ۅH"1hݥ  @8pI  H"vh "1{ ,H{iH H Hu"1h  ԉWҢ:"1:HҢ<"1 d ҂;"1{i+k ;8[i[ߩ8pI0A: K8pI01:H"h eH"1Qᩖ8pI0:i H:H"hmu eH"1: 8d"h8pI00H"vhH "1hH"vhH "1hi߂Zߩ8 pIA: K8pI01:H"h eH"1Qᩖ8pI0:i H:H"hmu eH"1: 8d"h8pI00H"vhH "1h<H"vhH "1h :߂{i+k ;8[iH"18pI04: : #::  ˩ͩϩ?HH{iHu"{iH "1h"1é0ũ"ǩ=dө !Նddݩ!ߩ {iH{iH0"1˩ ͩϩp {iH QH "1H /"1˩ͩϩ {iHS"1H:::H:"1u"1˩oͩϩxѥH:::H:"1 u"1{iHS"1{{iHS"1{iHS"1{iHL"1{iHL"1H::H:"1 u"1H::H:"1u"1{iHV"1{iHV"1˩ͩ ϩѩ8pI0: {ise{iT: uH: w:::H:"1 "I: {iseHS"1: {iseHL"1:: {iseHV"1{iH K"1˩ͩϩѩ8pI0: {i3e{iT: 5H: 7:::H:"1 "I: {i3eHS"1: {i3eHL"1{iH K"1H{i3HV"1˩ͩϩ{iHS"1H:::H:"1u"1˩ͩ ϩ{iHS"1H:::H:"1t"1˩ͩ ϩY{iH tH "1{iH\K"1:{iH tH "1d1 "1H{iH "1h H{iH"1hH{iH{iH{iH"1hv8pI04: : #::  d˂>d˂9: H."1h  iH "1hRH1{iHO"1hH "1h%"H1{iHO"1h %/ {iHV"1{iHV"1 H1{iHO"1h--  {iHV"1{iHV"18pI0H1: {i3eHO"1hZ: {i3eHV"1: {i3eHV"1: H /"1l8pI0H1: {iseHO"1hc: {iseHV"1H "1h::  :  cH "1h  8pI % "/g ˩8pI  8pI % 8pI0)i Hmu H"18pI0!u H"1 "1/H"1{i+kCancelOkayUseSetRevFwdFS[]"ILTZ[_],47:~11641111&3;HP]er1NXb$.(,31?1c1v11111YY11 1E1x11 1641u%u-Y0YL1vu 1u 11.,1 131F1I6M4X1k1~11[]IPX^[c]|,4NVY\1164 1 1  ) 13 1G 1w .{ , 1 1 1 1 1 1 1' 1* Y- Y7 1J 1] 1` c f 1i 1o u} 1   1 1 1 1 1 1)  4 1b 1 1        6 9 < ? B %N Q W _ p s v y |     1       N       ] 1   b_ 1b e q 1 1 1 11ORj11ww1 1 ee1V`Y`q1116411111"%(+%7:@HY\_behknw1N]1bH141H1X1[^h1x1{~111@C[1^am1u11%11 1!1'*41:=G1MqPqZ1`UcUm1sEvE1111111!1L1b1u11//1641 (+.1(4(7(;(I1L ^1k1nq{1~  1  1  1  11 111% ) 41>1U6Y4d1gj 111  111 11 1  +1. 2 =1@ D U1X \ g1q1t(((((1(((11    164(1;1hum2q0|1 1111     51e1}111   1)1F1S1f1m p w0|2641/`-/`-111111111 111%161<1S1e1r z111 1 111 64 1#& 1 < @ K1U1b1ehr1u1  1   11111(((((1!(2(6(A1D& G& Q1TW b m q |1111  11   1 1 15 69 4D 1N 1X 1a e v 1 1     1     1 0 8 8 8 K4 z? / /!1!1!1"!/&!`--!/.!`-1!4!:!?! B! N!1Q!U!l!1v!1y!H}!!!1!!1!!!1! !"!"!1! ! !1!1"""1"1$" 0""3""@"1C" G" R"1Z" `" l"1q" }"H" " " "1"1"6"4"1"1## #1#1#1#1$#14#17#1H#1K#1N#1`#1l#1o#1y#1|# ##1#1#1#1#1#1#1#1$1$1"$19$1_$g$z$1$$$1$1$$$%1%'%/%<%1o%1%1%%%%%%%1%%w%%y%%{%%}%1%1&1 &1&1'&1.&1&;&1E&1H& S& W& b&1y&6}&4&1&1& & & & &1&1&&&1& & &&''1 '1'1' ' &'1*'1-'10' 4' ?'1V'1b'1f'k'1o't'1w'1'1' ''1''1'' ' '1' ' '''' ' '1( ( (1(1(1$( (( 3(18( ;(G(1T(1a(1n(1{(1(1(1(1( ( ( (1( ( (1((w((y(({((}( ( (  )1)z?)1?)1E)6I)4T)1^)1a)l) w) {) )1)1)))1)1)1)1)))1)1)1)))1)1)1**1 **1*1*1* **.*12*7*1;*@*C*Y*1`*m*q*|********************1**+1++!+1.+1;+1H+1U+1b+1o+1|+1+ + + +1+++1++w++y++{++}+ + + +1+"+1 ,  , ,,!,,,15,(8,(U,1h, k, ,1,1, ,1,1,,,1, , ,1, , ,1, , -1 -  - -1"-1%-(- 3-67-4B-1E- Y-1k-1-1- - - -1-1-1-1- - -1- -  . ..'.14.7.A.1N.1^.a.d.g.j.m.p.s.v.by.b.1...1...1.1.........//1)/16/1C/1P/1]/1j/1w/1z/ /1/// //CH///////1///00)0,0F01b0g0l0q0v000010100010 0111111%1 11 51 @11E1Q1T1^11h1 l1 w11|1 1 1 11111(1(1111111111111111 212121%21/24426I21m21|2121212121212220212122212131 31363431A31d31313>3^41X41[41e41h41p41414 414141414144414141415  5$51G51T51k51y51515151515151516161(61+614676G61J6 \61_61c61n6161616+361607171471{71717171717 7181K81p81s8 w8 81818 81818080 9991+91>91M91P91^91l91x91{91919 9919191919191:1:0$:1,:1A:1g:o::1:::1:1::: ;1';/;7;D;1R;0f;0;1;1;0;0;1<1 <0<0J<X<e<1y<<<1<0<1<1<1<1<1<0<0 =1?=1V=1r=1=1=1=1=1=1=1=1=1=1===1= =1>1>1>0+>9>F>1]>k>x>1>1>1>1>1>1>1>1>1?1L? ^?1a? e? p?1?0? ?1?0? ? ? ?1?1?1?1@1@1@1@1@1 @1*@1-@11@1<@1J@1V@1Y@1c@1f@ q@@1@1@1@1@1@1@1A10A1LA1cA1sA1vA1A1A1A1A1A1A1A1A1A1A1A0A  BB'B1.B 2B =B1JB1MBPBZB1]B aB lB1oB zB ~B B1B1BB B B B1B1B1BBB1B B B1B C  C1C C $C1'C +C 6C1@C1MC1]C1jC1wC1C1C1C1C C C1C C C1C1C1#D1.D19DI II1LI WI [I fI1lIoIyI1|I I I I1I1'J1UJ1J1J1J1JJJIJIJIJJJ0JJ^JJJJJ^K1K1K1K1K1K1K1K1K1K1K1K1K1L1L1sLL1L1!Mb$MbFM1jM1M1M1MIMIN1N1[NI^NIvN1N1NbNbN1N1VO1wO1O1O1O1P1P1$P17P1PP1^Q1aQ1mQ1yQ1Q1QQQ1Q1Q6Q4Q1R1jR1R1R1R1MS1S1S1ST1#T&T2T1IT1sT1T1T1T1 U.U,U1#U1NU1XU1oU1U17V6;V4FV1YV1V1V1VVW1W1)W1W1 X1X1$XLX1}X1XXX1X1X1X1X1X1X1X1X1)Y1,Y1MY1pY1Y1Y1Y1Y1Y1Y1Y1Y16Z19Z1EZmZ1Z1ZZ1Z1Z1[1[1$[1k[1n[1z[[1[1[[1\1!\1C\1F\1Y\1\1\1\\1\1\$]1F]1V]1x]1{]1]1]1]1] ^1%^11^Y^1{^1^1^1^1^1 _1 _1_A_1Z_1f__1_1_1_1_1_1x`1{`1``1`1:a1>a1Ba1Ma1]a1ma1a1a.a,a1a1a1a/a/a1.b1@b6Db4Ob1Yb1\b`bwb1b1bHb1b1b1b b1b1b b b1b1b1c1c1c1c1#c1'c12c1=c1Lc1hc1kc1tcwcc1c1c1c1c1c1c1c1d1d /d 3d >d1{d1d1d1d1d1d1d1d1d  e  e e1re1eve1e e e e1f18f1Vf1fvf1f f f f1f1 g1%g1Agggrg ggg1ggug h1!h'hEhvWh1uhvh1hh hii1JiTiu\igi1~iiivi1ivi1jj$j1Jj[jjujuj1j1j !j !"k1LkQOkQgk1jk|k1k1k1kukuk1k1k uk uk1l1Ml1`l1yl1l1l1l ul ul1l1lulul1ll1 m1ym1m m mIm1m1mm1n1n1n n nIn1n1n1o1>o1To1WouZoudo1o1o1ototo1ototo1p1*pt-ptEp1Op1Rp1\p1sp1p1p1p q;q1Aqoq1|q1q1q1q1qq1q1q1qqr1r1r1r12r16rCrXr1kr1r1r1r1r1r1r s11s14s1Rs1ys1s1ssss1 t/gstuxt t1tut t1t1t/t/t1PATTERNSuHUSTON!5 ' d'BASIC.PAT&3MISC.PAT&' wqwqwwqqwqwqwwqqvvvvggggvvvvggggvvvvggggvvvvgggg11111111111111114Q#C!24Q#C"24Q#C"24Q#C"2wwvwzنzنzنzzxfffv49494949iiiiiiiiiiiiiiii#E#E#E#E#E#E#E#E331DD#2%RC4QC4QC4%RC4DD#2331 &b(m &b'nDDDDDDDD33333333""""""""˼˼˼˼˼˼wwwwwwwwwwwwwwwwff""+"""DBDDDDDDDD뻱뻻"".∈""/x興>33興fUfU+++DffffkDDDD""""""""/""""/pwpwwwwwwpwpfoocf66foocf66DDDDDDDDDDDD 陙 陙UUUUUUUUUUPICTURESuHUSTON!5 ' d'+CYCDEMO.PICA..-PUB.TRANSWARPAFINDER.DATA>00  !"#$%&'()*+,-./01234567UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU[UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDKUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDKUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU[DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDKUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU[DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDKUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU[DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDKUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU[DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU[DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDKUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU[UUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUU[DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDKUUUUUUUUUUUUUUUUU[DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDKUUUUUUUUUUUUUU[DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDKUUUUUUUUUU[DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU[DDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU[DDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDKUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDKUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU[DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU[DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU[DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDKUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU[DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDKUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU[DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDKUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDKUUUUUUUUUUUUUUUUUUUUUUUUUUU[DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDKUUUUUUUUUUUUUUUUUUUUU[DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDDKUUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDDDDKUUUUUUUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVfffUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVfffffUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUffffffeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVfffffffUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUffffffffeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUffffffffeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUZUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVffffUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVffffUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUZUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVffffUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUZUUUUUUUUUUUUUUUUUUVffffUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUZUUUUUUUUUUUUUUVffffUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU^UUUUUUUUUUUUVffff`UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU^^^UUUUUUUXUfffff`UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU^U^UUUUXUfffffffeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU^U^XUVfffffffUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU^UUU興UUffffffeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU舎興UUVfffffUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww舎舏wwwffwwwwwwwwwwpwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww舎w{wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww舎w{wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww{wwwwpwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxw{wpwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxw興wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxwwwwxwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww{wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww".wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwx""".wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww""."".wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwx""ww""wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww"wwww".wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxwwwwrwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww~"!wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwq'wwr"wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwpwwwwqwwww"wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwpwwwwrwwwwqwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwp"wwww".wwwwqwxwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww""ww"""wwww~wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww"".""w"wwww"wwwwwwxwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwp""wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww"'wwr"wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwpwwwwwwwwwwwwwwwwwwwwwwwwpwwwwwwwwwwwxwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwpwwwwwwwwwwwwwwww}wwwwwwwwwwwwpwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww}wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwpwwwwwwwwwwwwwwwww}wwwwwwwwwwwwwpwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww}wwwwwwwwwwwwwwpwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww}wwwwwwwwwwwwwwwpwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww}wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwpwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww}wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU DOw# @w   DOw# @ w DOCUMENTATIONuHUSTON!8 ' d'-CHPNT.DOC.PT2:(L" 8-CHPNT.DOC.PT1b#XB# / 8FINDER.DATAɄ>8 CheapPaint V1.3 Documentation Part 2 of 2 File Menu About the File Menu The File menu contains selections for quitting CheapPaint, disk and printer operations. The following is a list of the selections available from this menu and their functions. Load Picture Displays a dialog for loading a picture onto the current page. Any pictures that use the PIC format will be selectable. The picture contains its own color palettes and the horizontal lin9;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`e assignments for each of the color palettes. Anything that is on the current page along with the current color palettes and their line assignments for that page will be lost when a new picture is loaded. Load Palettes Displays a dialog for loading a set of 16 color palettes and the horizontal line assignments for each onto the current page. The current color palettes and their line assignments will be lost when a new set of palettes is loaded. Load Patterns Displays a dialog for loading a set of 16 patterns. Both pages share the same set of patterns. The current patterns will be lost when a new set of patterns is loaded. Load Cycle Displays a dialog for loading a Cycle Record. A Cycle Record contains the direction of the Cycle, which of the 8 Cycle Sets to use, 8 Cycle Sets and the speed each Cycle set is set to. Both pages share the same Cycle Record. The current Cycle Record will be lost when a new one is loaded. Save Picture Displays a dialog for saving the current page picture to disk. The picture, current color palettes and their line assignments will be saved to disk together. The default file name is "Untitled.pic" unless a picture has been loaded or saved prior to this attempt, in which case the default file name will be that of the last picture loaded or saved. Pictures are saved in the PIC format. Save Palettes Displays a dialog for saving the current page color palettes together with their line assignments to disk. The default file name is "Untitled.pal" unless a set of palettes has been loaded or saved prior to this attempt, in which case the default file name will be that of the last set of palettes loaded or saved. Save Patterns Displays a dialog for saving the current patterns to disk. The default file name is "Untitled.pat" unless a set of Patterns has been loaded or saved prior to this attempt, in which case the default file name will be that of the last set of patterns loaded or saved. Both pages share the same patterns. Save Cycle Displays a dialog for Saving a Cycle Record. A Cycle Record contains the direction of the Cycle, which of the 8 Cycle Sets to use, 8 Cycle Sets and the speed each Cycle set is set to. Both pages share the same Cycle Record. Delete File Displays a dialog for deleting any file on any currently loaded disk. It requires that the full pathname be entered. An example of this would be " /SystemDisk/MyOldFile ", please note the "/",this charactor is required at the beginning of the disk name, directory name (if any) and the file name. after entering the pathname, click on the okay button to accept or the cancel button to cancel the operation. If an error is encountered ( disk write protected, file not found, etc. ) a message will be displayed explaining the problem. Choose Printer Displays a dialog for selecting the printer and printer port you desire for printing a picture. Page Setup Displays a dialog for selecting the type paper and picture orientation for printing a picture. Print Displays a dialog to print out a picture and allow selection of print quality, number of copies, paper feed method, color or black and white. Please note that currently the printer will only use the color palette displayed in the Tool/Color window. Quit Used to exit CheapPaint, displays a dialog to make certain of your decision. Edit Menu About the Edit Menu The edit menu contains selections for undoing, cutting, copying, horizontal and vertical flipping, inverting, pasting, resizing and clearing the canvas. The Cut, Copy, horizontal and vertical flipping, Inverse, Paste and Resize items can only be used in conjunction with the Edit or Lasso tools and that an editting rectangle or lasso be created before they will be enabled. Undo This selection will "UNDO" the last thing you did on the canvas. In order to undo something the Undo item must be selected before other changes are made to the canvas. Clear Used to clear the canvas to white, a dialog will be displayed to verify your decision. Cut This function places a copy of the area enclosed by the edit rectangle or lasso on the clipboard and clears the area under the edit rectangle or lasso to white. The edit rectangle or lasso may then be dragged to anywhere on the screen to paste a copy using the Paste function. Copy This function places a copy of the area enclosed by the edit rectangle or lasso on the clipboard. The edit rectangle or lasso may then be dragged to anywhere on the screen to paste it with the Paste function. Horiz flip This function flips the contents of the edit rectangle or lasso horizontally. Invert This function inverts the area within the edit rectangle or lasso. Paste This function is only enabled after a Cut, Copy or Resize operation has been performed (in the case of Resize, you must also create a resized edit rectangle or lasso first). It will paste a copy of the last area cut, copied or resized on the canvas in the area within the edit rectangle or lasso. Resize This function allows expanding or compressing the area within the edit rectangle or lasso. After selecting this function, the edit rectangle or lasso will disappear. Create another edit rectangle or lasso the size you want the resize area to be adjusted to, drag it to where you want it and paste it. Vert Flip This function flips the contents of the edit rectangle or lasso Vertically. Fonts Menu About the Fonts Menu The Fonts menu is used to modify and select a text font. Be sure to have your boot disk in a disk drive when changing to a different font or font size for the first time. After the first time a font is loaded or size changed then it remains in memory and does not require the boot disk. Modify Font Displays a dialog that allows you to change the size and style of the current font. The size can be anywhere from 6-30 point and is changed by using the scroll bar, the current size is displayed next to the scroll bar. The Styles available are bold, italic, underline, outline and shadow. Styles are changed by clicking the mouse on the button next to the desired style. More than one style can be selected at the same time. Change Fonts CheapPaint uses standard Apple IIgs fonts and any fonts you have of this type are usable with CheapPaint. Any font located in the Fonts directory of the boot disk at the time that CheapPaint is launched will be added to the Fonts menu and selectable for use and/or modification, provided that there is room for all of them on the Fonts menu. The Fonts menu length(top to bottom) is limited and only so many fonts will fit on it. Any fonts that don't fit won't show up on the menu and won't be selectable. To change a font just select it from the Fonts menu. Default size is 8. IMPORTANT NOTE Each font you load from the Fonts menu uses up space in your computers memory the first time it is loaded. While all the fonts on the menu can be selected, that does not mean that they will all fit into your available memory. Attempting to load too many fonts with only 768k memory could cause your system to lock up or crash. While this won't damage your computer it does require you to reboot it and thus losing whatever work you have done. Colors Menu About the Colors Menu The Colors menu contains Edit Color, Edit Pattern, Assign Palettes, Mix Palettes, Edit Cycle and Cycle Picture. Edit Colors Displays a dialog that lets you select any of the 16 color palettes available on the current page by sliding the palette selection scroll bar and allows you to edit any of the colors in the palette selected. Select a color from the current color palette by clicking the mouse on the check box below the color. You can then edit the color by sliding the R (Red), G (Green) and B (Blue) Scroll bars to adjust the hue of each color. Note that the software will not let the default colors black and white (located at the extreme left and right ends of the color select area) be the same, if you attempt to do so they will revert to black and white. This is a safe guard feature to save you rebooting. Clicking the Default button will change the currently selected color to the system default color. If you press and hold any key and then click the default button it will change all the colors in the currently selected palette to their default colors. Clicking the Revert button will change the currently selected color to the Color it was when Colors was selected from the menu. If you press and hold any key and then click the Revert button it will change all the colors in the currently selected palette to the color they were when Colors was selected from the menu. Click the Okay button to accept all the changes you have made and return to the canvas. Click the Cancel button to cancel all changes made to the current color palette and return to the canvas. NOTE, Cancel will not undo changes you have made to palettes other than the currently selected palette. Edit Patterns Displays a dialog that enables you to modify the existing patterns or create new ones. The palette Select scroll bar lets you see what a pattern looks like with the different color palettes. Clicking the Default button will change the current pattern back to the System default. Clicking the Revert button will change the current pattern back to what it was before selecting Patterns from the menu. Clicking the Okay button will cause the changes you have made to the patterns to be implemented Clicking the Cancel button will cancel all pattern changes you have made. To select a pattern just click the mouse on it in the pattern window. To select a color just click the mouse on the color you want from the color window or Position the mouse in the enlarged view of the pattern on top of a color you want to select and press the Control key. That color will become the current one To edit a pattern just click the mouse in the enlarged view of the pattern. Assign Palettes Displays a dialog to allow reviewing the available color palettes and enables assigning a different color palette (any of the 16 available) to a line or group of lines in either the paint set or any of the 8 cycle sets. First let me explain a "Set". The Apple IIgs can have any one of 16 color palettes (each containing 16 colors) assigned to any one line. In CheapPaint a "Set" represents the color palette line assignments for all 200 lines on the screen. CheapPaint maintains 9 of these sets. One of which, the paint set, is the one you use for drawing on the screen. The others are used for Color Cycling. Now lets talk about Color Cycling. Color cycling is the act of replacing one or more colors with one or more other colors so as to create a psuedo animation. In a simple exercise of color cycling, with the paint set having all lines set to color palette #0, draw a small rectangle on the canvas using the color red. Next select Assign Palettes from the Colors menu. Assign a different color palette to each of the 8 Cycle sets. Set the speed for each Set to about the right third (towards the letter "F") of the speed scroll bar. Click on all 8 "Use" buttons. Now select Cycle picture from the Colors menu. What you will see is the rectangle you drew, changing colors. While this is not a swift trick, if you draw the rectangle in red using palette #0 and then make the color in the same position in the other color palettes white and then select Cycle Picture from the Colors menu again, you will notice that the rectangle will disappear for a while and then reappear (how fast will depend on the speed you set for each cycle set). It would not take much work to make the rectangle jump around the screen. Alot can be done with color cycling. Such as flowing water lightning, wheels turning, etc. The vertical scroll bar moves a small line marker to its right, this marker indicates the line that is currently selected. The line number is displayed next to the Palette select scroll bar. When the scroll bar is moved the palette display changes to reflect the palette that is assigned to that line. By sliding the palette selection scroll bar (the horizontal scroll bar) you can change the currently selected palette. Clicking on the following buttons provides the results listed below: Revert- will reassign all the color palettes to the lines they were assigned to before selecting palettes from the menu in the current color set. Set 1 line- will cause the currently selected color palette to be assigned to the currently selected line. Set All- will assign the currently selected color palette to all the lines of the current page. All Above- will assign the current color palette to the currently selected line and all lines above it on the visible canvas. All Below- will assign the current color palette to the currently selected line and all lines below it on the visible canvas. From Here- used to set the first line for assigning the currently selected color palette to a range of lines. You click this button at the first line in the range and then click the "To There" button at the last line in the range. To There- used to set the last line for assigning the color palette that was selected when the "From Here" button was pressed to a range of lines. After this button is pressed all lines between the first and last line will have their color palette set to the one that was selected when the "From Here" button was pressed. Paint- will select the line assignments for painting a picture. Cycle- will allow you to select line assignments for a Cycle Set used in cycling a picture. Set(1-8)- when the Cycle botton has been selected it allows you to select one of eight Cycle Sets to edit. Click on the number of the cycle set you want to edit. Use(1-8)- these buttons can be toggled on or off by clicking on them. when a button is on it is used for cycling the picture, when off it does nothing. Init Cycle- when the Cycle button has been selected this function resets all 200 line assignments for the currently selected Cycle set to the line assignments used in the Paint set, sets speed to "0" and sets the Use button to the off position. Fwd- sets cycle direction so that the Cycle sets Cycle from set 1 to 8. Rev- sets cycle direction so that the Cycle sets Cycle from set 8 to 1. Okay- will cause the current assignment of color palettes to be implemented. Cancel- will cancel changes to color palette assignment set you are currently working on (the paint set or 1 of the 8 cycle sets). Mix Palettes Displays all 16 colors in all 16 color palettes at the same time. You can copy a color from one palette to another palette or to another position in the same palette. This is done by pressing and holding the mouse button within the color you want to copy and dragging that color onto the color you want to replace and releasing the mouse button. You can also copy one palette to another. This is done by pressing and holding the mouse within the Palette number you want to copy and dragging it onto the palette number of the palette you want to replace and release the mouse button. Click the Okay button to accept the last change you made and close the dialog. Click the Cancel button to undo the last change you made and close the dialog. Click the Undo button to cancel the last change you made. Cycle Picture Displays the whole picture and cycles it using the currently loaded Cycle Record. To return to drawing mode just click the mouse or press a key. Edit Cycle Replaces the Tool/Color window with the Edit Cycle dialog and begins to cycle the currently displayed portion of the picture. You can select the speed, direction, cycle sets used and scroll the picture. To select the cycle set to edit speed on, click the mouse on the applicable set number to the right of the word "Set". To select/deselect a cycle set to use for cycling click the mouse on the applicable set number to the right of the word "Use". To set the Cycle direction just click on either the "Fwd" or "Rev" buttons. To set the currently selected cycle sets speed, move the scroll bar towards the "S" for slow and towards the "F" for fast. Click Okay to accept any changes you made and close the dialog. Click Cancel to undo all changes you made and close the dialog. Color 1 to 2 Copies the color palettes and their line assignments from page 1 to page 2. Color 2 to 1 Copies the color palettes and their line assignments from page 2 to page 1. Special Menu About the Special Menu The Special menu contains Coordinates, Full Screen, Create Stencil, Stencil On/Off, Page 1 to 2 and Page 2 to 1. Coordinates Selecting this item from the menu will cause coordinate plotting to be toggled on and off. When toggled on the mouse cursor coordinates will be displayed in the Coordinate display box in the Color/Pattern window at the bottom of the screen. Coordinates can also be toggled off and on by clicking the mouse within the coordinates display box in the Tool/Color window. Full Screen This function causes the entire canvas of the current page to be displayed. No drawing can be done while in this mode, to return to the drawing mode either click the mouse or press a key. Create Stencil This function is used to define a stencil. Once this item is selected,you can select the shape you will use to create the stencil. The shapes available are all of the framed type : Oval, Polygon, Rectangle, Region and Round Rectangle. If the current tool at the time Create Stencil was chosen from the menu was one of these, then that shape will be the the default shape used. If any tool other than these was the current tool, then the Region shape will be the default shape. In any case you can change the shape you will use by selecting it from the Tool/Color window. The method used to draw the stencil will depend on the shape selected, refer to the instructions covering creating shapes. After the Mouse button is released, Stencil is turned on and drawing will only occur inside the stencil area. To exit the create stencil mode with out creating one press the ESC key. To deactivate the stencil select Stencil Off from the special menu. Stencil On / Stencil Off This function toggles a previously created stencil on and off. This selection is disabled until a stencil is created with Create Stencil function from the Special Menu. When stencil is turned on, only the area within the stencil can be drawn on. Everything else is 'masked off', just as in a real stencil. Page 1 to 2 Copies canvas contents of page 1 to page 2. Color palettes and line assignments on page 2 are not affected. Page 2 to 1 Copies canvas contents of page 2 to page 1. Color palettes and line assignments on page 1 are not affected. CheapPaint V1.3 Documentation part 1 of 2 This software is copyright (c) 1988 by Earl Gehr and copyright 1986 TML Systems, Inc. Certain portions of this software are copyrighted by TML Systems, Inc. CheapPaint is shareware and may be copied and distributed freely, however to use it legally you are required to send $10.00 within 2 weeks to : Earl Gehr 1135 A Touhey Ave Charleston, SC 29404 Contrary to what you might think I am not wealthy, am not supported by Apple (or any other compaacdefghijklmnopqrstuvwxyz{|}~ny for that matter). I am trying to make ends meet just as alot of you are. I created CheapPaint for other folks that are in the same position that I'm in. The original version of CheapPaint (v1.2) I released took me 12 months to create. Looking at the various telecomunications services over 400 people have downloaded CheapPaint v1.2 and only 13 thought it was worth paying for! Your honesty will allow me to continue to provide quality software and support at a reasonable price, plus all registered users will be sent notice of upgrades, you will recieve these upgrades for the price of a blank 3.5" disk and whatever the going rate is for either UPS or US Mail (whichever is cheaper) to send the disk. ************************* Disclaimer of Warranty **************************** Even though Earl Gehr has tested the software and reviewed the documentation, Earl Gehr makes no warranty or representation, either express or implied, with respect to this software, its quality, performance, merchantability, or fitness for a particular purpose. As a result, this software is sold "AS IS," and you the purchaser, are assuming the entire risk as to its quality and performance. In no event shall Earl Gehr be held liable for direct, indirect, special, incidental, or consequential damages resulting from any defect in this software or its documentation. ***************************************************************************** Minimum system configuration is 1. Apple IIgs computer. 2. 768k memory(minimum). All the softwares features are available with this amount of memory. 3. One 3.5" disk drive. 4. Apple Imagewriter II or compatible printer.(not required, optional) 5. AppleColor RGB Monitor.(not required, optional) 6. Apple IIgs System Disk. Apple, Apple IIgs, AppleColor and Imagewriter are registered trademarks of Apple Computer,Inc. IMPORTANT NOTE CheapPaint requires a minimum of 768k of memory to operate. Version 1.2 wasn't that critical about memory, but take it from me that version 1.3 is. With this amount of memory every function works, but keep in mind that when the program is launched from the Finder that the Finder reserves some of this memory. This in itself does not effect CheapPaint. If you start adding classic desk accessories(CDA's) and new desk accessories(NDA's) plus whatever other memory resident programs you have, it begins to eat up memory. On top of that if you add fonts that are loaded from disk for CheapPaint to use, you can begin to take memory away from that needed for the application to run. Since CheapPaint does not allow use of NDA's having them on your CheapPaint boot disk is a waste of memory and disk space. If your memory is getting tight, I would suggest creating a selfbooting disk for CheapPaint(thus bypassing the Finder), leave out the NDA's and any unneeded CDA's. If you would like to create a self booting disk, but don't know how, drop me a line and I will send you instructions on how to create one from a copy of your System disk (provided that you are a registered user). To startup CheapPaint If you have only one disk drive there are two methods available 1. Put a copy of CheapPaint on a copy of your system disk, boot normally and launch it as you would any other program. or 2. Boot your system disk, insert a disk containing CheapPaint and launch CheapPaint, the program will prompt you to reinsert your boot disk. If you have 2 drives just follow example #2 above except leave your system disk in one of your drives. About CheapPaint CheapPaint is a paint program with all the features normally expected from todays commercial paint programs, however it allows you the freedom of 256 colors on the screen at one time. This is achieved by assigning 1 of 16 different color palettes to each horizontal screen line. You can create any of the 4096 different colors that the computer can display. CheapPaint also boasts two completely independent canvas's that you can paint on and copy between. The CheapPaint screen displays a menu bar at the top and a Tool/Color window at the bottom. Everything between these two is canvas to paint on. About Help Under the Apple menu is a selection called Help. When selected it displays a dialog for selecting a help file for you to read about any of CheapPaints functions. When the file selection dialog appears, select the directory called "Help" and open it. In the help directory are a list of the menu bar titles (all of these, except Fonts.menu are also directories), a directory called "General" and a directory called "Tools". If the item you want help about is in a menu, select the applicable menu title, it will display a list of the items in the menu. Select the one you want help about. The help file will be displayed for you to review. If you select the "Tools" directory it will display a list of the tools in CheapPaint. Select the tool that you want information about from this list, the help file for the tool will then be displayed for your review. If you select the "General" directory it will display a list of miscellaneous functions that help is available for, such as color/pattern selection, copy color, find color, scrolling, pages, etc. Select the item from this list that you want information about, the help file will then be displayed for your review. About the Tool/Color window Color or Pattern selection To select a color or pattern, click the mouse on the color or pattern you wish to select. The current color/pattern will be displayed in the current color rectangle at the extreme left of the Tool/Color window. All drawing is done using the currently selected color/pattern, with the only exception being text. Text is limited to the color selections, the patterns are not available. When a pattern is selected with text as the current tool, the text color will be the same as the color above the pattern that has been selected. IMPORTANT NOTE When you are using more than one color palette at a time on the canvas, press the Option key to update the Tool/Color window to the color palette of the line the mouse is currently on. The Tool/Color window will remain in that color palette until the Option key is pressed again on a line containing a different color palette. Copy a Color To copy any color from the screen (no matter what palette it belongs to) to the currently displayed color palette in the Color/Pattern window put the cursor in the current color rectangle and click it. This puts the system in Color Copy mode. Position the hole in the cursor over the color you want to copy and click the mouse. The color that was the current color will be replaced by the new color and the system will be returned to normal draw mode. To exit Color Copy Mode without copying a color press the ESC key. Find a Color Pressing the Control key will set the current color and palette displayed in the Tool/Color window to the color and palette currently located under the mouse cursor. This option is useful when you are using closely hued colors and/or switching back and fourth between several colors already on the canvas. Brushes There are a total of 12 different brushes available, 6 solid brushes and 6 airbrush patterns (only selectable when the Airbrush is the current tool). They are displayed in the center area of the Tool/Color window. To select a brush move the cursor to the brush you want and click the mouse on it. When moved onto the canvas, the cursor will change into the currently selected brush, unless you are using the Airbrush. The Airbrush cursor is displayed when using this tool. Page changing buttons Located to the right of the Coordinate display box in the Tool/Color window are the page changing buttons.The program has two independent pages, designated as page 1 and 2, each with its own set of 16 color palettes. Each color palette contains 16 changable colors. Any one color palette can be assigned to any one line, thus allowing a total of 256 colors on the screen at one time. The assignment of color palettes to individual lines is maintained seperately for each page. To change pages just click on the number of the page you wish to display. All filing, printing, editing, color palette and line assignment changes affect only the currently selected page. Scroll buttons Located to the right of the Page changing buttons are the scroll buttons. The scroll position for each page is independent of the other. To scroll a page just click on the button with the arrow that points in the direction you want to scroll. The large arrows scroll 25 lines and the small ones scroll 5 lines at a time. Coordinate display Coordinate display can be toggled on and off by clicking in the Coordinate display box or by selecting it from the Special menu. It displays the current location of the cursor in reference to the whole picture. The Tool Bar The Tool Bar (located inside the Tool/Color window) contains icons for all tools available to you, to select a tool just click the mouse on its icon. All tools except the AirBrush, Arc, Fill, Text, Wedge and Zoom can be constrained at any time you are using them by pressing and holding the Shift key. If the Stencil function is on then drawing will only occur within the stencil. The following is a description of all the available tools and instructions on how to use them. Airbrush This tool simulates an Airbrush, you can "spray paint" in the currently selected Tool/Color. When selected the brush selection in the Tool/Color window changes to the patterns available to the Airbrush. Arc This Tool Creates curved lines. To use it, move the cursor where you want the arc to begin and press the mouse button and drag the arc to where you want it and release the button. To change the direction of the bow in the arc, just swing the arc above and past your starting point from left to right or right to left. Edit This tool is used to create an edit rectangle for purposes of editing the area within the rectangle and dragging the rectangle around the canvas. To create an edit rectangle press and drag the mouse until the desired size rectangle is created, release the button. To Drag the edit rectangle around, just press and hold the mouse button while the mouse cursor is within the edit rectangle. Now moving the mouse will drag the edit rectangle. If the mouse button is clicked outside the edit rectangle and the mouse is on the canvas, the edit rectangle will disappear. To cut, copy or resize between page 1 and 2 just position the edit rectangle over the area to be cut, copied or resized. Select Cut, Copy or Resize from the Edit menu and then change pages. Position the edit rectangle ( in the case of Resize, you will need to create a new resized edit rectangle) where you want to paste at and then select Paste from the edit menu. When the stencil function is turned on you can copy from anywhere on the canvas, but cutting, inverting, pasting, horizontal and vertical flipping will only affect the area contained within the stencil. Fill This tool is used to fill an enclosed area with the currently selected color. To use Fill just click the mouse in the area you want to fill. A fill operation can be stopped at any time by pressing any key other than the Open Apple, Control or Option. If you are using more than one color palette, Fill will treat a line that has a different color palette than the one that the fill was started on as the upper or lower boundry of the area to be filled. The reason for this is to prevent unexpected fills, since you may tend to forget where one color palette starts and one leaves off. Lasso Lasso shares all the same editing functions as the Edit tool, but lasso is not restricted to Rectangles, it can be any shape you want to make it. To use the Lasso, move the cursor to the point you want to start from then press and drag the mouse. Outline the area or shape your want and then release the button. The Newly created lasso can be positioned anywhere on the canvas. To Drag the Lasso around, just press and hold the mouse button while the mouse cursor is within the Lasso. Now moving the mouse will drag the Lasso. If the mouse button is clicked outside the Lasso and the mouse is on the canvas, the Lasso will disappear. To cut, copy or resize between page 1 and 2 just position the Lasso over the area to be cut, copied or resized, select Cut, Copy or Resize from the Edit menu and then change pages. Position the Lasso (in the case of resize, you will need to create a new resized lasso) where you want to paste at and then select Paste from the edit menu. When the stencil function is turned on you can copy from anywhere on the canvas, but cutting, inverting, pasting, horizontal and vertical flipping will only affect the area contained within the stencil. Line This tool enables you to draw perfectly straight lines with the currently selected brush and color/pattern. To make a Line, Press and hold the mouse button where you want the line to begin and then stretch the line to where you want it to end. release the mouse button. Pencil This tool allows you to draw free hand with the currently selected brush and color/pattern. To use the Pencil, just press and hold the mouse button. Draw with it like you would a real pencil. When your done just release the mouse button. Text This tool allows you to type text on the canvas using the currently selected font and color. To use Text, just position the cursor where you want the text to begin and click the mouse. A text cursor will appear, now just type with keyboard. Press the delete or left arrow keys to delete a charactor and the return key perform a carriage return. Zoom This tool allows you to select, inspect and edit a small area of the canvas that is blown up approximately 10x. To use Zoom, just click the mouse on the area you want to edit. A dialog will appear with the zoomed area, a normal sized view of that area, a color window, a DoZoom button, a horizontal scroll bar and a vertical scroll bar. To edit the zoomed area select the color you want by clicking the mouse on the desired color from the color window and click the mouse on the zoomed pixel you want to change. The normal sized zoom area will be updated as you change the enlarged zoom area. There is another way to select a color, when the mouse is in the zoomed area, position the mouse over a color you want to select and press the Control key, that color will become the currently selected one. The Currently displayed color palette at the bottom of the Zoom dialog will also be updated with the palette the current color belongs to. To Edit another area, move the scroll bars as required, the new area will appear in the normal sized view, press the DoZoom button and the new zoom area will be "Zoomed" for editing. If you are using more than one color palette, the color window in the Zoom dialog can be updated to the color palette of the line under the mouse cursor by pressing the Option key. It will display that color palette until you press the Option key with the mouse cursor on a line with a different color palette. Click on the Close box at the top of the Zoom dialog to return to the canvas. Shapes To create Ovals, Rectangles or Round Rectangles(Solid or empty) Move the mouse cursor to the start point, press the mouse button and drag the mouse until the desired size shape is created. Release the mouse button. To create a polygon, position the cursor where you want it to start and click the mouse. A 'rubber band' will be attached to the cursor, stretch the rubber band to any where you select and click again. The rubberband will be replaced by a solid line and a new rubberband will start at the last point of the canvas clicked on. Continue this until you have defined the shape you want then double click the mouse to finish the polygon. To create a region, position the cursor where you want it to start and press the mouse button, drag the mouse to define the shape and release the mouse button to finish the Region. To create a wedge, move the cursor where you want the wedge to begin. Press the mouse button and drag the wedge to where you want it and release the button. To change the direction of the bow in the wedge, just swing the wedge above and past your starting point from left to right or right to left. &jh CHPNT.DOC.PT1H CHPNT.DOC.PT2ICONSuHUSTON!&' d',FINDER.ICONSʇ2)&"FINDER.DATAɜ(&* *<????????< ?0:*<????????< ?0* *~ >* ??* /APPLEWORKS/APLWORKS.SYSTEMEM*` `/APPLEWORKS/APLWORKS.SYSTEMEM* `      ?`30?330?330/APPLEWORKS/APLWORKS.SYSTEMEM*` `00*DD?DODOD@DDD@ 3D@*/BASIC.LAUNCHERIC.LAUNCHER*nnofffDDOUU OO@* *?       0??*???? 0*?????0??0 *    f~1*l 33333333330333333334C03330333000333033303333333333033333333330 3300330* 33333333333330 L3333333333333033333333333330333333333333303333333333333033333333333330 340330q*????????????????????????????????????????????? ^*3?????<??3?????<????? q* &jhH FINDER.ICONSCYCLESuHUSTON!5 ' d'+CYCDEMO.CYCğ lPALETTESuHUSTON!5 ' d '*SCENIC.PAL'31@p  0@P`@p CB wD XVxdIWZF   0@P`p  0@P`p "3DUfwx ` p :f p5  yj[ L = . y j [ L=.,=ORewy j [ L = . yj[L = .  Ct'H<  $GPALETTESCYCLES3ICONS3 DOCUMENTATIONRPICTURESQ<PATTERNSDCHEAPPNT.SYS163>HELP"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""%gdgveTD3DD4DC3#4C33444FxTDD3DD3DD4DD54ESDDDTDD4DDEUTvVTUUDTUUVVfffwvffffx˪/&fCDC44DDD3CC3##33#DVgvTUD3DC3D44DED34UDDC3444DCEEEfVUETVUUUeVfefvffvvfgݪ/$34DCED4DUUTR"333WxvUED4T44DSDUDDC344TDD3335EDEUVUEUUUUUVWUEeVfwwffVfW쪙wx/$DC4DDU4CC#GwgefTDTCDDD4DDDD35TDDDEC3CCCDDUVEfUVfUEEFUfffweWefgfgfy̺x/%EETT34e4D5vDDD33DDDUUCC2TCCDUDC343DDDCUexfUeEUFUEUVefefvfgwvfgܪxx/$3323CD4EDC44C4DC4DD4C344DC43C33D4EDDEUFfeUUVeUUETUUVeefffEVvhۙxwxwwxw/#23CDCD3CC2DDDEEDDDDd4DCDC3CCCDDD7|ܺʩUTUdUVVffVffV˪wxy/"DC33#34D4DEUC433eDDT3334D4DCDeUeV}ɕUeVgfUUeeeeUVgxݻx/""$3334DUDDC3d34DD333333Vffugwvvd#C8whʆUVUWfVefܩx/""DT422"32CDC3#"3335VUVvVfefVecEfDUD3C3GffUfVxܨxwxwxwxxx/B"34CDS43#"2334TUeVUUVUUUUVVeTVeTUfUUEVUVefggʚxwww/""B3#3#33DDDeUdDDDTEEUVUUfdDVVD34UTVggvVܨxwwxxxx/"##43334VUUUUUDEUUUgxgVfeT8Δ5WfUwwڙwxxxwwxxwxxx/""C$4DTFEUETUUUUUUwgT2$i͸CWۦfFwvwwwxwwxxxwwwxvx/""DTEUEEUEVVhwdDvwwfB$EeFSD5UgwwwUwhwtgwvwwwxxxxxwwyxw/"%eTVUUeUFxcCDED3"5yetCeCGC225wufffS7wwwwwwxxwxxwx/"EUFefVDVUR""#""#6gTUVdgfeWwv4DD2'xxwwxwxxxxx/""fVTT322"""2#335fUUWu34vt3Vfc#"#2&xwwwwxxwyxx/"%TU"""2EBgUeVTu4D4Wvc#$2#"3"%wwggwxwxxx/"T"""""24wEUEC2C8̩2"""#""#Fwwwwxwxxxxw/""""""""""CD3#EDDC2"""""""#5wxwwwwxxxx""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""2$d2"#""""""""""""Fxwwwwwxwwxxxwx3"$333#3#4UUVUVUfXwxvUT6UeUUfeefVffVTfe""/2""#""""%2""""#"#""""#""36wwwwwxwwxxwwxww33433344DUeUEDUETUUy̼˺wwwwfffVgh"""TD3$r"""2"33"""""""""6wxwxwxwxwxwwwww3#3233E5fUfVfUETUVFy語WEܘx"""/"%g3I3"""3#"#7gwwwwwwxwxxxwwxvwxxw3#3TDUUUfEeTddWe_UWglHMhhwxxwwu2""""Vw3kˆeSDC23""#""""WxxxwxxwwwxwwxwwwxwxEEUTUeDDUEUUdVTUUXwkxgkwgE4xgwwfvwwuB#"""/"""3CC2323#"""#2C233EwxxwwwxwwvgwxwwxxxwgwxxgxuUfVeffeXHUUUefVVggwʽ̝wwwwvgwfgwgt332""""""""4DCC#2"#uXEcEgwwgwwxwwghxxxwwwvfVVffVVvefwvgvfggvvxxwwvvwwwwfwxxxueU""/"gvUDC44DDE{ș|zx37vgwwxxvvwfxvgxfWvwgggvwfwwfofVfwUefVwxʼ˕wwgwwwwfwvhfVfffVgb"""UUUVeeUudE55DTTUFEE44UB2Ggwwwwwwwxxwwxxvgvfgwvwvwofffffegfw˘gVwxswwwwwvxwwvwfUVgfffgvwg""/&fgfggu3EDDXExxfeVggz2GgxxhwxxwwwxxwvefwgwwvfwgfwwvwWݩWGwc%vfwfxwwgxxwfffvwwwwwgwvfgr"""fwxuhݫT7wwwxwxxwxxwgwvvffgWgwvwWvv_wɪxFGycEb%vwwwwwgwwwfgwfvwwfwfvwvwwvf""'wwug˩xtWxxxwwwwxxwwUVjcvwvevWggvvvWuwwwx̚xxxxx67""3FR'wxwwgvfefwgwffwfUVfffwwffxvwgdWxgxgwwwdUgfffg3hwwxwwwxxxwwwwxUeVvfwvwegsGexVvhwwwwF6x2"#Eb6weUVfVVvWfwwwwwfvgfvfvwwgvwwvfffuWwwxwwTCwghx3wwvwvfwwwwwxwwxxUeVwTZkvvwgwgw5vwxVfwwgww{wo25TVb7v6vgWfgvFgxwwwvwwwwwwwwwvgfwvwwwuwxwwSRwwxxY6wxwwwwwgwwvwwxwwxwv֧{u|fihQwewx̹SC8Uwhvvsshv·{diکwWws5wfeefe6fvgwvVgwfgvfwvvffffVffgvwxxwwSSxxxy23DgwwgxwwwwggwxgwxxxwvvTEEeXfɈ""#33eT"'xwxw̺xr#W4DDUU6uVvwvvxwgvghwwgv5geVwgvXwvxCCxxGdB2$37eefeegwxwwxxvkT&eVhicۙwr/""""%uTRvwxwgjeUwZ"G"###3%fDUffefewhvfwwvwt4WedfffGgwwwwwC3ixWew434EDffeffUgxxfwgwv}gxRHyUUXuWAʙxhwb#3""""2#o2vv7w۷ݨwgD"7"""3"#UCFefeEfeffwvggfC#ETCEDDUfxwwwwB&˚wfVF4DVTFeeeUTWgghwf{Vh$uGfTGuxwwxww#"""""""((&7gc#3~雙7C"2"#C3ETETDfUewwvgg2"4D#3333VgwxtVfC܋eEu}uDFS4T7vwvfgwweVu7UUfTXthWwxwwwwwwb3""""""#5/'"C43#w""B4$3#434DUfffewU3"#"""""#Evww3IeeU}{vwH233%wwVTUgvwfxwwvJFeTXuYVEgVThUzxxxw22""""""&"##$427"$TC#""""DDUfggvfT"2""#2""2Evgc"%uD4Wxc5huV##"#wveDUd4UffevwvEEU&hUxV6UwEXeZUxwxfb"#"2"""""%E("""$2232DFr"$R#2"""#55fwwgvwc"""""""""3B"#tC3C۩k"""#wvfveU43EDUeHvgw[Egdf5UDVdwWVwEwHTjeww"""""2"""6/224U#D#6#$D#5d"B"2"#55fwwxS"2""""2""3vw233423"Cfwgvfd"#%4DD6wfw5TT4ESvCfgUVTee6gFtjwx#"""((#3%H""t8"""3ER#C5fb3""222""""FTVvhxvvc2"""""""3"fd"2"2"""owwgeb"3"#"2#wfhΧuFgdxwE(Sf4VfddYFuYVviwxxxxw#2"""%S2R'GO/2"#23D"$D"43Vb"$B"2""""6D4fwwd22""""""2"fS""""#""D44xUfgvgwxeS"3"""2"hgg|d6wWvEGSudVD[|gUUVdwFvdUwwwxwwwx3s"%(X"%VRewtwt8(22"5R]""""D"52""""#""""6eDVgwwws"""##""""#vR#""22##%"#42|"2"6wxu2""2""""WwSFtWuWEU%TEegDWSegkDgGgTUVwwxxwwww"32"""(XUeUUGw("CC2>]TR""""%23""b"""""%vTUgwwt2""#"2"""#gR"""232"$2#D33kb3#5wxwwd23"#"2"'wwTwEWvwCSFCDhxUvETVgeXUUwfVfwkxxxww7ss"R%XueUUUUfwwv2""'>R""$TTV2"s"""""7vffWwww2""""""""$gR"""332"$2#32"FT3EU3Dg2"2"""""&xTVJVf3t4CxzVHuEC6jvXfweUUexwxxwow32"%(xUeVT_Ufvfofc"#"'wUEUeeDV2c$2""#HwxwVfwx""""#""""vgR"#3#2##$R#4""###<ޛC"5fgvY2"""""3"(4Xe4VuU4TDy7fCtSeTxGTuTWffweUUVXwxxwxxxwwvRvgwuUUT_UUfoo_RVVwR"3"Xwwwew"#"""2"##wC$2"22#"#S#D22"""&B"GwUw"""""#""'wwD9EETfwETVWW6weeSUwuVggeuUUUwhwxwwwwxwwc2"&ueEUVFVVhoofwugyͪR#""Vwwwwwwg3""#3"""%TxR32"""##$F$222""""7"WVxB2"2"23"(wxTDUYDtDEGSZFUJuVtfuWUUjVUvgfveyEihvxwxwwwxwffggfxU_VuVfVTfgwfgxDEEUgeR"""wvgwxwwwR"""""""5#3#2""""#""F33"""2"#3k"FgxxC3"2"22"&xxUFgtifUVFzDTHEUDCuxwXhgytVuwUvhuYWwvwwwwwww"&hzffgweefUUVuWVfvwegxv4S"""%wwgvgfwwwC""3"""#gS#"""2"#22#5|˻뙉wv3"""6fhUFYTxDsCT5UFTEDC5TFUUYvVvVgTUfUfWwUVvxwwwwwxwf2)fgwvxVfuufeVeVhwx""XwgfwvvffffD3233233""""""232#4jB""XfDvUdDU6VDUT2S4EFeYVfVE5dDvffgfvFEeVv~wwwxxxw̌"˩fVffffgeffWfeVUwwwwwwwwwvgggvgVfffC"""#"2"2"#:˙wtC2"whxF{xEhdDDexzFXuEECDUDGWeVeDxhufeVEUWVfvgw~vwwxxwʻʬWeefefgggffVVfeVfxD3#2"""32"223GvvB2#"23####32"$xwfj5wD4DgyETj6fufDDWwvWTYUgevfefU\ݦWfxwwwwvxw܄̼ȈfUegfffxefVvgVxfvg#4T#"222"""""#333CWwggwB"3#"#7wxgXGtDVgiTTTUvGVvVVYefV4WvvUVfufgeeZVWVwwwxwȍ̹̺UVfeUUegVgxwgw4UEUUU32"""""#6Vvgwwwwvs"2""5xw6{D4FDfUzDXuTSEGuUG4UXgeWUdTFgfgfvu}U2DwvϽͻ̻v_TfdVixwvgfgdDB33C4322"#""$EgwvxwwC2#3CCFDG34Ht6FEyCFUTUiUD5EffVVUTWegfffuVfVz""Vxwh܌Ȉϻ̪ܼWeUegUfʈxxxwuefefffTTDgvfgffgwffffVfggffgwwwwgwwwvgwww5"4CFggDGUT5ysTUWDTC4DwvvUVUGegVvWeUDB"""4wܪUUefWf˘fVgwxfvhUeTDC3DvVgvgwwxggwhwwvwwwxxwvwwxwwwEx5#4EtEUEC)UFgvfvgEGuwD3EXVvWegfveB""""Dx}˻˼VVewfDEE5DDETEUUEDDDETD4DChgewwgwwvxwwwwwxwwwwwwxwwwgwwgwww34f3"'HUETBeDWFgvWZUXvd3EUUGVvgevf{3$B""34hߩϻ˶wfݼ̹UDTDDDEDUDTDDDDDDSDET3yffwwxwwwwwwwwwwwwxwwxwwgwwwwfwwwwwsED3D%56DYED%u3eHDlVuXUEewUTUwCVVfefVeR#4T3"""D˻gn쩩UD4DiVUwvwwwwwwwwvwwfwwwwwwwwwwxfvwwgvfDfE4D35VEHwT(T&Dht4F|VehS7D3EC4DEEffVfu5#U3D2#""4~~ܼ˺M쫩eD44ieVwvwxwwvwwwxvgwwwwvwwwwwxxwwwwwvwFxSCH3#U4Ukt2s3t75UDDegUvF3BF32B9uCUFVvWd#$$43$2'"")݈xx̻D쪪uE$DzffvfwwwwwvwgxgwfvwvvvvgwwgwwgwwwggWhtT4CfVC24[S&3tGFiUWgvUTu3E$UC5%gEEUfGd3"#43SDC4R24n׈xxʺ5Ed434ieVwgwgwwwwwwgvxwwwvwwvffvvvggfwwwwgCCC&gYC#ESFCE5kSGTdDeUEcEs$DUC"53E5UdB"2$3SESC2""D˾VeD34yUUwwgwwwwvwgwwggvgfgvwvfvwvvfgggfwve4DBgfiCjC2$S3cG5XSEEDeDUUDHBDDUEC254VDT32#"$CTDD3""#3yw~x̼EFeD4DiUEwwwgwwwwwggvwwwvvwxwggwvvwggwwwwtDD$CDEJS34BBhGDD64UDEU4D%DDUECC45DDtD322##CD$43"22Egw욙eCD3iUVwwwxwxgwwwwwwvwfwwwfgwwwxxwwwwwHD)g4eDDSEDCEkDvCTS544EcFr4ETDT6DC34eDcDD22"##C334272"5~xwxugfmܷnuD3CxUuwwwwwvgwwwwwxvwhwwwwfhxwwwwwwwwxTBwwjEfT6USCF5UDC5dDUUSHC3#DCDETCS223eFCD33#2434U4S23#5~ʯ陘tDfCGSD_ܚvD33zeEwxxxwwxwwwwwxwvwgwxgwwwvvwVC4CWWC7DTDEEUDE6TEEW4f$DDTDTETDDC2De5udC433#24CDSC#TDUl4[uyf쩨fCDCyTFgffgwgwfVfggfwwwwwwwvwgxgwww#C7iDiTD3WfUDTS5GD3dTVUtDcDUDTuDTTEC6TT4EX3"#2"BD4TD#TB3nwwxuDCDy4Fgvgwwggwhwwvwwwwwvfxwwxxwww2#eUzFTDFfWWXd2$UC6dETTtFSDUD[TTEB77RF5VTxC32""344EDDB"3]wegyi~UDDDzDFwwgwwwwwwwwwwwwwwwwwxwvfggggwwwdDGDDFtDDGVfu{U33CFTETGTe4UUDEEDCSCC5VgDUY3"2""4%DDSC""5jeefvgf׉dDDDUXwwxwwwxwwwwwvgwwxwwwxwxwwwwwwwUTD84TDFgegg4DW3$dUETFsEE4EVDEC%C2"UUDTUX322"344CTD4c33l̋kUD43EFwvwwwwwwwwgvwvwwwwwwwwwxggwwgvf5hT5sEUTuvWf{ETUYC4EUUFcC#TEDDUFDC5324DhDWuUDCC#3"#3CFdC"224^{۹D_T444yEGwvwxwwvwwwwwgwwwwxwvvwwwwxwggwwvw6#6DB#TEVvvẄ́VDED5UUUH4""$TDEETDDTE44333VGDjYCVS3"22#4D4TC23#3MٌͪT4D3xdDGvfwwwwwvwgvwwfvwvwwgxwwwwwwwwggWfWhd24e7Vvfi4ifT4sTEeDE2E24TEDDDECC3C2&EW{tFvFd#eUj32C"#2EDEC"""#k̼DD34xEGwgwgwwwwwwwvwwwwffwgwxxwwwwgfwwwgf|U7c#3eweekEDUD8DTEDS4CTW34DUDDTUD332%FVdFuTT(gwJC#""234CCC4""$[̼̆hTD44xuU7wwgwwwvwgwwxwwwwwwwwwwgwvwfwvv$DJV24FfwWDDU2TDDDD24C324EDEDDD43#4[TeUCDf432""23DC3B3R##M˻DD44TDHwwwgxwwwwggwgwxwggggwvvwwwwwwwwwgFEEE4DCBhDhSC3&uDCD4C""23CY2"DUTCCC2"2ftFwDE5wVtUUYC"#"2C#S3D2B#$Y켻DD33e4HwwwxwvxxwwvwwwgwwfgvfwxwwwggwwhCYeEDeVSBHDDT3VCDDDD3"""#4Et#4EDD$4""2DDZuDFdGEdUDCC3"233D5U33""4]xuTDDDDDDDDDDD4DTC44DDC5eUIwwwwxwgwwwwwwwxvwwwwwgwwwgwwwwi4GC&T329sCdwD4fDDCD33C23#332h#$UC23"#DCC4DV3wi4WDES42"#"B4#$3"#"$[weyuDDC44DDDDDDDD4D32&dTHwxxwvwwxwgwwvwwfwwwxwwwvvwG3UDgD3DESCFC7dDDCDDCDDD%2"#DI3B34B"34D334Xt6vF[TGDd4FC#2#3#$#3D#2"6{̼̼쩙̼TTHwwgwwwxwwwwgwwwwwwwwwwwwwwwgwww3IdCC5uUEgC#DBfTDS4CDDTD3$3$2D5UCDD3344D$4#44GWDdFVUT33323""3$233#"CEjxhwgfvfvffffUfCSIwwxxwwwwwvwwwwxwvvwwwwwwxwwwww$xCD37edFZd3356UEDD4DDTDEeS3""#DD344234DDC3C"&3U{VT4TUEDt43"2222CDS23DEE|욪xwfvgvVuUdfeTEUDETSTZwvwwwwwwwwvwfwwwvfvgwwwwxwwwgvfrGDC4VeUWC5336TD4DDDDDCTwET#22"4D3S$eegCC343$34|DXSCSUUgcCC#"3"2C44$$DTVi숉wwgxvfeufUETTTDTTDDDKwvwwwwvwwwxvgwwwwwwvwwwwvwgwwvw45UC'fdfZD3Ft44TE3D4DDE7SC3""#4523UUeT4C333CIETDE4UFTETUB3"2"#BDTC3ETDUk虙wwxffffveVVUUUTUTEEETEZvfwgwwwvwhwgwfvvwvwwvwwwwwwggWCDHtBiUFec644DDDDE4DDDEDUs|TC3"#"C#3EuUUdD4C43GEUz5DDVVDDTt3C2#233D#3EETEU[ܽݹgfݘ3DEUDEEUTUUfVVUUTUDEDDEDTTgwwwwwwwwwfwwwwwvwvwfgwwgvwwwwgsUGd$eUf4WDsDUTDD4DTDDDxgDUTT33"#3CDEUVUDDDDDEC4VeSTD4d4DTdDTC33"#33DEDEEUV{ʬUDf""""""""""""""""""""""""̌ȗwgwwwwvwgvwxwwvvwwvvvwwuVgffwfwvcDC8veEY4vGc4CTDDDDDDD6tZDTUVC333C4CDFedEWVDdv35vSVUWS3DSTEEDC3322##UFDDEUUVkܼʶDhUc""""""""""""""""""""""""ɈwwwwwwwwwgwwhwwwgvfggfvwwwgvwwwwS4vVEfC7t33eDUD4CDTCCyzVdDD5SB#3CDCD4ET4KtWdXCBEBD4UCDDEFfEUE3222#3FTETDUT\ˬuDDD4C3"""""""""""""""""$ɇwwwxwxxwwwvgfgwwfwwvgwgevwwggwwdCEEj4ID25VDDCC4C335G53ZVC3CcR#5DEtDDTG8d[EcGB%cTweD5U5yfUC332#3UhDDTTDUM˫veVefeUUDTUDCDCCCDC343C23HwxwfgwwwwwvwvgghxwwwvfwwwuvwwwwwdEUTf4CFcDTE444DCXuJWwFdDtUUTTE4VSUEUX5XeXDCCDDD5sgEJdTDDxuTT4444HuVtUTDTUDFi˫ڼʧwhwugwwfVVUTUUTTTCCC4S438ɈwxxwwvvwwvgwwwvvwwxvwhwvwwvdV3IDTVTTTECTD5gTeGDTfeg6TDEgDVEldTYXU4DCCTDDGCEcEdTLCTDCDD{CUCeDETEUEEj޻ʘxhxfwwwffvVVVfVUYwwvfwwvggvwwvgfwwwwwwwxgggwwwwwweD49D[r7dTD4U4TFVv5SEFH}FEUS4C4K5f$CCD5vTDDFDEGȝdDTDEWvd7~UUUUUT]V{ʗyxxwvgvvefVgeeUUXɇwgvxwxffgwwvwgwwwwwwwwwvwwxwwwwxFDgte2#4dUEUVeghFxDD5ef{UUeDxDT3jFxuU54DDD4TEEUDTD5XGlfDEYfVTVTTUEdDTVhUT3*WxwwwxwxfffeffefeYxwwvwxwwgwwwwwwwxfvwwwwgwwwwwTUFDW2"#5eVfVdUyDHSEeFDTDUSWCEezTfwgT#TU4444D4FUTD4Dj#HwEXUWE|tTFuDUETUUleE3VgfwwwxwwwwgvffeUeXwwvhwwwwwwwwfvwwxwwxwvvUwwwfwwwwdUD\2#"#%fVvVe4DXFUW{DECETCDIEwfS$dTE4D4DD6DD4EC3#FneFTTIUWd3uDDUDEEU\UTUeUfvfgxxxxvwuufdeUUXɇwwgwwwwwgwwwwwwwwwwwwwwwxfvwwftD2"32##5uWevV4DwuEeDiuTUTDD{tEfVUCDDDD#CDB44FuDDCE2338|uT4DWHŅe5fZEDEEUVzUDEUUVVVUiwwwxxwfeefgfUiɇxvgxwwvwwwwgfvwwwwvwwwwwxxwwwwwwvw2"52D"334SDfU35TeUDTUDEUUDHeUYxe3dDTC4433$43wDD$2#38lT4t[fXUUDEEUUyUUVUUUUexvgghwxwvvfgfvfwjɘvwwwwwwwwxgwgwgvvwxfwwwwwgwwwgwwS"#S3"""""342DC2DEUdEDD3feTDu4DES$3DDD3IuI$C235eS3D24#FeUWHWEzVeECDDUDE]VTVUUTxxvwvhvvwffjwwvwgwwwwwwgvwwwwgvwwfvvwwvwfwwwwg#4RD#2#"""33DC3445D7dDSUeVuiU3DTCfD3DEDzTEd#B3BEdC3432BFKUtEDEUUVTDDGtDEFhUUUUeCUVfvwxxwwvvffuV[ȈwgwwwwvwgwwxwwwwfvwwwvvUVgfwwfwv##R332""""44443DKDDDBFUEf{S4t#C#uDDDD4DDD2333DWSD2$"6ldT#CeWUfFUEg|ESDEjVfw}wwgwwwwwfvwgwxwwvwxwwwfwgwwgww"2##3"R""#DD4CEjDE[C3dUDgDDDt"CDD4D39t4EDDgB#25dC4D3#3(]D6uTeWkEjtEEEXff˻̼˪臈wwxwxxwwvwwwgwwfwgggwwvwvwwgwB#42""5""3DDCVeT5E24eDFyETDT4eETD54SDED4Uh3##EmDDTD3348lEUTVTdUEUVEUDEixfvefUffVghfffUUTUUwwwvgwwfwwfwwxwwwwwwvwfwvgB#"C#""""2DDEDC342GTUU{TID&TDUD5ECTDDDEE7##35VD444$35\UtUE&DV:dDGhdTDEFiޚwxwffUTUUDUD44}xgfgxwvfgwwgwwwwxwxwwwwwwC"2#"""""4DDDE33D3fDDFC{GC3DETD3KUEDDDDDTE5"32$DTYCDC#43?@ABCDEFGHIJ"-"- Y:"-Z"- c:"-1"-p:"-"-z:"- "-i:"-"- :"-"- :"-"- :"-"-۩ݩߩJ{iH H "-8"-۩ ݩeߩ9 {iH "-H"-h "-բ"-{i+kOkayjederzeit dankbar!zu FontEdit bin ich,Fuer Anregungen und Verbesserungsvorschlaege6730 Neustadt-19 Roemerweg 36GKSoft c/o Gerhard Kress(gefaellt, schicken Sie bitte DM 20.- an:2FontEdit ist ein ShareWare-Programm. Wenn es Ihnen by GKSoftCopyright December 1988 Gerhard KressvonVersion F o n t E d i t ;8[iH&H"B;ihV H"rUHi'H"B;ih &"G:0"-0"-1"-1"-1"-1"-1"-1"-"-X"-"-*"-|'Hz'H"-z'|'v'x'HH"- "- &' {i+k!Save current Font before closing?Save current Character to Font? ;8[i''<8pI"A1"-1"-0"-0"-0"-0"-0"-0"-"-X"-"-*"-'' H,"koz:''H"koz:~~''H"ohi ''A"E~d'|{iH"=nd'{iTd'''ʍ''HH' "-hv'x'{i+k  )This Font is too big for the Font-Editor! ;8[i{iz Tq &s &u &w & y & `'b'd'{iTHH-H "-hz'|'|'Hz'H "-z'|'HH"Co{iHz'|'HH)H"nqz'|'HH{iH"nq)H"ph"ph{iH'"nq'~'''' "ph{iH'"nq''  "ph{iH'"nq''p''''''@'''' '' ''r@''"ph{iH'"nq''HH"Co'' "ph{iH'"nq''HH"Co'' ' '& "{i+kUntitledUntitled ;8[iH I ( iHHHH "-{i+kLoad what Font: ;8[iig.ȊHi.H"lFD"ph߆<`'>b'HHx-H "-hz'|'|'Hz'H "-ig0Ȋ4ȗHi.H"lz'|'0Ȋ4ߗȥHi.H"lHi.H"l{i+k ;8[iz'|'HHd'"nqz'|'߆d')Hߦ"ph"ph߆{iH'"nq'~'''' Hߦ"ph߆{iH'"nqߦ"ph߆{iH'"nq'' ''H"ohHߦ"ph߆{iH'"nq'{iH"nqߦ"ph'' H"ph߆{iH'"nq&HigH" n'' ''''''8 8' '& {i+k ;8[i-{iQH " ;iQ, "- " """-{i+k ;8[iHH"-h"- "{i+k ;8[iHH idHH"-z'|'HH{iH"nq)ݥid)8݅'{iH"nqߢHզ"phՆץՅ٥ׅۭ''HH{iH"nq)ӭ''''8 ''''H"oh eid')e:eӅӥ8pI0''HHHH"q''HHHH"nq'{iH"nqߢHզ"phՆ{iH'"nq'{iH"nqߢHզ"phՆ{iH'"nq'{iH"nqߢHզ"phՆ{iH'"nq'{iH"nqߢHզ"phՆ{iH'"nq'{iH"nqߢHզ"phՆ{iH'"nqidHHz'|'HHid)H"nqidHH{iH"=nd'{iTd'x'Hv'H "-HH idHH"-''HidHH"ImhHH idHH"-HidHH"Imhᭆ''8pI''ᭆ''''8ᭆ''''"ph"ph HH idHH"-''HidHH"Imh ' {i+k  ;8[i-ߩ᩠HH{iH "-hۆۢ"-"-"- :"-"-"-"-:"-"-(:"-|"-2:"-t"-<:"-g"-F:"-_"-R:"-B{iH''H"=lh{iH5{iH''H"=lh{iH{iH"=n{i{iT{iH"-:"-/"-:"-("-(:"-{iH''"kozH"=lh{iH {iH''"kohH"=lh{iH{iH"=n{i{iT{iH"-2:"-"-<:"-"-F:"-"-s2:"-{iH''H"=lh{i{iT{iH"-s<:"-{iH''H"=lh{i{iT{iH"-J2:"-{iH''H"=lh{i{iT{iH"-J<:"-{iH'' H"=lh{i{iT{iH"-JF:"-{iH''H"=lh{i{iT{iH"-ߩ2㩖z'|'HH{iH"nq {iH{iH "-{iHK"-{iH''H"=lh{i{iT {iH{iH "-ߩs*㩖{iH''H"=lh{i{iT {iH{iH "-{iHK"-{iH''H"=lh{i{iT {iH{iH "-]ߩ7n㩄{iH H "-{iHK"-{iH H "-ۢ8"-H"-hH "q "ۢ "-{i+kCancelOkayDescent: fRectWidth:KernMax:.Created with QD-Version: PointsSize: to ASCII Character Range from ASCII Ascent: fRectHeight:WidMax:Family number:Font:Font Information... ;8[i7ߩᩘHH{iH "-hۆۢ"-"-"- :"-"-a#"-"-:"-z'|'HH{iH"nqY#{iH{iH"=n{i{iT{iH"-#:"-Q#{iH''H"=lh{iHI#{iH"=n{i{iT{iH"--:"-;#{iHH"=lh{iH{iH"=n{i{iT{iH"-A:"-3#"-A:"-,#"-8ߩPCx{iHH"=lh{i{iT {iH{iH "-{iHK"-{iHH"=lh{i{iT {iH{iH "-Kߩ'\t{iH '#H "-ۢ8"-{iHK"-{iH #H "-H"-h٥v {iH"-H{iH"Imh"koh {iH"-H{iH"Imh"koh & ۢ "-{i+kCancelOkayWidth:Offset: ASCII-Code:  PointsSize: Font: Character Information... ;8[i'' <8pI)"AH)&H"B;ihť H"rU & HHx-H "-h "-HH{iH"nqHHx"Co''''8dddd٩ϭ'':8pI0Xdөխ'' :8pI0bH"D;ihH")E;i ץHH"D;ihH")E;i ӥՂצ HeH'' Hצ"ph HeHצּ'' H"nq''Hۦ"phۆݭ'' Hצ"ph׆٢"- "-ς''H"oh''H"oh˭''''8 ͭ''HH'' HeH"qHH''HH''''H"oh H"nq'{iH"nq HǦ"phdž{iH'"nq'{iH"nq HǦ"phdž{iH'"nq'''' '' ''    eˠ    եх8pI0'' ť ŭ'' ŗ뭒'' B'' ťŢ"phť ŭ'' ŗՂq' '"-''H"E ' '' H,"koz:''H"koz:~~''H"ohiíx'Hv'HM"-7"- {iHT"-Í">"-{i+kSave current Character to Font?-The Font will get too big for the FontEditor! ;8[iX"nq [ {i+k ;8[iX"nq卌 & '' 8pI'' ''x'Hv'HM"-">{i+k ;8[iHH"-h"{i+k ;8[iH+&H"B;ihk H"rUH+'H"B;ih0#&"G  - &' {i+k"Save current Font before quitting?Save current Character to Font? ;8[iHH"-ht0"-0"-0"-0"-0"-[ 0"-  0"-N1"-1"-1"-1"-1"-1"-{i+k ;8[iߥ߂"""3""*&"G";J"*")l")")"*" _"K"KO"OH"rU".>> Size \N700==Invert Character\N608.==Fill Character\N607==Clear Character\N606==Flip Horizontal\N605V==Flip Vertical\N604==Shift Right\N603*RrV==Shift Left\N602*Ll==Shift Down\N601*Dd==Shift Up\N600*Uu>> Design \N600==Move Character...\N509.==Put Character\N508*Pp!==Get Previous Character\N507*-_==Get Next Character\N506*+===Get Character...\N505*Gg ==-\N599D==Clear\N504D==Paste\N503D*Vv==Copy\N502D*Cc==Cut\N501D*Xx ==-\N599D==Undo\N500D*Zz>> Edit \N500==Quit\N420*Qq. ==-\N499D==Save As...\N411*Aa==Save\N410*Ss ==-\N499D==Close All\N403==Close\N402*Kk==Open\N401*Oo==New\N400*Nn>> File \N400 ==-\N302D..==About FontEdit\N301 >>@\XN300 ;8[i۩ ݭ߭˩9ͭ''wϭ''8 w7"-{iHT"-{iHT"-۩ ݩm~ߩ m˩:ͩϩ;7"-子:8pI0ۅӥ݅ե߅ץ٥˅åͅťυǥхɩ㭎:8pI0HQ"ohe󪽒&{iHT"-{iHT"-{iHHK"-{iHK"-|{iH~HK"-{iHK"-''~H"oh|7"- |H:"-:H|H<"-{i+k ;8[i "-H"ohi 7"-ߥՅᯂ㯄{iHT"-Տ7"- ᯄ{iHS"-ש8ٯ''wۯ''8 w{iHS"-"<"-{i+k ;8[iz'|'v'x'\@^ `bdfhjl@n prtvxz [ {i+k ;8[i1"-1"-1"-1"-1"-1"-"-X"-"-*"-{i+k ;8[i'''''N''''''''''''''''X''''''''''''''>''''''''''{i+k ;8[i "? "F@ "@{i+k ;8[i{iHHH" n"-Aɩx˩zͩϩdѩө{i׆{iۆdd F {iddddǩ#2 BddddH{iH"-h{i+kOkay ;8[i{iHHH" nIHH"-hφѩ<ө}թשHH{iH "-hۆۢ"-"-"-#ө#թ2ש{iH DH "-{iHK"-{iH DH "-{iHK"-{iH DH "-:"-{iH"-H"-hۢ "-Ϣ"-{i+kCancelNoYes ;8[i''"kozH"ph "koh =\  {i+k ;8[i"kozH"ph٥ ץ"koh \ׂ?"koh \"phע"phץ ח{i+k ;8[iH|G&H"B;ihץv H"rU "-''8׭'' ۭ'' ٭'' "ph"pzz'' )8ۍM"Codd߭:8pI0ۅݥ:8pI0?HQ"oh8eH"D;ih  ݂''H"ph߂w & "-{i+kSave current Character to Font? ;8[i+{i,HHH" n "-UdHH{iH "-hņŢ"-"-"-:"-(J{i,H{i,H"=n{i0{i,T{i0H"-''HH{i,H"nq,."ph,.''''8 ''''H"oh eid')e:.,"ph,.,."ph"pzz"ph,.{i,Ɇ{iH"l{i,Ɇ˩ͩddөխ`'׭b'{iH"l{i,ˆdd{iH"lz'|'ˆͥ,ϥ.{iH"l{iH"lŢ "-"- ' {i+kCarefully saving: ;8[i4{i7d'T{i7H"n{i7H7)H"n57)85pI095i7) 5i7. 5{i7HK{i5H''H"=lh{i5H{i5H"=n{i7{i5T(K{i7H{iQH "-Q!&{igT{igH"G{i+k Save Font As:. ;8[iPߩᩌ㩮HH{iH "-hۆHH"-h׆ۢ"- :"-"-:O"-"-#:"-.O"-ߩ㩴{iHH"=lh{i{iT {iH{iH "-*ߩ#6_{iH )OH "-{iHnK"-{iH "OH "-H"-h {iH"-H{iH"Imh''8pI 0 ''8pI 0%   Ig ,"-{iHH"=lh{i{iT {iH "- !"-  ۢ "-ע"-G''H"E H"Ex'Hv'HM"-">{i+kCancelOkay ASCII-Code:Get Character... ;8[i''8pI#H"Ex'Hv'HM"-"> ,"-{i+k ;8[i''8pI#:H"Ex'Hv'HM"-"> ,"-{i+k ;8[i'8pI''᭐: ''H"oh''''8 eߠ8':"kozݩխ8pI0w'' HeH''e HeH"q'' 8߭''we݅Ղ m''''''eݠ''''ݭ"ohw'{iH"nqݭ"oh Hצ"ph׆{iH'"nq'{iH"nqݭ"oh Hצ"ph׆{iH'"nq''''8 d᭎''''''8 :ѩխ:8pI0хӥۅ8 pIP'H'HHӠwHHH"D;ihH")E;i :ӂ''w"- "-Ղe''8ϭ''''8ͥυեͅ8pI06'' '' 騷wՂ'8'{i+k ;8[i''''8 d᭎''''''8 :٩ݭ:8pI0߅ۥم8pI0P'H'HH۠wHHH"D;ihH")E;i ۂ''w"- "-݂g''8׭''''8եׅݥՅ8pI06'' '' 騷w݂'8'{i+k ;8[i "-''8ݭ'' 8'' wߩ8pI "P8pI "S'' ۭ'' dd׭:8pI0խ:8pI0?'H'HeHHQ"ohe諾H")E;i Ղ''H"phׂu''  m'' 8pI'' &' "-{i+k ;8[iPߩᩌ㩮HH{iH "-hۆHH"-h׆ۢ"- :"-"-Z"-"-#:"-Z"-ߩ{iHH"=lh{i{iT {iH{iH "-*ߩ#6_{iH ZH "-{iHnK"-{iH ZH "-H"-h {iH"-H{iH"Imh''8pI 0 ''8pI 0%   Ig ,"-{iHH"=lh{i{iT {iH "- !"-  ۢ "-ע"-E "-''H"rU H"rU"-{i+kCancelOkayTo ASCII-PositionMove Character... ;8[i & HQ"ohieHQ"CoM"nqx'Hv'HM"-"<{i+k ;8[i & "qQ"Cox'Hv'HM"-"<{i+k ;8[i & 子:8pI0dHQ"oheHHQ"ohieHP"nqHQ"oh:e  傜x'Hv'HM"-"<{i+k ;8[i & 子:8pI0::8 pIAHQ"oheHQ"ohe󪽒  :タHQ"ohi  傁x'Hv'HM"-"<{i+k ;8[i & :"koz:ީޅ8pI0㭎:8pI0xHQ"ohe HQ"oheHQ"ohe󪽒  HQ"ohe  よ:_x'Hv'HM"-"<{i+k ;8[i & :"koz:ީޅ8pI0子:8pI0xHQ"ohe HQ"oheHQ"ohe󪽒  HQ"ohe  傈:_x'Hv'HM"-"<{i+k ;8[i & M"Cox'Hv'HM"-"<{i+k ;8[i & 子:8pI0g㭎:8pI0CHQ"oheHQ"ohe󪽒I  ソ備x'Hv'HM"-"<{i+k ;8[i & 子:8pI0'HQ"ohe  x'Hv'HM"-'' 8pIH,"koz:">{i+k ;8[i & 8pIf::子:8pI0'HQ"ohe  x'Hv'HM"-"> ,"-{i+k ;8[i7ש٩۩HH{iH "-h߆ߢ"-"-"- :"-"-Ye"-"-#:"-Le"-:"-Ee"-ש٩!۩{iH''H"=lh{i{iT {iH{iH "-%ש2٩/۩, {iH )eH "-{iH K"- {iH eH "-Dש'٩U۩t{iH eH "-ߢ8"-{iHK"-{iH dH "-H"-hdH "qߠH/"-dH "q {iH"-H ."-h  ߢ "-H{iH"Imh{i+kCancelOkayAdd/Delete Lines on the bottomAdd/Delete Lines on the topLines. Font Height:Change Font Height... ;8[i "-''''8 ᭆ''H"ohߠ''''H"oh eᭊ''HH'' HeH"q''HH H"Co''''wHQ"ohieHQ"ohM8H"qQ"ohH"Con''HH'' HeH"q''HH H"Co''''w'{iH"nq Hۦ"phۆ{iH'"nq'{iH"nq Hۦ"phۆ{iH'"nq"-{i+k ;8[i "-''''8 ᭆ''H"ohIߠ''H"oh eᭊ'' HeH''HH"nq''''wIHQ"ohieHQ"ohH"nq[''HH''ߩ"oh HeH"nq''''w'{iH"nq Hۦ"cqhۆ{iH'"nq'{iH"nq Hۦ"cqhۆ{iH'"nq"-{i+k ;8[iH"koz:~~H"ohi٭x'Hv'HM"-7"-۩ ݭ߭{iHT"-ٍ8pIMw۩8ݩm߭''8 w{iHT"-''''w'' ' {i+k ;8[i "ca~<8pIk"A_''88pI "oe 8pI "g "i">{i+k-The Font will get too big for the FontEditor! ;8[i{i+k ;8[i{i+k ;8[i{i+kHHH ;[ HHHHH &"  Ȁ8: ))e:  +hhhk}xsn i d _ZUPKFA<72-(# "#'( )*?mAmCm"-k ;[HHH)H ("h +k HHH;[ H ;n"H"h nHH nH "hnhnH "HHH nH "hnhne: k ;[ *n +n :T+  ;i k ;8 [  d) e )e     ;e i HH;[ F0D @0>)8 04  8 8  e :e   hh+  ;iknHnH"nHnH"");o ;[0   +  ;ik H;[ I Iʀ f  8 F F I+k H;[IIʩ FeI+kcck##k H;[ I I IIʀ&&ff !  8  FfFfͥ  IIzzzzzz+kCCk H;[IIIIʀFf ee&IIhhhh+k8k ;[0  +  ;i k ;[0  +  ;i k ;[JJJ+)0 0 0 0 0 0 0 7    (+;i(kim 3 o$-8-ADZ-f----------&-)','6-F-ILV-f-s-vy-------ZZ--11- -#&0-@-C F P-`-cfp--------&-g-x---&BrU#i&i)'-BT&W&ZG`dg|------------|'z'#-&z')|',v'/x'26A-DGU-Z&]'''A----)-6-C-P-`-p---''ko''ko~~''o''E ~ ~d'd'||'=n,d'9&=d'@d'C'F'IU'X']'`'j-ov'rx'z z q &s &u &w &y &`'b'd' & -$ -) z', |'4 |'8 z'C -F z'I |'h Cou z'x |' nq z' |' nq p p ' ' nq ' ' ~' ' ' 'O pb 'e 'k nqo 'r ' p ' ' nq ' ' ' ') ', '; '> 'M 'P '_ 'b 'q 't ' ' ' ' ' p ' ' nq ' ' Co ' ' p ' '# nq' '* '= CoA 'D 'V '^ 'a &f    - l+ p: `'B b'M -a -f z'i |'q |'u z' - l z' |' l lz'|'*d'-d'3nq7z':|'Md'bpnp''nq''~''''p''nqp''nq''''$o8pK'N'TnqX'['jnqxp''p''nq&& n'''''''''$''&M h-o y--- - z'|'5nqT'W'fnq{p''nq''''''''od'''*'?qF'I'^nqb'e'tnqp''nq''nqp''nq''nqp*'-'3nq7':'Inq^pq't'znq~''nqp''nqz'|'nq .=n3d'@&Dd'Gd'Jx'Nv'Y--''Im-Im'' ''''-'0'A'D'R'U'mpyp-''Im'%-9-F-S-c-p-sv-----||--tt--gg -- _#_--=-@BCBO'R'_=lo5r5~''=l=n--//--((-"-%(4'7'FkoL=l\ _ k'n'}ko=l=n------'-7-C'F'S=l~--''=l--''=l,-<-H'K'X=l--''=l-z'|'nqM-f-w'z'=l-''=lM-f-r'u'=l--+-AD\-m-~-q------,-/a#2a#<-I-Y-\z'_|'nqY#Y#=n--Q#Q#''=l I# I# =nG -W -Z ;#] ;#i m =l =n - - 3# 3# - - ,# ,# -!!=l`!-y!-!!=l!-!'#"'#"-*"-C"-Y" #\" #t"-"-"-"Im"ko""-"Im"ko"#&#-#'#'#)#)#A#)#)#&#B##rU#&$-$-+$-@$nqP$CoT$'W$'^$'a$'$'$'$'$'$D$)E%D%)E?%'B%'^%ps%'v%'%nq%'%'%p%'%'%p%-%-%'%'&o&'&''&o.&'1&'8&';&'T&'W&'d&'g&'&q&'&'&'&'&'&'&o&nq&'&'&nq&p'''' 'nq '''''nq5'pH''K''Q'nqU''X''_''b''t''w''''''('('0('3('B('E('Z(']('}(p('('('('(-('('(((E('('('(ko((')')ko)~)~ )'#)'2)o=)x'A)v'L)-Y)-f)l))-))>)-))** *nq*[+*0*3*6*9*?*nqE*M*&R*'U*'b*o*'r*'~**'*'**x'*v'*-*>*-**+*+*&*B%+)+rU/++2++5+'9+B`+&c+&f+Gt+-{+&~+'+-+- ,-,-&,-3,-6,[K,-N,Q,c,-s,-,-,-,-,-,-,,,3,,*,&,&-G -;J-*-)l-)&-)--*7- _?-KF-KOM-OT-X-rU`-6-H6-_6u<b6u<e6^<h6^<k6Q<n6Q<}6=n6,6,6A<6A<62<62<6"<6"<6<6<6;6;6;6;6;6;6;6;6;6;6;6;6=n6+6+6;6;6;6;6;7;7v;7v; 7e; 7e;7S;7S;7D;7D;79;79;!7;$7;'7:*7:-7:07:37:67:97:<7:K7=nP7*]7*a7:d7:g7:j7:m7m:p7m:s7W:v7W:y7?:|7?:7):7):7:7:7979797979797=n7)7)797979797~97~97s97s97R97R9719719797978787=n8( 8(8- 8(#8(/8-@8-E8)H8)T8-e8-j8*m8*y8-8-8+8+8-8-8,8,8-8-8-8-<<<'<'<'<'<-<- =-=~&=J=-R===o==-=-==->-->~9>-R>-a>'d>'k>~u>o|>|>->|>->>|>->->>>o>->??-?*?-2?I?-V?'[?'r?'w?'?-?<?-?z'?|'?v'?x'????\?^?`?b?d?f?h@j @l@n@p@r#@t)@v/@x5@z:@[]@-j@-w@-@-@-@-@-@-@-@-@'@'@'@'A'A' A'A'A'A'A'A'A'"A'%A'(A'+A'.A'1A'4A'7A'=A'CA'FA'IA'OA'UA'XA'[A'^A'aA'dA'gA'jA'mA'pA'sA>vA>yA'|A'A'A'A'A'A'A'A'A'A?AF@A@A n B-BBBBB-B nC-PC-dC-qC-~C-CDCDC-C-CDCD D-&D-IpJIpiIlI`'Ib'IlIlIz'I|'IlIl J-J-J'OJd'WJ&iJnJnJKJKJ'J' K=l%K=nCKKFKKeK-sK&K&KGK-K- L-L-)L-,L:O/L:O9L-FL-VL-YL.O\L.OfL-LL=lL-L)OM)OM-3M-IM"OLM"OdM-uM-M-MImM'M'M'M'BN-NNRN=lN-N-N-N-N'N'NEOEOx' Ov'O-O>XO'[O'bOuOzOEOx'Ov'O-O>O-O'O'OOOEOx'Ov'O-O>O-P''P'*P'8P?P'BP'QPoXP'[P'bP'eP'P'PkoPP'P'P'P'PqP'P'Q'Q'+Q'.Q'1Q'4Q';Q'>Q'RQ'UQ'\Q'_Q'hQkQo{Q'~Q'QnqQQoQpQ'Q'QnqQ'Q'QnqQQoQpR'R'RnqR'R'%R'(R'CR'FR'MR'PR'WR'ZR'zRR'R'RDR)ER'R'S-S-(S'+S'@S'CS'JS'MS'xS'{S'S'S'S'S'S'S'S'S'S'S'T'T' T' T'-TUT'YT'TDT)ET'T'T-T-T'T'T'T'T'T')U',U'7U':U'_U'hU'U-UU'U'U'U'UU'U'UPUSV'V'V'V'3VKV^V'bV'vVoVV)EV'V'VpV'V'VVV'V'W W'W'W!W&&W'2W-xW-W-W-W-W-WZWZW-W-W-WZWZW-XX=lgX-XZXZX-X-XZXZX-Y-$Y-1YIm=Y'@Y'eY'hY'Y-YY=lZ--Z-KZ-YZ-mZ-}Z'Z'ZrUZrUZ-Z&Z[o [ [[Co [#[&[)[/[nq3[x'7[v'B[-E[<b[&g[j[m[p[v[qz[}[[Co[x'[v'[-[<[&[[o[[[o[\\nq\o\)\:\x'>\v'I\-L\<i\&s\\\o\o\\\o\]x' ]v']-]<4]&9]B]E]koh]]o]]o]o]]]o]^x'^v'^-^<3^&8^A^D^kog^^o^^o^o^^^o^_x'_v'_-_<2_&7_:_B_CoF_x'J_v'U_-X_<u_&___o_o___x'_v'`- `<(`&2`K`oR`[`l`p`s`w`z`x'~`v'`-`'`'```ko``>`&``````aoa(a9ax'=av'Ha-Ka>Ya-a-a-a-a-a-a-aYeaYea-b-b-bLebLe'b-7b-:bEe=bEeGb-gb'jb'wb=lb-b)eb)ec- c-6c e9c eQc-{ce~cec-c-c-cdcdc-d- dddddq7d-:dd=ddIdqid-{d-d-dIme-e'e'e'e'e'e'eoe'e'e'e'eoe'f'f'f'*fq.f'1f'EfCoIf'Lf'Sf'Vf'mfpf|fofffofqfffofCof'f'f'f'fqf'f'gCog'g'g'!g'8g';g'Jgnq`gpsg'vg'|gnqg'g'gnqgpg'g'gnqg-g-g'g'g'g'h'h'+hoEh'Hh'Zhoeh'hh'~h'h'hnqh'h'h'h'hohhhhhohnqh'h'i' i'io+inq/i'2i'9i',m?m2mAm8mCmFm-sm-zmnm nm nmnmnm nmnmnn*nn+n*n)n+n)nonon!on&on7o;o- ,@ ~global - ,@ ICONSEG 4``@FONTEDITDESK.EDITORu' '  '*DESKEDITORNAL/DESK.EDITOR.PAS@}E)LFINDER.DATA>L?v` ,@ main v` """") ;8[il"H"h"HHH "hHH"iHH"(:"""66" moqsuwy{d}dddd{imH"H"9"HiH"HMOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~iH""iHH"H"HiH""{i+kHaving Fun ... ;8[i """"""""""""H""{i+k ;8[i||iiWW{iH"{iH"FF66&&  {iH"{iH" "HHH-"hH "HHH-"hH "H"h*"{i+k==Quit\N404*Qq. ==-\N999D==Save\N403*Ss==Load\N402*Ll==Fill\N401*Ff>> File \N400==Info ...\N302.==Caution...\N303 ==-\N999D==About ...\N301 >>@\XN300 ;8[iN   ",.02468:<>@BDFHJLHH "hHH"{i+k ;8[i" H}+""۩ݩߩHH{iH "h"s۩nݩߩ{iH H "8":"ll"#:"JJ"PU:"66"Pd:"!!"H"h "HH""H }+""{i+kApple fort et vert !Pour que vive le GS!a TomSoftWare FreeWare Production"Desk BackGround Editor Version 1.5Ok ;8[i" H}+""۩dݩߩ&HH{iH "h"s۩ݩߩ {iH H "8"#:"O O "#(:"  "#<:" "#P:" "#d:"z z "H"h "HH""H }+""{i+k5lors du retour sous ce Finder un Bug ou un Plantage !3d'abimer l'environnement du Finder et de provoquer 5tout noir ( ou presque tout noir ! ) vous risquez 4Si vous modifiez , En Mmoire , un Pattern qui tait4Attention ...le zero correspond la couleur noire !Pig ? ;8[i" H}+""ө(թשXHH{iH "h"}өթש{iH H "8"}өթש{iH H "}ө<թש{iH H """ :"":"t<"{iH.zJ"{iHU"тG#:"WW"-:"**"7:""A:""U:"zz"<_:"aa"<i:",,":""(:""9:"";:";<"C:"ee"PO:"AA"xW:"99"Pa:"##"n:""x:""D(:"nn"*:"|*<"F:"(("H:"H<"R:""^:""{iH5sJ"{iHS"ϩ8pI0D""hiWH:"""hiWHr<"ςϩ8pI05 "hi%H:" "hi%H<"7 "hi#H:"" 8H"} "hi#H:"" 8H"ς,#:"oo"-:"BB"7:""A:""U:""_:""F:"" :" <"*:"cc"4:"%%">:""H:""W:"TT"a:"##",u:"  "#80 H`{ ^ d H"hͥ͂т#"""тY""#":тnn  "HH""H }+""{i+kTomSoftWare / Novembre 880"SAUVER LES INFORMATIONS DU FINDER" est active.)8 04  8 8  e :e   hh+  ;ik H;[d 8 2 )    8 ) h+  ;ik {cH;[hh+hk {cH;[ JJJ -)0 0 0 0 0 0 0  hh+hhk {cH;[  :JJJ 1)0 0 0 0 0 0 0  hh+;ik{cH ;[ +;ik{cH ;[ I7+;ik{cH ;[ 7+;ik ;[   (+;i (k ;[I7   (+;i (k ;[ I7  (+;i (k ;[ jjjjjjjj +;ik ;[JJJ+)0 0 0 0 0 0 0 7    (+;i(k H;[IIʩ FeI+k H;[ I Iʀ f  8 F F I+kcck8k H;[IIIIʀFf ee&IIhhhh+k H;[ I I IIʀ&&ff !  8  FfFfͥ  IIzzzzzz+kIIkIIk##kkCCkIIk8 # zz(k *kJjkjjjk***k;8 ;[  {iH "{iH{i H " +;ik;8 ;[  {iH "{iH{i H " +;ik;8 ;[H({iH "h+;ik;8 ;[H({iH "h)+;ik ;[:"hH "h::H:"+;ik;8 ;[{iH "{iHU""+;ik;8  ;[{i H)" 8   {iHU"+;i k;8 ;[{i H)" 8d  "zH"HHg"h{iH ~"h"+;ik;8 ;[{i H)" 8d  "zH"HHg"h{iH~"h"+;ik ;[) eH0"+;ikHHH ;[ HHHHH &"  Ȁ8: ))e:  +  ;ikHHH ;[H HHH HH '"  Ȁ 8: ))e:  +  ;i k;8% ;[$ &{i$H-H+H{iH "{i$H{iH1H/H "+'+&*;i)k ;[HHH)H ("h +;ik ;[HHHH)H )"h h +;ik;8& ;[.H,H{iH{iH{iH "{iH2H0H "+(,'+;i*kHHH ;[ )f A [8Ai a {8ai 80))  J ) J) +  ;i k""""""""""""""""""""""""""""""""33333333333333333333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUffffffffffffffffffffffffffffffffwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww ;[;8 ")) )))));i+;ik ;[ HH H HHH "+  ;i k ;[;8")) ;i+;ik ;[;8" ;i+;ik ;[;8+" ;i+;ik ;[HHHHHH H$"h hhh+;ik ;[;8 " ;i+  ;ik ;[;8 " ;i+  ;ik ;[;8 " ;i+  ;ikHH;iHHHHHڢ "hhk    hhZ"HHkHHHH "hk ;[  "ኇ+ ;i k   ;[Z z Z"+hhhk . &     ;[Z z Z"+hhk ;[ ڢ "+  ;ik ;[  "+  ;ik   ڢ "+  ;ik ;[ " +hhk;iHHHڢ "ኃhhk ;[d  +hhk ;[ȗȥ @ȩ+hkH "hk ;[ "  +hhkHH "hhkH "hk;iH "hk "  k H H H H "(p0   ;ik;8  ;[dd\:"hi ) A[i     + ;ik;8 ;[$&{iH"` V$&") d d dd{iH"$&{iH"(+$#;i"k;8$ ;[HH,*"hH,*."h222202 2 2 22 2.)dHHH" "h!#%#2%2# {iH" 22+&2%1;i0k;8 ;[$$G$dd{iH"$$$$$ $$ + $#;i"k;8( ;[HH0."h! " "666646 6 6 66 62)AHHH" "h!#!%!'%6'6 66H0.2"h)6)66646 6 6 66 62)_HHH" "h!#!%!'%6'6) {iH" 666dd{iH"+*6)5;i4k;8 ;[  ' dd{iH"   + ;ik;8 ;[$$A${iH"$$HH""+ $#;i"k;8 ;[$& " {iH"+$#;i"k;8 ;[ "{iH"+ ;ikk;8 ;[  < $& d {iH"L  +$#;i"k;8 ;[  < $& d {iH"L  +$#;i"k;8 ;[$$n$HHHH$H " "hh {iH"${iH"{iH"+$#;i"k;8 ;[  2 {iH" H"zz$&+ ;ik ;[) +;ik;8 ;[$$$$$) d {iH"L $+ $#;i"k;8  ;[&&& d {iH"!&&  &!L &+"&!%;i$k ;[) +;ik ;[ HH"+;ik ;[ HH"+;ikHH ;[   ȥ  "+ ;i kHH ;[  )   "+;ikHH ;[    ȯ   ȯ   "+ ;i ktruefalseHHHHH ;[HHHHH &"  Ȁ 8 : ) )e:   "+  ;ikHHHHH ;[HHHH HH '"  Ȁ 8 : ) )e:   "+  ;ik;8) ;[//3 (3*(5 *{i(H9H7H{iH "{i(H{iHHH "5/1"++7*6;i5kHZHH ;[ 80,* )e)     HH"%  ȷ ȷ HH" +kHH ;[   ") "+  ;ikHH ;[   "  ) "+ ;i kHHHH ;[":e   Ȁ :    +  ;ikHH ;[   "%HHeHژ8 ("h "+ ;i kHH ;[   " ,HHHeHژ8 )"hh "+ ;i k;8* ;[0002"LHH{iH{i H{i H "{i H6H4H "02"+,4+3;i*kZHH ;[ "N)   Ș "Ȁػȷ)  Ȁ阠+hhhhkZ ;[ )? HH"% ȷȷ HH"+kZ ;[ ) )   +k;8 ;[d)  : )) H"h{i H)"{i H "H{i H{i HO"h)HH:" HH")j{i H)"H i H:" @HHg"{i HHH H H~"h"H 8 H:"HH "h)5HH "h)!HH ")  "+;ik;8< ;[BB)) H"h{i H)"{i1H "H{i H{i1HO"h)HH:"d{i H)"  i{iHV"᩼ {iHV"᩼ H({iH "hХ ɥ) {iHU" H i H:"႑v8pI9) {i H)"H H"8hH H:" 8 i{iHU"H"  B5 HHg"{i1HHH H H~"h"H 8 H:"Ⴋd;HHH "hhh=H ""h9) 4;Ȅ;  "= "BN&; " " ";;Ȅ;  9 ";f) B +>B=A;i@k;8 ;[d)  : HH " " +;ikprinter: console: keyboard: n181 125Ƃ@ƂDmNƂYmmƂrouqxo{qmƂoqmƂƂƂƂ66ƂkƂsm~ƂƂmoqƂmoqƂƂoqmƂmƂm o q"Ƃ,ƂYƂcƂmƂwƂƂƂƂƂƂƂƂƂmƂƂ||i iWW 5$'63:F=F@6C6F&I&LOR U X[j5nƀqƀ3ƂǀǀƂƂƂƂƂƂtvxz|~  #(t+t5Ƃ:=@DOƂmƂvyƂƂƂƂ Ƃ1ƂAƂDlGlQƂaƂdJgJqƂƂ66ƂƂ!!ƂƂƂƂƂ ƂƂƂƂƂƂƂ> A YƂjƂzƂ}O O ƂƂ  ƂƂ  ƂƂ  ƂƂz  z  Ƃ Ƃ, Ƃ/ 3 > ƂH ƂK N f Ƃp Ƃ Ƃ   Ƃ Ƃ Ƃ Ƃ7 : R Ƃc Ƃ   Ƃ   Ƃ Ƃ Ƃ   Ƃ. Ƃ> Ƃ] Ƃu Ƃ Ƃ W W Ƃ Ƃ * * Ƃ Ƃ   Ƃ Ƃ   Ƃ Ƃ z z Ƃ* Ƃ- a0 a: ƂJ ƂM ,P ,Z Ƃm Ƃp s } Ƃ Ƃ   Ƃ Ƃ   Ƃ Ƃ Ƃ Ƃ e e Ƃ ƂAAƂ-Ƃ0939=ƂMƂP#S#]ƂmƂps}ƂƂƂƂnnƂƂƂƂ((ƂƂ Ƃ0Ƃ36@ƂPƂSV`ƂƂƂb:Ƃb:Ƃb:#Ƃ.b:?ƂJb:[Ƃ^agZjZm0SZZSb:ƂZZ0SZZSƂooƂ ƂBBƂ+Ƃ.1;ƂKƂNQ[ƂkƂnq{ƂƂƂƂƂƂƂƂccƂƂ%%Ƃ.Ƃ14>ƂNƂQT^ƂnƂqTtT~ƂƂ##ƂƂ  Ƃ{ ^ dƂ"Ƃ@ƂcƂƂƂƂƂƂƂƂƂƂ69\ƂfƂilƂƂmƂƂƂƂ>Ƃ^:jb:w:b:::b::b:::b:D\b:f}b:b:b:b:?b:b:  Ƃ8;EƂHKUƂ[ƂƂ"Ƃ2Ƃ58BƂH?hƂ{ƂƂƂƂ' Ƃ0 3 E ƂO Ƃ Ƃ Ƃ Ƃ ! ! Ƃ ! ! Ƃ !Ƃ5!!8!!P!Ƃa!Ƃ!Ƃ!!!Ƃ!Ƃ!!!Ƃ!Ƃ2"Ƃ;">"P"ƂZ"Ƃc"E'f"E'i":'l":'"Ƃ"Ƃ"""Ƃ"Ƃ"m"Ƃ #Ƃ# # 8#K#ly#Ƃ##[$Ƃ$Ƃ&$lT$h$t<t$;$$$$Ƃ %Ƃ,%Ƃ/% 2% S%Ƃf%Ƃi%ly% %%%%%)'%)'%3%%?%Ƃ%Ƃ%Ƃ&& & &&Ƃ!&[$&['&*&-&j46& 9& >&B&S&Ƃc&Ƃf&'i&'o&Zr&Zu&0Sy&}&&Z&Z&aT&&&:&&&&&Ƃ&&&Ƃ&Ƃ&&'Ƃ 'Ƃ\'`'?'b:'b:''b:'b:'''Ƃ(((Ƃ0(5(b:<(}(([([(.-(.-(3(b:(b:(b: )b:)Ƃ*)Ƃ=)ƂN)b:])b:n)b:)b:)Ƃ)?)Ƃ)))3*Ƃ*Ƃ/*Ƃ2*5*K*ƂQ*?U*X*b*Ƃh**Ƃ*Ƃ*Ƃ*Ƃ*&-*&-*Ƃ+b:+b:(+b:7+b:H+ƂU+Ƃh+Ƃ{+b:+b:+b:+b:+Ƃ+?+Ƃ+b:+b:++,3,b:',b:3,j,Ƃw,Ƃ,Ƃ,Ƃ,-,-,Ƃ,Ƃ,Ƃ,,,Ƃ,?---Ƃ\-Ƃ---3--?---Ƃ.b:.b:."...3B.b:P.b:Y.\._.c.?n.b:|.b:...Ƃ.....t<./~</)/;/t<E/[/~<c/u//t<//~<////././//g////Ƃ///Ƃ-0Y40 ;0B0I0"P0O'\0s0Ƃ0s030?- 1Ƃ10"1sE1!I1M1Q1R(\1Ƃ_10c1Eq1ʂv1Ȃ1)21+21Ƃ1-21-21!21#21-21%22'22/272#2<2!2H2'2M2%2^2/2f2/2o2/2222-22)22+22҂3΂3Ђ3033033Ђ$3΂3҂3 3 3Ƃ44 4474W4=4X4=3$>b:0>b:~>>?: ?>?:?>?~B?~BFGFGFGFGJ8`Jb:%J:`*J:`KR5KIOKJVKRbLRLIL_L_MJMRNR&OROROROR&PRPRPR!QRaQRrQ;QR{RRRRRRSU[SUSSSSSSSSSSSSSUNTUTUnUUUQUUUUUVUU VX3VY^VXwVYVX W5X:WYeW5XWYW5X"XYIXXXXXRXXXYXYXXZZZZZRZ@YZZ^R^[^^%`RJ`_^`@Yr`[ ;[ !#%'):  +;ik;8 ;[     :  ie H  HH H"2+ H) H1 H"z :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  )Ԃ ,@ ~global Ԃ ;[ !#%'):  +;ik;8 ;[     :  ie H  HH H"2+ H) H1 H"z :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  )PROGRAM DeskEditor; { Tomsoftware / V.et B. Tomeno / decembre 1988 } { Ce programme a ete realise sous TML-PASCAL } { Les routines propre au TML sont couvertes } { par le Copyright de la societe TML-SYSTEM .} uses QDIntf, { Routines QuickDraw } GSIntf, { Les Tools du "DeskTop"et les autres } MiscTools, { Miscellaneous Tools } ConsoleIO, { Routines Console I/O } ProDos16; const ScreenMode = $80; { mode 640 } MaxX = 640; AppleMenu = 300; AboutItem = 301; {-----} InfoItem = 302; {-----} CautionItem= 303; FichierMenu = 400; FillItem = 401; ChargeItem = 402; SauveItem = 403; {-----} QuitItem = 404; var adresse : LongInt; searchString : string[16]; palette : array[0..15] of rect; { position des couleurs } { de la palette } currcoul : record { couleur courante } couleur : integer; { n de couleur } pos : rect; { et position du } end; { rectangle } Dessin : array[1..4,1..8] of record { } couleur : integer; { reprsentation } pos : rect; { du pattern } end; { } resultat : rect; { rectangle du rsultat final } MyPat : Pattern; { pattern rel } SauveEcran : packed array[0..32000] of byte; { Sauvegarde ecran } FinderString : string[82]; { String du fichier FINDER.DEF } OriginalString : string[16]; { valeur initiale du pattern dans FINDER.DEF } fromFinder : boolean; { si ce programme a t lanc du finder } MyMemoryID : Integer; { Id d'application assign par le Memory Mgr } ToolsZeroPage : Handle; { Handle en page zero pour les Tools } Done : Boolean; { Vrai si l'utilisateur veut quitter } myWind : NewWindowParamBlk; { fentre de la grille } myWindPtr : WindowPtr; AppleMenuStr : Str255; { Chaines de dfinition des menus } FichierMenuStr: Str255; TitleMenuStr : Str255; {########################################################################} {# procedure StartUpGSTools; #} {#----------------------------------------------------------------------#} {# Charge et initialise les "Apple IIGS Toolbox Managers". #} {########################################################################} procedure StartUpGSTools; var ToolRec: ToolTable; begin TLStartUp; { init Tool Locator } MyMemoryID := MMStartUp; { init Memory Manager } MTStartUp; { init Misc Tools } { Alloue 8 pages mmoire en bank 0 pour l'utilisation des GS Tools. 3 pages pour QuickDraw, 1 page pour l'Event Manager, 1 page pour le Menu Manager, 1 page pour le Control Manager, 1 page pour Line Edit 1 page pour Standard File } ToolsZeroPage := NewHandle(8 * 256, { alloue 8 pages } MyMemoryID, { User ID pour les memory blocks } fixedBank+fixedblk+locked, { Attributs } ptr(0)); { dbute en bank 0 } QDStartUp (LoWord(ToolsZeroPage^), { basse adresse des 3 premires pages 0 } ScreenMode, { mode 640 } 160, { taille max de scan line } MyMemoryID); { User ID pour les memory blocks } EMStartUp (LoWord(ToolsZeroPage^) + $300, { basse adresse de la 4me page 0 } 20, { taille de la file des events } 0, { X min } MaxX, { X max } 0, { Y min } 200, { Y max } MyMemoryID); { User ID pour les memory blocks } { affiche un message pendant le chargement des tools } MoveTo(40,30); SetBackColor(0); SetForeColor(15); DrawString('Having Fun ...'); { chargement des tools ncessaires l'application } ToolRec.NumTools := 10; ToolRec.Tools[1].TSNum := 4; { QuickDraw // } ToolRec.Tools[1].MinVersion := 1; ToolRec.Tools[2].TSNum := 5; { Desk Manager } ToolRec.Tools[2].MinVersion := 1; ToolRec.Tools[3].TSNum := 6; { Event Manager } ToolRec.Tools[3].MinVersion := 1; ToolRec.Tools[4].TSNum := 14; { Window Manager } ToolRec.Tools[4].MinVersion := 0; ToolRec.Tools[5].TSNum := 15; { Menu Manager } ToolRec.Tools[5].MinVersion := 1; ToolRec.Tools[6].TSNum := 16; { Control Manager } ToolRec.Tools[6].MinVersion := 1; ToolRec.Tools[7].TSNum := 21; { Dialog Manager } ToolRec.Tools[7].MinVersion := 0; ToolRec.Tools[8].TSNum := 20; { Line Edit } ToolRec.Tools[8].MinVersion := 0; ToolRec.Tools[9].TSNum := 22; { Scrap Manager } ToolRec.Tools[9].MinVersion := 0; ToolRec.Tools[10].TSNum := 23; { Standard File} ToolRec.Tools[10].MinVersion := 0; LoadTools(ToolRec); { Chargement des tools } if isToolError then begin { ajouter du code pour demander d'inserer le Boot disk } end; WindStartUp(MyMemoryID); { init Window Manager } Refreshdesktop(nil); CtlStartUp { init Control Manager } (MyMemoryID, { User ID pour les memory blocks } LoWord(ToolsZeroPage^) + $400); { basse adresse de la 5me page 0 } MenuStartUp { init Menu Manager } (MyMemoryID, { User ID pour les memory blocks } LoWord(ToolsZeroPage^) + $500); { basse adresse de la 6me page 0 } ScrapStartUp; { init Scrap Manager } LEStartUp { init Line Edit } (LoWord(ToolsZeroPage^) + $600, { basse adresse de la 7me page 0 } MyMemoryID); { User ID pour les memory blocks } DialogStartUp { init Dialog Manager } (MyMemoryID); { User ID pour les memory blocks } SFStartUp { init standard file } (MyMemoryID, { User ID pour les memory blocks } LoWord(ToolsZeroPage^) + $700); { basse adresse de la 8me page 0 } DeskStartUp; { init Desk Manager } end; { of StartUpGSTools } {########################################################################} {# procedure ShutDownGSTools; #} {#----------------------------------------------------------------------#} {# ferme les "Apple IIGS Toolbox Managers". #} {########################################################################} procedure ShutDownGSTools; begin GrafOff; DeskShutDown; SFShutDown; DialogShutDown; LEShutDown; ScrapShutDown; MenuShutDown; WindShutDown; CtlShutDown; EMShutDown; QDShutDown; MTShutDown; MMShutDown(MyMemoryID); TLShutDown; end; {########################################################################} {# procedure SetUpMenus; #} {#----------------------------------------------------------------------#} {# Initialise les Menus. #} {########################################################################} procedure SetUpMenus; var Height: Integer; begin AppleMenuStr := concat('>>@\XN300\0', '==About ...\N301\0', '==-\N999D\0', '==Caution...\N303\0', '==Info ...\N302\0.'); FichierMenuStr:= concat('>> File \N400\0', '==Fill\N401*Ff\0', '==Load\N402*Ll\0', '==Save\N403*Ss\0', '==-\N999D\0', '==Quit\N404*Qq\0.'); { TitleMenuStr := concat('>> ------ Desk Background Editor ------ \0.'); } SetMTitleStart(10); { InsertMenu(NewMenu(@TitleMenuStr[1]),0); { Titre } InsertMenu(NewMenu(@FichierMenuStr[1]),0); { Menu Fichier } InsertMenu(NewMenu(@AppleMenuStr[1]),0); { Menu Apple } Height := FixMenuBar; { Fixe la hauteur des menus } DrawMenuBar; { ... et dessine la barre du menu } end; {########################################################################} {# procedure SetUpWindow; #} {#----------------------------------------------------------------------#} {# Initialise la fentre principale. #} {########################################################################} procedure SetUpWindow; begin with myWind do begin param_length := sizeof(NewWindowParamBlk); wFrame := $0020; wTitle := nil; wRefCon := 0; wYOrigin := 0; wXOrigin := 0; wDataH := 200; wDataW := 640; wMaxH := 200; wMaxW := 640; wInfoRefCon := 0; wInfoHeight := 0; wFrameDefProc:= nil; wInfoDefProc := nil; wContDefProc := nil; wPosition.top := 0; wPosition.left := 0; wPosition.bottom := 200; wPosition.right := 640; wPlane := -1; wStorage := nil; end; myWindPtr := NewWindow(myWind); setPort(MyWindPtr); end; {########################################################################} {# procedure DoAbout; #} {#----------------------------------------------------------------------#} {# Affiche le Dialogue de About ... #} {########################################################################} procedure DoAbout; var aboutDlog : DialogPtr; r : Rect; itemHit,i : Integer; begin HideCursor; { on cache le curseur pour qu'il ne soit pas memoris } BlockMove(Pointer($E12000),@sauveEcran,32000); { sauvegarde de l'cran } ShowCursor; { on raffiche le curseur } with r do begin { rectangle } top := 30; left := 130; bottom := 165; right := 430; { } end; { du } aboutDlog := NewModalDialog(r,true,0); { } SetPort(aboutDlog); { dialogue } with r do begin { } top := 115; left := 110; bottom := 130; right := 190; { bouton } end; { } NewDItem(aboutDlog,1,r,10,@'Ok',0,0,nil); { OK } SetDefButton(1,aboutDlog); { } MoveTo(20,15); DrawString('Desk BackGround Editor Version 1.5'); MoveTo(20,35); DrawString('a TomSoftWare FreeWare Production'); MoveTo(80,85); DrawString('Pour que vive le GS'); MoveTo(80,100); DrawString('Apple fort et vert !'); itemHit := ModalDialog(nil); { attente d'un click sur le bouton } CloseDialog(aboutDlog); SetPort(MyWindPtr); HideCursor; { on cache le curseur pour qu'il ne gne pas } BlockMove(@sauveEcran,Pointer($E12000),32000); { on restaure l'cran } ShowCursor; { on raffiche le curseur } end; {########################################################################} {# procedure Caution; #} {#----------------------------------------------------------------------#} {# Affiche le Dialogue Caution ... #} {########################################################################} procedure DoCaution; var CautionDlog : DialogPtr; r : Rect; itemHit,i : Integer; begin HideCursor; { on cache le curseur pour qu'il ne soit pas memoris } BlockMove(Pointer($E12000),@sauveEcran,32000); { sauvegarde de l'cran } ShowCursor; { on raffiche le curseur } with r do begin { rectangle } top := 30; left := 100; bottom := 165; right := 550; { } end; { du } CautionDlog := NewModalDialog(r,true,0); { } SetPort(CautionDlog); { dialogue } with r do begin { } top := 115; left := 185; bottom := 130; right := 265; { bouton } end; { } NewDItem(CautionDlog,1,r,10,@'Pig ?',0,0,nil); { OK } SetDefButton(1,CautionDlog); { } MoveTo(35,20); DrawString('Attention ...le zero correspond la couleur noire !'); MoveTo(35,40); DrawString('Si vous modifiez , En Mmoire , un Pattern qui tait'); MoveTo(35,60); DrawString('tout noir ( ou presque tout noir ! ) vous risquez '); MoveTo(35,80); DrawString('d''abimer l''environnement du Finder et de provoquer '); MoveTo(35,100); DrawString('lors du retour sous ce Finder un Bug ou un Plantage !'); itemHit := ModalDialog(nil); { attente d'un click sur le bouton } CloseDialog(CautionDlog); SetPort(MyWindPtr); HideCursor; { on cache le curseur pour qu'il ne gne pas } BlockMove(@sauveEcran,Pointer($E12000),32000); { on restaure l'cran } ShowCursor; { on raffiche le curseur } end; {########################################################################} {# procedure DoInfo; #} {#----------------------------------------------------------------------#} {# Affiche l'information sur le FINDER.DEF ... #} {########################################################################} procedure DoInfo; var InfoDlog : DialogPtr; r,effaceRect : Rect; itemHit,i, numecran : Integer; begin HideCursor; { on cache le curseur pour qu'il ne soit pas memoris } BlockMove(Pointer($E12000),@sauveEcran,32000); { sauvegarde de l'cran } ShowCursor; { on raffiche le curseur } with r do begin { rectangle } top := 30; left := 40; bottom := 180; right := 600; { } end; { du } InfoDlog := NewModalDialog(r,true,0); { } SetPort(InfoDlog); { dialogue } with r do begin { } top := 125; left := 420; bottom := 140; right := 500; { bouton } end; { } NewDItem(InfoDlog,1,r,10,@'Ok',0,0,nil); { OK } SetDefButton(1,InfoDlog); { } with r do begin { } top := 125; left := 240; bottom := 140; right := 400; { bouton } end; { page } NewDItem(InfoDlog,2,r,10,@'Page Suivante',0,0,nil); {suivante} with r do begin { } top := 125; left := 60; bottom := 140; right := 220; { bouton } end; { page } NewDItem(InfoDlog,3,r,10,@'Page precedente',0,0,nil); {precedente} HideDItem(InfoDlog,3); MoveTo(165,12); DrawString('INFORMATIONS sur le FINDER.DEF'); MoveTo(165,14); LineTo(372,14); SetRect(EffaceRect,1,15,558,122); numecran := 1; repeat EraseRect(EffaceRect); case numecran of 1: begin MoveTo(15,35); DrawString('Le fichier FINDER.DEF se situe dans la directory principale des disquettes'); MoveTo(15,45); DrawString('et contient des informations pour le FINDER.'); MoveTo(15,55); DrawString('C''est un fichier de type $00 sous GSOS et $C9 sous P16 mais les deux '); MoveTo(15,65); DrawString('systmes reconnaissent les 2 variets.'); MoveTo(15,85); DrawString('Il est facultatif mais dans ce cas les options par dfaut seront :'); MoveTo(60,95); DrawString('-Fond d''cran bleu-mauve'); MoveTo(60,105); DrawString('-Aucune des options du Menu Prfrences n''est coche'); end; 2: begin MoveTo(15,30); DrawString('Il est long de 82 octets mais actuellement (fin 88) seuls les 18 premiers'); MoveTo(15,40); DrawString('semblent jouer un role :'); MoveTo(15,57); DrawString('LE PREMIER OCTET dtermine les options du menu PREFERENCES, ou chaque'); MoveTo(15,59); LineTo(130,59); MoveTo(15,67); DrawString('bit reprsente une option :'); MoveTo(80,79); DrawString('bit de poids faible pour l''option 1'); MoveTo(120,87); DrawString('. . .'); MoveTo(80,97); DrawString('bit 6 pour l''option 7'); MoveTo(15,110); DrawString('Un premier octet zero signifie qu''aucune option n''est selectionne ,'); MoveTo(15,120); DrawString(' 44 que les options 3 , 6 et 7 le sont etc...'); end; 3: begin MoveTo(15,40); DrawString('LE SECOND OCTET est 00 et ne semble tre qu''un sparateur.'); MoveTo(15,42); LineTo(124,42); MoveTo(15,70); DrawString('LES OCTETS 3 A 18 dterminent la couleur du fond d''cran du FINDER,'); MoveTo(15,72); LineTo(132,72); MoveTo(15,82); DrawString('et dfinissent une matrice de 4 pixels de large sur 8 de haut ,qui est'); MoveTo(15,94); DrawString('reproduite dans le programme sous le label " PATTERN " :'); end; 4: begin SetRect(r,53,26,189,115); FrameRect(r); for i := 0 to 2 do begin MoveTo(i*34+87,26); LineTo(i*34+87,114); end; for i := 0 to 7 do begin MoveTo(53,i*11+37); LineTo(189,i*11+37); MoveTo(55,i*11+35); Write('Octet ',17-i*2); MoveTo(125,i*11+35); Write('Octet ',18-i*2); end; MoveTo(210,35); DrawString('Ainsi, si ces 16 octets sont uniquement'); MoveTo(210,45); DrawString('composs du mme chiffre (ex 33 33 33....) ,'); MoveTo(210,55); DrawString('le fond d''cran sera monochrome et sans'); MoveTo(210,65); DrawString('motif.'); MoveTo(210,85); DrawString('Une succession de chiffres diffrents les'); MoveTo(210,95); DrawString('uns des autres induit des motifs varis.'); end; 5: begin MoveTo(15,30); DrawString('CE QUE FAIT LE FINDER'); MoveTo(15,32); LineTo(160,32); MoveTo(15,42); DrawString('Lors du boot, le FINDER cherche un ventuel FINDER.DEF et en stoke les'); MoveTo(15,52); DrawString('donnes en bank 11 (volontiers dans ses deux quarts mdians.)'); MoveTo(15,62); DrawString('Quand on revient au FINDER aprs une autre occupation, le FINDER.DEF n''est'); MoveTo(15,72); DrawString('pas relu sur disque : seules sont consultes les donnes de la bank 11.'); MoveTo(15,87); DrawString('Le FINDER.DEF n''est re-crit sur disque que lorsque l''option'); MoveTo(15,97); DrawString('"SAUVER LES INFORMATIONS DU FINDER" est active.'); MoveTo(300,117); DrawString('TomSoftWare / Novembre 88'); end; end; itemHit := ModalDialog(nil); { attente d'un click sur un bouton } case ItemHit of 1: numecran := 6; 2: begin if numecran = 1 then ShowDItem(InfoDlog,3) else if numecran = 4 then HideDItem(InfoDlog,2); numecran := numecran + 1; end; 3: begin if numecran = 2 then HideDItem(InfoDlog,3) else if numecran = 4 then ShowDItem(InfoDlog,2); numecran := numecran - 1; end; end; until numecran = 6; CloseDialog(InfoDlog); SetPort(MyWindPtr); HideCursor; { on cache le curseur pour qu'il ne gne pas } BlockMove(@sauveEcran,Pointer($E12000),32000); { on restaure l'cran } ShowCursor; { on raffiche le curseur } end; {########################################################################} {# procedure lecture; #} {#----------------------------------------------------------------------#} {# Lit un fichier FINDER.DEF #} {########################################################################} procedure lecture; var i,j : integer; srcBuffer : Handle; { buffer du Fichier } mytypeList: TypeListRec; { type des fichiers charger } myreply : ReplyRecord; { caractristiques du fichier slectionn } P16Blk : P16ParamBlk; { fichier charger } readBuf : packed array[1..512] of char; { chaine lue } r : rect; begin HideCursor; { on cache le curseur pour qu'il ne soit pas memoris } BlockMove(Pointer($E12000),@sauveEcran,32000); { sauvegarde de l'cran } ShowCursor; { on raffiche le curseur } mytypeList.NumEntries := 2; myTypeList.fileType1 := $00; { type des FINDER.DEF GS.OS } myTypeList.fileType2 := $C9; { type des FINDER.DEF P16 } SFGetFile(100,35,'Charger quel FINDER.DEF :',nil,@mytypeList,myReply); HideCursor; { on cache le curseur pour qu'il ne gne pas } BlockMove(@sauveEcran,Pointer($E12000),32000); { on restaure l'cran } ShowCursor; { on raffiche le curseur } if myReply.good then begin srcBuffer := NewHandle(512,MyMemoryID,0,Ptr(0)); P16Blk.pathname2 := @myReply.fullpathname; { nom du fichier } P16Blk.ioBuffer := srcBuffer; P16Open(P16Blk); if isToolError then begin SysBeep; exit; end; P16Blk.dataBuffer := @readBuf[1]; { lecture } P16Blk.requestCount := 82; { du } P16Read(P16Blk); { fichier } readBuf[0] := chr(LoWord(P16Blk.transferCount) - 1); P16Close(P16Blk); { representation du pattern } for i := 1 to 16 do begin Dessin[((i+1) MOD 2)*2 + 1,9 - (i+1) DIV 2].couleur := ord(ReadBuf[i+2]) DIV 16; Dessin[((i+1) MOD 2)*2 + 2,9 - (i+1) DIV 2].couleur := ord(ReadBuf[i+2]) MOD 16; end; for j := 1 to 8 do begin { pattern reel } MyPat[j-1] := Dessin[1,j].couleur*4096 + Dessin[2,j].couleur*256 + Dessin[3,j].couleur*16 + Dessin[4,j].couleur; { -- on dessine le pattern -- } for i := 1 to 4 do begin SetDithColor(Dessin[i,j].couleur); PaintRect(Dessin[i,j].pos); end; end; SetPenPat(MyPat); PaintRect(resultat); for i := 1 to 16 do OriginalString[i] := ReadBuf[i+2]; DisposeHandle(SrcBuffer); end; end; {########################################################################} {# procedure Sauvegarde; #} {#----------------------------------------------------------------------#} {# Sauve un fichier FINDER.DEF #} {########################################################################} procedure sauvegarde; var i,j,k, nombreTest : integer; myreply : ReplyRecord; { caractristiques du fichier slectionn } P16Blk : P16ParamBlk; { fichier sauver } WaitDlog : DialogPtr; srcBuffer : Handle; { buffer du Fichier } readBuf : packed array[1..512] of char; { chaine lue } SearchRect : rect; Procedure LetsWait; { dialog d'attente pour la recherche en memoire } var r : Rect; begin with r do begin { rectangle } top := 75; left := 135; bottom := 125; right := 480;{ } end; { du } WaitDlog := NewModalDialog(r,true,0); { } SetPort(WaitDlog); { dialogue } MoveTo(20,40); DrawString('Searching pattern in memory for modifying ...'); SetDithColor(0); SetRect(r,90,15,253,25); FrameRect(r); OffSetRect(r,1,0); FrameRect(r); SetRect(SearchRect,92,16,102,24); end; function WantToSearch : boolean; { Demande a l'utilisateur pour la recherche en memoire } var r : Rect; SearchDlog : DialogPtr; itemHit : integer; begin HideCursor; { on cache le curseur pour qu'il ne soit pas memoris } BlockMove(Pointer($E12000),@sauveEcran,32000); { sauvegarde de l'cran } ShowCursor; { on raffiche le curseur } with r do begin { rectangle } top := 90; left := 100; bottom := 140; right := 540;{ } end; { du } SearchDlog := NewModalDialog(r,true,0); { } SetPort(SearchDlog); { dialogue } MoveTo(20,15); DrawString('Do you want to replace current background in memory ?'); with r do begin { } top := 30; left := 20; bottom := 45; right := 200; { bouton } end; { } NewDItem(SearchDlog,1,r,10,@'YES',0,0,nil); { YES } SetDefButton(1,SearchDlog); { } with r do begin { } top := 30; left := 240; bottom := 45; right := 420; { bouton } end; { } NewDItem(SearchDlog,2,r,10,@'NO',0,0,nil); { NO } itemHit := ModalDialog(nil); { attente d'un click sur un bouton } WantToSearch := (ItemHit = 1); CloseDialog(SearchDlog); SetPort(MyWindPtr); HideCursor; { on cache le curseur pour qu'il ne gne pas } BlockMove(@sauveEcran,Pointer($E12000),32000); { on restaure l'cran } ShowCursor; { on raffiche le curseur } end; begin HideCursor; { on cache le curseur pour qu'il ne soit pas memoris } BlockMove(Pointer($E12000),@sauveEcran,32000); { sauvegarde de l'cran } ShowCursor; { on raffiche le curseur } SFPutFile(150,35,'Save as :','FINDER.DEF',15,myReply); HideCursor; { on cache le curseur pour qu'il ne gne pas } BlockMove(@sauveEcran,Pointer($E12000),32000); { on restaure l'cran } ShowCursor; { on raffiche le curseur } if myReply.good then begin srcBuffer := NewHandle(512,MyMemoryID,0,Ptr(0)); P16Blk.pathname2 := @myReply.fullpathname; { nom du fichier } P16Blk.ioBuffer := srcBuffer; P16Open(P16Blk); if isToolError then begin FinderString[1] := chr(0); FinderString[2] := chr(0); for i := 19 to 82 do FinderString[i] := chr(0); fromFinder := false; end else begin P16Blk.dataBuffer := @readBuf[1]; { lecture } P16Blk.requestCount := 82; { du } P16Read(P16Blk); { fichier } readBuf[0] := chr(LoWord(P16Blk.transferCount) - 1); for i := 1 to 82 do FinderString[i] := ReadBuf[i]; for i := 1 to 16 do OriginalString[i] := ReadBuf[i+2]; P16Close(P16Blk); DisposeHandle(SrcBuffer); fromFinder := true; end; for i := 1 to 8 do begin FinderString[(i-1)*2+3] := chr(BitAnd($FF00,MyPat[8-i]) DIV 256); FinderString[(i-1)*2+4] := chr(BitAnd($00FF,MyPat[8-i])); end; P16Blk.deletepathname := @MyReply.FullPathName; { destruction du } P16Destroy(P16Blk); { vieux fichier } P16Blk.pathname1 := @MyReply.FullPathName; P16Blk.access := $C3; { DRbWR } P16Blk.fileType := $C9; { type spcial FINDER.DEF } P16Blk.auxType := 0; P16Blk.storageType := 1; P16Blk.CreateDate := 0; P16Blk.CreateTime := 0; P16Create(P16Blk); { cration nouveau fichier } P16Blk.pathname2 := @MyReply.FullPathName; P16Blk.ioBuffer := nil; P16Open(P16Blk); P16Blk.databuffer := @FinderString[1]; { sauvegarde } P16Blk.requestcount := 82; { du } P16Write(P16Blk); { finder } P16Close(P16Blk); { -- recherche de la pattern du finder en memoire -- } if fromFinder then if WantToSearch then begin adresse := $110000; nombretest := 0; searchstring := '1234567890123456'; LetsWait; SetDithColor(2); PaintRect(SearchRect); repeat if nombreTest = $1000 then begin nombreTest := 0; OffSetRect(SearchRect,10,0); PaintRect(SearchRect); end; BlockMove(Pointer(adresse),@searchString[1],16); if searchString = originalString then begin BlockMove(@FinderString[3],Pointer(adresse),16); moveto (85,10); Write ('Pattern found at ',adresse); end; adresse := adresse + 1; nombreTest := NombreTest + 1; until adresse = $11FFF1; CloseDialog(WaitDlog); { fermeture du dialog d'attente } SetPort(MyWindPtr); HideCursor; { on cache le curseur pour qu'il ne gne pas } BlockMove(@sauveEcran,Pointer($E12000),32000); { on restaure l'cran } ShowCursor; { on raffiche le curseur } end; end; end; {########################################################################} {# procedure DoFill; #} {#----------------------------------------------------------------------#} {# Remplit le pattern avec une seule couleur. #} {########################################################################} procedure DoFill; var i,j : integer; r : rect; begin SetDithColor(Currcoul.couleur); for j := 1 to 8 do for i := 1 to 4 do begin Dessin[i,j].couleur := 13; PaintRect(Dessin[i,j].pos); end; PaintRect(resultat); for i := 0 to 7 do MyPat[i] := CurrCoul.couleur*(4096+256+16+1); end; {########################################################################} {# procedure Cree_ecran; #} {#----------------------------------------------------------------------#} {# Initialise et affiche l'cran. #} {########################################################################} procedure Cree_ecran; var i,j : integer; r : rect; begin for i := 0 to 7 do MyPat[i] := $DDDD; originalstring := '1234567890123456'; { juste pour l'initialiser } { -- palette des couleurs -- } for j := 0 to 1 do for i := 0 to 7 do begin SetRect(r,120+30*i,160+15*j,120+30*(i+1),161+15*(j+1)); SetSolidPenPat(0); FrameRect(r); SetRect(r,121+30*i,161+15*j,119+30*(i+1),160+15*(j+1)); SetDithColor(j*8+i); PaintRect(r); Palette[j*8+i] := r; end; { -- couleur courante -- } SetRect(r,50,160,110,191); SetSolidPenPat(0); FrameRect(r); SetRect(currcoul.pos,51,161,109,190); SetDithColor(13); PaintRect(currcoul.pos); currcoul.couleur := 13; { -- reprsentation du pattern -- } SetRect(r,130,15,290,28); SetSolidPenPat(0); FrameRect(r); MoveTo(183,25); DrawString('PATTERN'); for j := 1 to 8 do for i := 1 to 4 do begin SetRect(r,130+40*(i-1),28+15*(j-1),130+40*i,29+15*j); SetSolidPenPat(0); FrameRect(r); SetRect(r,131+40*(i-1),29+15*(j-1),129+40*i,28+15*j); SetDithColor(13); PaintRect(r); Dessin[i,j].pos := r; Dessin[i,j].couleur := 13; end; { -- rsultat final -- } SetRect(r,400,15,603,28); SetSolidPenPat(0); FrameRect(r); MoveTo(461,25); DrawString('FINAL ASPECT'); SetRect(r,400,28,603,191); FrameRect(r); SetRect(resultat,401,29,602,190); SetDithColor(13); PaintRect(resultat); end; {########################################################################} {# procedure DoAction; #} {#----------------------------------------------------------------------#} {# Effectue les actions selon l'endroit o l'on a cliqu la souris. #} {########################################################################} procedure DoAction; var c : point; i,j : integer; begin GetMouse(c); { position de la souris } for i := 0 to 15 do { si on a cliqu dans la palette } if PtInRect(c,Palette[i]) then begin currcoul.couleur := i; SetDithColor(i); PaintRect(CurrCoul.pos); end; for j := 1 to 8 do for i := 1 to 4 do begin { si on a cliqu } if PtInRect(c,Dessin[i,j].pos) then begin { dans le pattern } Dessin[i,j].couleur := currcoul.couleur; SetDithColor(currcoul.couleur); PaintRect(Dessin[i,j].pos); case i of 1 : MyPat[j-1] := BitOr(BitAnd(MyPat[j-1],$0FFF),currcoul.couleur*4096); 2 : MyPat[j-1] := BitOr(BitAnd(MyPat[j-1],$F0FF),currcoul.couleur*256); 3 : MyPat[j-1] := BitOr(BitAnd(MyPat[j-1],$FF0F),currcoul.couleur*16); 4 : MyPat[j-1] := BitOr(BitAnd(MyPat[j-1],$FFF0),currcoul.couleur); end; SetPenPat(MyPat); { et on redessine } PaintRect(Resultat); { le rsultat } end; end; end; {########################################################################} {# procedure ProcessMenu; #} {#----------------------------------------------------------------------#} {# Actions du Menu. #} {########################################################################} procedure ProcessMenu(codeWord : Longint); var menuNum: Integer; itemNum: Integer; begin menuNum := HiWord(codeWord); itemNum := LoWord(codeWord); case itemNum of AboutItem : DoAbout; InfoItem : DoInfo; CautionItem : DoCaution; ChargeItem : lecture; SauveItem : Sauvegarde; FillItem : DoFill; QuitItem : Done := true; end; {of case} HiliteMenu(false,menuNum); end; {########################################################################} {# procedure MainEventLoop; #} {#----------------------------------------------------------------------#} {# Boucle Principale. #} {########################################################################} procedure MainEventLoop; var Event: EventRecord; code: Integer; begin Event.TaskMask := $1FFF; Done := false; repeat if button(0) then doaction; code := TaskMaster(-1, Event); if code = wInMenuBar then ProcessMenu(Event.TaskData); until Done; end; {########################################################################} {#----------------------------------------------------------------------#} {# MAIN #} {#----------------------------------------------------------------------#} {########################################################################} begin StartUpGSTools; SetUpMenus; SetUpWindow; Cree_ecran; ShowCursor; MainEventLoop; ShutDownGSTools; end. #gr^ DESKEDITOR9XDESK.EDITOR.PAS.r`> CYCDEMO.PIC PUB.TRANSWARP`4Q @,@IMAGEWRYTEIMAGEWRYTE4Q|((p)*v--r..M0B<&&& '==k"qkK"hD\ [F+ [F\(H "hhH "hh K  HH""ddDdFJ00Hv dfh\HHHH"  + zz    h5fU "k F[$>0 "\+M +F PHH" HH"8`"=k F[ / h +"dk F[ h ;[+Hi : h)   iɀ m Z  {z+IGrafCharsp)$"$)pp('%'(pBBB$|TVUTD} "}%BBB%>@A@A@> TVU8@ UVT8@ VUV8@ UTU8@"UUV9@ WUW8@DDD8TVU8UVT8VUV8UTUJy@HyBJyBE|A}y8DFED88DEFD80JIIJ08EDDE82IIJJ1<@BA<@IIB UUU(@>%%%~~~~! d4,&%~ IIA@>QIE>(((( H"AA"H *,,*  0HII>cUIIAAAAHxxH~^aa^ TT8TTdTL:`@p`~ H$$HH$`PHDHP`(D(DD(D(@@@p(%"$(pp*%%&*q%CBB%"AIII8DD|TTT"A"I0  p 0 ]"AAA"](DD(~ y~   ```C#p(&%&(p|VUVTDp($$&)p|UTTUD|TUVTD@~AB}BA~AA~@8DDDFE88DFEFD88zH8DEFDD8>@@BA@>>@BAB@>>@AB@@>Hx@@@ ĄBH`^^8zH g001"k F[ / +R"k F[ E+u"k F[  "   +1d h0%`"Lk F[ {# L NHNHLH H S;&"h+?"k F[ +"k F[ : 8 H+"k F[ -+\"k F[ l+\"k F[ +H"k F[ L NLDFJ+K^ X b f d ` \"."022H0H "00020X ȷ0b ȷ0^ ȷ0f ""DH "h> h@  2H0HH"@ H> H""H"" o J \ ,F ` H"8X ^ J "` J ``  2H0HH"@ H> H"V `V N P F L `X H "hm\ H hX H")F Z Z X X ^ X H"h)F h)F Z R )@F )梎T )@ X ^ 8``@ H> H "> 8@ :8082` Kwy)` 8ny)@) w@wYOi0i22H0HR"h8HHR"h"2H0HHHiM"h`e8aei8aim8amޜac)@Neggeksoumqg8mkg8iosium)@BF@JB)o V e@BB @ o)``oiSe8mUKSO)!,wpw y0` ) M,y0,wMS !  ( ' l `,w0p  JJ`,w0p   `,w0t,y0oMmm)mU `,w0[,y0VڊJJJ+HhH {h8 'h) `T96 Am)mUڊJJJJ 'h) `K =?A'$0,y0,w ! !,O[] =O[]K,y0,wO <  = OOm/ <` ,y0,wO <   O <ܫ`,.&"*,i $&,i(*,i "`,.&"*,i,.KKMK`h0i%hi2'0)# `#hc%hhi' `#M#+"'H%H+H" S;&#8+#%m+%'`k  )JJJeiHHHH +" HH""` HHHH+" HH""` HHHH+" HH""` HH "` ) eeKZ) vrvtx .zZ ~z٫ HH""` )`JJJJ)^)JJJJb^` `b bbd8^d~`dzbd|~fjz||h2|fhz~~jjh|~~fb8fhdl^8jfdn`8jhdp<4 8dڬJJrлrmvmtH "hxh` H)P$,r )zv )뙌t )뙎`x )z`$2zr  v  t  `x  z`$2zr  v  t  `x  z`$2zr  v  t  `x  z`@`pp@kW@[])@@OH_H "hehe) ') =Lo8k Lo:J::CkJ )8ȷ/CC: J( ))o`=`WJWJ)J WWoJ) WWo`W e@$    `  .,j,.,j, `We@$   ` .,j, `.$j$.(j(.,j,```W e@$  4 4 4 4 ` ,jj,,jj,,jj,,jj, `$jj$(jj(,jj,`\) 'z=LGo8k8o:JJo:)%- ) )L9)򈈭kJJCO0CCPK0K1K2K3 hhhhhh\  hhhhhG   hhhh3  hhh  hhhk;i;i;iw ;i a  hhhhhK   hhhh6  hhh" hhhk7#;#HPN(HPP ( '<$H(P(x ??$=%&U& @n<= ImageWriter*d [K# +L/# [K #+L # K[i&"+L/#K#$'΍'Ѝ'ҍ'ԝ'{iH{iH'M"hq'8'HHH'H "hm''hm'''8'J,'Jm'''''''''''''$H"8kK()"($)((H(H$H"8% Ȁ HHZ{iH HHHHHH$H"_";"k [K#  B;##+" + #HH("+L # [K HH#)"P# #;##+" +#HH("+L # [K# ȣ ʥHH "LHH "ȪȅʆȠș#,H$$ ,H$)H$)8H$)@:H$)@H6H %5_,H0 .H00H0$ $,6H$@ $,:H$ $,8H$ $,>H$ +#Ȉ+L # [K# ȣ ʥHH "LHH "ȪȅʆȠș#,H-M$0H$),H.H$8H6H$) @H2H:H>HHK$$6H0$ +#Ȉ+L #$H"h&)$$ ####$--$($-$ m$m$m$-&-$&-$-$  $8n $N $@-$$-0I$m $ $ $m $ $-$$##-$  $$##$ $m$$ $m $$-$$H-$h -$h h 1$-$$H-$h -$h h 3$3$J$J/$1$H/$H "h5$h #!$$ #$#$#$`    JJEHE` [K +L/#HH0"h #L"h [K"h&h & "HHH "h#&$$HH#)"M$)#& Q:   0   ģ Ģ"####P 0 #+L" DH# L #h [K H H"HHHH""# H :h+L #$H" &H&H"H#L"h [KHH"##0dd#G$:I$  '$ HHHH"##"HH HH"hiPH HH" # h h  H H&""" H H"#+L"#G$:I$ 0"' 00#'-0/0 0D"ံH# L #h [K#" H H""+L ##G$ :I$"HHH$HHH "h``"H"hN^H8ZHNN)@8NJZHHmN^HH FI,HFI86J@H6JH2"h*h,,H*H"#"bHH`HH:"fHHdHH<"ZJHXJH:"(""E")""NK: ڽKHKH:"ڽRKHPKH"4"h | 2(22333_3_333444y4,H*H ."h@H,H*H N"NN)H ("h>H2H0x,H*H N"N)NN)H ("h:H,H*H O"O)OO)H ("h,HJi,H*Hڢ/"ک,HhJi,H*Hڢ/"႒8,H0S,H*H !",H*H/",H*H/",H:,H/,H*H/",H*H/",H,H8,H0 8,H*H /",H*H/" ,H:,H,H*H/",H*H /" ,H,Hx,H*H ."hIH,H*H /"MJ,H*H ""N` K;[ HH#[HH#JH  0:+ hhhhhhk"H"hN^H8ZHNN)LK@8NJZHmN^HN)KKKK LK(LmKKKimKKKmLLKim LLXH "h*h,,H*H"#"bHH`HH:"fHHdHH<"ZJHXJH:"(""E")"">J: ڽ^JH\JH:"ڽBJH@JH"إ,H*HI F ",H*H I F "H ,H*HiHJHJH  xJHvJH "htJШ"hKKhKKK"K"KS" LS"ڢ,H0 ,,HJi S9ک,HhJi  S9p@H:6H$ S9 S9L6H:@H$ S9  S9-H8,HI,Hh JHJH"h)I S9,H*H ""N`ZJHJH"` K;[ HH#[HH,H*H"#"RH"HRHKO"h ,H%mHRH LO"hV,HK,HI,H,HI,HKV"KS" LV" LS"+ hhhhhhk"H"h) NN NN@8NJFOmNJOO "hNhNNHNH"VOHTOH:"#0GQG""`NHNH "`H"h) NN NN@8NJFOmNJOO "hNhNsG ; S;`& <``O) &GE) &G4))D&G) &G &sG<<"᭺NHNH"XOU"VOHTOH:"9HMWZdMW6Zd6r (r/MII6INIfI~IIIIIIJ&J# F FU FU' F(U2 F>UH FLUV} GhZr G hr6 )G W<fdK IXK IXK 8 FFEMFoFFF  IIln FFF/F9F_FfFFFhHpHxHHHHHHHI IFFH%H0H;HFHUbUb&8IPIhIIIIIFFFGGGFFFFGG)G  ;Tbp 14K=%KKt @s B*L 44L=%"LLtKsIoM 44,X ZN (<X(KXOOZP rP( |P Insrez la feuille suivante dans l'ImageWriter, puis cliquez Continuer.#+PH ContinuerAnnuler _6PPQ( rP-: |P Insrez la feuille suivante dans l'ImageWriter, puis cliquez Continuer.?PJ &)knqw ?CVf҄ !$6;NUXps'*-39DIR^intw|# &,5;AGMS_kpsvy|":HMRUilqz}' +048AFLOTZ]bhkpsy2 $'-0=@EKNSY\adgjmpsy|+ #'*/36KI:KhI6KPI2K8IJFJFJ IJIJHJHJHJHJHJHJxHJpHJhHJFJFJfFJ_FJ9FJ/F~JFzJFvJFTJFPJFLJoFHJMFDJE@JF2JFJKJKIKI)GIGIGIFrIFZIFBIF*IFIFH&JHJHIHIHIHIHIH~IHfIHNIH6IHIHIEPEOEsEEGEHH+EEDGD6EDD&DlC`CBBBeB B$B8A$A$ArEA/&A&A$A/&A$A &@$@rE@rE@sG?@rE?rE?@E+?$? ?8????>?=#<#<%D<# <`O;XO;sG;G;G;Gt;GJ;sG2;O:QG:0G:O4: L': L:K :K9 L9RH9K9RH9RH88d97 L7 L7K7Kx7 Lk7K^7KQ7K6F6 I6F6I56E5XH2O2O2N2NY2NI2N141E41H0O0#/ 0/#'/'/ 05/'$.#.t.#-#-#N)#3)#-);#)#(#(#(;#v(_+((('8''''e'''i&K&U&G&&C&=%?&$7#;#3#7#!!!!l!!c!!I!!@!!&!!!! ! ! !!!!!!!y!p!b!U!D!3!"!!!!!qF!,!!!E!!!!dW<EE"  iW " 8 `  F   RHL`d9=mq?=;=7 '3&/&+&'B<#M0.r.-v-* p)((Yrive 5,25 Distar avec carte contrleur-->700F et 1 sans carte 500F. Vends aussi moniteur monochrome vert Goldstar --> 500 F M. Roger Tel: (1)- 48-31-37-85 5- Cherche un utilitaire de recopie d'cran SHGR pour la Dot Matrix Printer d'Apple. Ecrire au club, frais d'envoi rembourss. se. Le correspondant est animateur informatique dans l'ducation et nous annonce que son canton a choisi comme ordinateur pour les coles, l'Apple II GS. Il se plaint de ne pas tre bien servi, les machines sont livres avec Mousedesk 2.0, il n'arrive pas avoir les ROM SCSI rvision C, il manque de support et de logiciels. Un pav de plus dans le marketing de l'Apple IIgs, hors Etats-Unis! Le matriel ----------- La carte Transwarp GS d'Applied Engineering, l'vnement de ce dbut d'anne. Voir article. La carte Sonic Blaster du mme constructeur est une carte de digitalisation avec une sortie strophonique assure par son propre amplificateur, inutile de mettre des enceintes spciales. Le son digitalis SOUND.A, sur cette disquette l'a t avec cette carte. On peut enregistrer partir d'un micro, d'un magntophone, d'un lecteur de compact disc, d'un tlviseur, etc... En plus, elle est fournie avec un logiciel trs complet permettant de couper, de copier et de coller les sons, permettant de diminuer, d'amplifier, d'inverser et de mettre de l'cho. A moins de 1000F pour les membres du club, il faut peut tre pencher de son ct plutt que se lancer dans la construction de sa propre carte. Surtout si la seule motivation est financire. Une socit amricaine Preferred Computing PO Box 815828, Dallas TX 76501, USA pour la somme de $189, vend une carte PC Transporter, l'mulateur d'IBM PC XT. Cela peut tre une galre ou bonne affaire, si on l'achte en toute connaissance de cause. Il s'agit d'aboSON.INTROu' '  ''SOUND.AI1yy*STARTSOUND#"3 B"3 FINDER.DATA&T.STARTSOUND.DOC' "   ztkjhl|}zzrq~|yzpkqxxpry~xz}xjjn|vldbho~tt|tsphr~|~jdm~yvrv|wvhbkxrhhom`TPX_ozzrt|xjkvqnhnv|pfjux{zzxxl``o{zrtz}{rh`^gyvruxv}v~~zpdXSZclx|zvrms|vpuw|~|phdX_kyztdgv|y|z|tb^^doxxzyxrzqfbjtwvsvxtv||trvxpjo{xvoovxrvzvrtyppz~|vopvzw}|xvt`NHHBD[yh@_|`4:V^oɴpj{ln|`eĠpXnh@7gpc̰\covnnh@?wĹشtt`ŲhLSYPE_tvȜ`NgtoĴ`9O`0/[v{ФT?gzִh?K@7NVcز`N{pq}Ѐ 7HH@Wخp4Kor[`_hOh[ШðD'oawj۰`3[ J@Kп PWؠHWhOYwհxZwjƼLO@OWH3{hw~lŠop3_@'6Kܴ`V|IJT%  ;ʐrkhRnxrwzȚ@?P B;oਉnd:7_hewq^O@7䰢hHOwд͐( K@_Ƞurlzo䰙װ0WPO{ڸt`x\s`7dHgk@W_Ȑ`ZZ@7wa{TԀҀ5,shYwPop_w ?ࠗh}ozϠ7HoˆkbfTwpUmP+_X_ؘpd̲̀$_КQoxpMr@A?ࠓwrgbԠĀ O@ ?ذtx`Ȩ΀2(?bux`o{t|ȘP,\0Wsĸrvyo̤ԈTda@7ohĢteunuҠpe`@(',7kдr{zనȀKz`0%KBO|tp{xintԠHWh43OkҺ}xihL,'::6k`ZfB5Lcswh_ϰD?07hB[{TFgh_eghufg|he~{zzoz{|pk|tly~x}norl`ev~~~~wihfw}zvoy~vptpup`Y]f{zxvhVU\dhjqpnqujajmyzxmr|}|rstw~~}lboxwxq{tlvvphNOY`dnx{hbwthuphbk~vhaht{~tv{|b[dmtyxwzxtir|vtmmttpfhany~}xh`YUOUkuxzzyzxrmq{{~{x|xpdhuvpp|zpmz}xjo|xH,?{jY_jL>SmX0,Kʺ|tjmzx|lmxdd}ǸzekºtlƬmt̼t`box|pbdo|yxln|lesv~}z|lTTXNS`\\VR[opvp`@0%>Q]bZcjbdR,KaXLDZ{vp^Voh1"?ot`jȠ`8/_8Oh\mڰ}fVg@$OzĢjK^@/gfUkܴzĀ8?g@;e~lȔ@3W03Vs{ѸvzH+?H*FexrqĠruD#@2?Rc`[t O@3?Wca̲lo|poh('ڨ@+OȰlfstsD+ܰP=`cȐwx{ZW̸@+D/Ȩ`_P#ఘrHO ȠH_$7ؠxmL@Oдrp8o5oЈh4xθwR`#kX _ĕzhwϨ@W`oh4_”sЀ(WH@ _@hgh+_`@2_hWȈgƠH?܀`EWp>orԴh?w͐{ǠtP[pRkİH7WphXWX[bnc|zpr~zrjmvpjrrdo|z~zz~|l\ivwfinylgt|l`e~reozrdZZcoyztr`MLSPFDSgxr{zw|~linfzzzyzpjfiv~x{~xrdX_hifgsz|`ZX_i{|~xjjb`hotzzrh`huquxxt|iZ]kyrztvrpf\i}x|qVK_vjdge`_kdbisrxxtvrdPNUU^j´ztyurhg}xbW[kzzxvt|rzp`groļvfghq|~~|lXD@BWotffqywyx|hTVfs}|tdoĺphhfmlh^PGLPgtoourpku{|xbTW[chkv|xvw|tpl`Z_m~vsqs{~r`PDHJJTuv`ZTTWs|zzxh^YUWi|fZbhj^b`ehf`RH@@DOo|vfai~ľtfgfiry~}l`RWm|zppul^^^eklndXWXL_zuzkjdXYew~p\[ZHGxHLW~ellƬpd`VIg}dXTqlVĀzh8W`P^dOoȨ~te``^cHoxЮh@:w̠zpopdg`W`0!?pP_¹Иjtdwɰ`mPNWİȌqXW{ļittw`^Por4?࢔R:$7Ѩd[^`jnxpa{dCXYoX(ȐjU`@?Ȣ`8/Os~xnvdkРhH@ OĀ\B23W¨xX_{uwX[~H?o۰tNfL_ЀDC_P@_hXsubshrX_|pTZD?rP>_xԦxda}shFChNT ?p@-_{{̤\eytf]@/(w`4;W_ĈtbZf°rs|glTЈ@;8'_t4K}hРxddfwy{괐JNZ GD%KoИyx{yȄP[` +VИ`+Knlx}xu{q`TfК`@8OԐb@7wror`cpFD7بj@6Ykx^e\[yxtpsАPPD O{਀DK^c̴hPWoxlkz|nw؈POP(Wؠ`8DRktpu°wprrИjqb O䰀@*EZjθxrszlc̐XeP?Vopv~Ȩbb{|thk`T[g`&30?oܰwpRSc̴s|XUoX.F@GuДX@5Gh\ou|qxruҰH272W|yzx}~~xr`D6=O_ƨiotr~pnpoxlmpt~h[rfrrlX@;WrxprtbL[{pfgn}tprpuzxx}v`RY\^gjwxZR^lqy|u~tptxldkpoqxllv}~vovrjn{xwljrheoxz~toz|xyzrrz~slqvzxv||tijnniijsvrqx~~~|xvxx||snosy||y|zy{xy|||xt|{wz|xtjdcjovy~}xtrs||z~~}~|{~|uwxxs{{|vw{x{|snls|z{{wvxvpvvmhXWfbSgp^iev{~roz|has{rdg\Rn¸XKNBBM_swzbgxd`\gРx\_T;GKep\@Jm}`_֠@'47bIZPVV@5_´ƸlhhZ\V_ucw0'2/~xwtFMt¯hkls~Рz;@M躲pL0?v|f\_g~|а`0'H?Ⱥd@=gwnbX^{rnsr|tL䰐o87\RghTRipxjrtxjhn|`Vgh{p(7)22Gphoa`Zot|qwrjbRV^v?k`\DJstysi\N^n}xrldbbX_|h`fwxz|rt|{{~vhqrhgwzvts|xll||jfk{twxz}{xss~}vrpx|tnl`]wzyxrhjt|tnldfjjr~x~r{~|||vv~xw~zphq{~|}zrtpv|zyw|~zxz|~{}|~|nppvy~}|yvplmr{~}vu~|rlrty}xsrtz~}z}xz~|xswy~~|z|~}zxxz~wzv~~~~xspixnstlmtlr~~vuzxzxzxtyv{}xvxxp{|xw~xs{zxhrvtr`BWZu@g`$)7_ikfrxn~zrkpPP'oqPRkȔjlTUTozt~zu`)?od_{`Mrpjĸ~m褐@?~`gP?`ToҼ¬tqx}|xlUȈg[uʺ0WwfZr~xp|xuX,U'kl{Д@/oȨy|P[|jt@WȔPg@_h_T ozXZintvjdX@gzĠx@$3wxkvp^kzrxr{|y~h0?hW`?x}ธ`0,_įxptsvszv~xTGⰀOp/otpH2WƬh`ps|tDG਀g`?uȘd@/_ønlz|z~yuvsHOpoPOkภh(oθ|~rznjPW`oP_nҼ` /ШxrwxkDoؤ`w@_mยd$7аz~tsz}p`7O;k{¬@(_rxtzut~~trXO`O`_~ഔhD7oƲ{wl~mz|vpIGO|䰤H)_IJvpntvXWX[`k~Ԥd87ΰttpmstPo@g@'wX2?ʘhrpvtrDwh8w@?𘎔T0_nkeov`?HOo~}h4/ͨdup^evjDOp8_`'`0?kxw`_wxt{@Wd@o 'q~vh87bxspUorDOh@_€/s{d8?x\po`gz~xxsp4X> W蘝P._hkurXwp`jAolP_P?r{𠏺P(?tȶgzv`otgsD_lgP/jk𰛼P0?t԰opjpshfol`?hZ_xcؖ`8'op`xlX]w`?po ?jj謯Ȁ@'_uܸpip~^otD[c{PpZwŠH#?bpb~lzp`ewt@hZ _TgВp4'`wРXemb`[`g`{ewЬp(?lШno`_HoR@pU{贗D(OVްpkhwl^upLXdoPgШh89p{Ȝl{xnb_zh[\m`pPwȠ`@GXװw{tgufwH`K WXVФΈ@:hgДlzd_UTgJ_¬`8?XӴpzrt~pnuvTohS0?XOЬȐB7op[Аnxwx}j`q{_d{hwHoɸpBO{bϸtusv~tdsto`o_@X?˜T?_h]Ęmtu|j^opwb`}_@Gȸp@O\wȠxvr{xlnw~pcZXw_P_̰Ȁ@Wjw~~thupeU`o_PWȬĀDWh_vvy{|hoyvPWuoPWh:ShwĈ`zlgzdwF\gwX_`6Oh`p]m~y`__~` `k`&KĄ{xd~~hPSz`O`_PXkH(WrrowpjtL_rR\RoT_r\HWĨpjhoR[rlgH_p8_@?`";ol|znypg¨`6W|P3Pˠ Kj\DWt{|PRuD?`{?ȨP?_֤h@,;ŷŮtVgs@OȞ`_h-p;i8]hwڠ@(7^oЈd_lopp4@WhO´@7_ WĽYj~t|d_|tBOOaТ€)7K@/oДvRoxdgP_Ā?lLWʬ@;gЪ\wdgZwЀ?Ȁdr̸`Aoxsz~||hcАhX_{l{xpnrXZp@?}`Wf}tjldw|~tvv||z|lfw´pTBSsqjp`ozvikw|xdrvxhouthftX@(/?_|`W]_szrrd^oxv~jo~p^o{ĶhRg}s{{q|zq{\@?[shibou{xxdisrTFYor{|xhkȨhbn`K`>I_tpz|~|tQopHOez~xrzrwnjfoyxzxfnjX[mzxx{~turnznotrvxv~xjghmrP8&-CWyxhhbkxzxnntz{yw~}zxdfs}zx||{~{z|zxzxtq|zyx||x|~zx||xtvvvxz|z{zrtzrlqt}z|z{~|{|~|ztttx|~|}}vtw~zuz~||{~~~|zz STARTSOUND Startup Sound Player, by Guy T. Rice STARTSOUND Version 1.2 documentation This program is a close relative of STARTPIC. What STARTSOUND does is it plays a digitized sound file when you boot your computer. You can create these digitized files with an MDIdeas SuperSonic Digitizer, or with a Future Sound digitizer, or even with a Macintosh! (Finally, a good use for a Mac.) Version 1.1 of this program fixes the bug that sometimes caused 1.0 to either hang or abort ,@ 0("pxA[A3x"5 Aۂ_= H"hH "hhH"""HHH "hh""""h""pH"k"$%*/SYSTEM/SYSTEM.SETUP/SOUND.A&*/SYSTEM/SYSTEM.SETUP/SOUND.A */SYSTEM/SYSTEM.SETUP/STARTSOUNDOĠԮ堠p&x7;3@xI5P\=` m}17FJSW[alv~p5pO*8QqSTARTSOUND.DOCSOUND.A.3B STARTSOUND!()*+,-. early when playing certain sound files. It should be noted that this was caused by a bug in the Sound Manager on my IIgs, which has not yet been updated to the new ROMs. I do not know if this bug exists on the new ROMs as well. At any rate, version 1.1 works with both ROMs equally well. Version 1.2 of this program allows for multiple startup sound files, named SOUND.A, SOUND.B, etc. SS.CONFIG has been modified so that you can set the playback rate of these files separately. How to set it up: First of all, there's a program called STARTSOUND. This program must be copied into your SYSTEM.SETUP directory, which is inside your SYSTEM folder. If you are using STARTPIC, you will probably want to make STARTSOUND come after STARTPIC, so that the sound comes out after you're already displaying the picture. It is best to make STARTPIC the first file in your SYSTEM.SETUP directory, and make STARTSOUND the second. Secondly, you will need a digitized sound file. Put this into your SYSTEM.SETUP directory, and rename it "SOUND.A". The one that comes with this program is my voice, introducing my program. You'll probably use it once, then decide you don't want to listen to me for the rest of your life. I'll be uploading some better sound files to GEnie soon. Whenever you add a new sound file, you must run SS.CONFIG to make it useable by STARTSOUND. You have have multiple sound files, named SOUND.A, SOUND.B, SOUND.C, etc. Finally, there is a program called SS.CONFIG. You can put that program anywhere you want, it doesn't matter. When you change sound files, you will have to run this program. It modifies the playback rate of that file. If a file is digitized at a different rate, then it must be played back at a different rate. The program will suggest some rates for you. A note on digitizing for STARTSOUND: Since loading sound files takes time, I would suggest digitizing sounds at the slowest possible rate, so that they take up the least amount of space and can be loaded quickly. The quality of the sound goes down, however, when you digitize slowly. Its a tradeoff, but I think it's best to speed up the boot process by slowing down the digitizing rate. If you are using the MDIdeas SuperSonic Digitizer, and the new Sound Edit program, go into the "Preferances" section before digitizing. Set the Playback rate to 40, and the Digitizing rate to 34. Then click "Okay". This will result in the most compact sound files. Oh, also, don't pack the resulting sound file when saving it. Leave it unpacked. And make sure STARTSOUND's playback rate is set at 200. (Note, the playback rate used by STARTSOUND is on a different scale than that of Sound Edit. To be specific, the STARTSOUND playback rate is the parameter passed to the Sound Manager toolset as playback rate.) Run SS.CONFIG to set this. If you are using a Future Sound board, set your Sampling rate at 15125, and when you run SS.CONFIG, set the file's playback rate for 300. Macintosh and other sound files: When playing back files digitized on a Macintosh, a playback rate of 200 or 400 usually works best. You'll have to experiment a little with each file to be sure. Finally, if you figure out how to use sound files from any place I haven't mentioned, let me know. I don't know if any other computers use the same kind of files as Apple IIgs and Macintosh, but I'd love to hear from anyone who does. My GEnie mail address is GUYRICE. GTR ICONSu' '  '-GSINFOS.ICONS1 L/,FINDER.ICONS:,U/FINDER.DATAe>/V */GSINFOS/GSinfosGSINFOSSX(ffffoffffff02345678ffffffffzzwwwzzzzwzzzzww  /GS.INFOS/GSinfosGS.INFOSFU]U_U]Q_U]U_U]U_U]U_U]U_UUUUUUU_UUUUUUU_UUUUUUU_U\U_U\UU_U\UU_U\UU_\U_""fofooo""""""oo""oo"/oooo""""""fofo *fffff`fffff`fffff`fffa`HDDDDAAD@DDDHADffHA`ffHFf`ffHff`ffFff`fffff` fffnfffffFDDfDfFfofff9;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd*foooofoooofwwppwpwwpwwpwwwp_PUU_PUU_PU  ~*wwppwpwwpwwpwwwp *       D3333330  >*""" " """"  ??*Pffoooofooofooofofffoo /DD/WORKS/APPLEWORKS.SYSTEMEM*` `/DD/WORKS/APPLEWORKS.SYSTEMEM* `      ?`30?330?330/APPLEWORKS/APLWORKS.SYSTEMEM*` `00*/BASIC.LAUNCHERUNCHERNCHER*nnofffDDOUU OO@* *@?@@@@@@ 0?? CLIPBOARDU_UU__UU__UU_UwwwU^^~      *FDDoODDoDdDDODODDDODFFDFDooFOfbfbfbfbfffbfbfbfbfoff/ D`ODO*"""/$D@/$@/DDDD@/DDD@/DD@/DD$@/DD$@/DD$@/DD$@/DDD$@/$D@$@// /""""/ OO@@@@@@@@@@@@*  jjjj`jjjj`  f~1*l  f` fD 3300330* f`fD  340330q*9  9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999  ^*DDDDDD3D4DD4CCD4CD4C@4CDCDCD<4CDCDCD4CDCDCDCDC@CDCDCDCDC@CDCDCDCDC@3DCDCDCDC@4CDCDCD44D4CD4D<CD4CD4C@44CDCD4DDDDDL /RJ/DESSIN/GS.PAINT*     3?DODLDDDODODDDDD@ 3DDO@/RJ/DESSIN/GS.PAINT*DDD@OODDOOODDDOffffoffkoff` aoo/RJ/DESSIN/DELUXE.II*      ffoDDDOUUU_ P2MODEM\lD wwwtGwAAOODDDD IMAGEWRITER UUUUUUUUUPUUUUUUUUU^UUUUUUUUU^UUUUUUUUUPUUUUUUUUU^fn  LASERWRITERDfnDN  SCSI.DRIVER ODDDDO DDDD DDDD DDDD OO l UNIDISK3.5c DNf  l APPLEDISK3.5c L ̬f ~1 APPLEDISK5.25l  f` fD 3300330CONSOLE.DRIVERݍ؎ffmDDD̬  BW.IMAGEWRR fn  APPLETALK *,?f?3333333333???????????fc?3??f33fD  dFONTS*3333?0DDC3DD34D@DDDDDDDDDDDDDDDDDDDDDDDDNDD@DDDDDDDD@DDDDDNDDD@DDDDDDDD@DDDDNDD@DDDDDDDD@DDDDND@@DDDDDDDD FVS.DRAWffofmfffffofofffffofoffffffffffo  DELUXE.II~fff``f`ffn`f`ffw~f`ff`vv`ffnvff`fffqwwf`ff`wwwp``nw`fffffnflqpnffffwwwwwnfffffgwwcff`wwwwfffwwwwqfffwwwn wwwwp wwww w  GS.PAINTDDODDOȈDȈDODDL3:ʪ̪̬ʪʪwfwfUU\ p /GS.INFOS/GSinfosGS.INFOSFU]U_U]Q_U]U_U]U_U]U_U]U_UUUUUUU_UUUUUUU_UUUUUUU_U\U_U\UU_U\UU_U\UU_\U_""fofooo""""""oo""oo"/oooo""""""fofo *~ ????  ??? 33  333:33:33:𪣪33: * 0tr FINDER.ICONSH GSINFOS.ICONSIMPRIMANTEu' '  '+IMAGEWRYTER2` f-PARALEPS.8133b fSTART.GS.OS+ v4 fFINDER.DATAɜ>  fBASIC.LAUNCHER /fBASIC.SYSTEM( fArt.Domaine public Cheappaint de Earl Gehr Font Edit 1.6 de Gerhard Kaess Start Sound de Guy T. Rice Cheappaint ---------- C'est un logiciel de dessin qui ncessite 768k de mmoire sur votre GS Il est de trs bonne facture. Un point fort, la faon dont on peut modifier les fontes, 0n voit le rsultat sur l'cran, avant l'utilisation. Un point faible, la fonction de remplissage d'une zone qui demArt.deskeditor Un programme en TML Pascal avec son source DESK.EDITOR Ecrit par Vincent et Bernard Tomeno Changez la couleur du fond d'cran de votre finder en dessinant votre propre pattern (pav de base du graphisme). Pour y accder, ouvrir le dossier Programmes, puis le sous-dossier Desk.Editor. Sous finder, le lancer par un double-clic sur l'icne Deskedird de la carte ancienne technologie, Applied a modifi son modle. Deuximement, elle est livre sans RAM, elle est donc ce stade inutilisable. Les RAM sont des RAM avec les pattes du mme ct, c'est assez difficile trouver et ce n'est pas donn, il vaut mieux se renseigner avant de commander la carte. Pour finir, le S.A.V ne peut se faire que par retour aux Etats-Unis et il faut en plus disposer du kit d'installation IIGS qui vaut $40 et du MS/DOS adapt, MS/DOS dont Brejoux l'exclusivit et aprs un contact tlphonique, il s'avre que cette socit, tant l'importateur exclusif Applied, ne voit pas cette opration d'un trs bon oeil. La PC Transporter est une bonne carte , mais ncessite un bon suivi. Il y a toujours le problme avec GS/OS. Il est parfois plus intelligent de payer le prix du service rendu. C'est la diffrence entre le Kit et le Cl en mains. Les Logiciels ------------- Du ct des softs de jeu, une nouveaut majeure: -ARKANOID, un super casse-briques de Taito, rplique parfaiglande plusieurs oprations sur une figure complexe. Il est trs bien document. Ce logiciel est un shareware. Dans les 15 jours, si vous le gardez, envoyez $10 son auteur. Un billet vert dans une lettre avec vos coordonnes, a marche! Earl Gehr 1135A Tonkey Ave Charleston, SC 29404 U.S.A. Pour y accder, sous finder, ouvrez le sous-dossier Cheappaint dans le dossier Programmes et double-clic sur l'icne Cheappnt.Sys16. N'oubliez pas de charger les imageste du jeu de caf. Le meilleur jeu depuis LODE RUNNER, 33 tableaux superbes,des heures de plaisir, mettre dans sa ludothque d'urgence. Vivement un diteur de tableaux pour pouvoir crer son propre jeu. -GOLD RUSH , un jeu d'aventure qui vous emmne avec Jerrod, de Brooklyn en Californie, pour une longue promenade travers les USA. Il est dit par Sierra on line. -DUNGEON MASTER, un jeu d'aventure o il faut explorer un donjon, vritable ddale dans lequel survivre n'est pas vident, graphisme du labyrinthe trs raliste et son stro, dit parFTL. -IMPOSSIBLE MISSION II, Vous tes un dtective du 25 me sicle et vous explorez une forteresse mortelle o il faut dcouvrir le code, aventure et arcade, reprise avec des graphismes GS du jeu pour Apple II, dit par Epyx. Du ct des softs professionnels: - MERLIN 816+ La dernire version du trs bon assembleur pour II GS vient de sortir. Il est aussi bien conu que Prosel, normal, Glen Bredon en est un des auteurs et un point majeur, il est fait pour GS/OS. Il assemble 40 000 lignes par minute. Son cran d'dition en mode texte est trs performant. Cet assembleur qui a suivi toutes les volutions de la famille Apple II a toujours su rester dans le peloton de tte et est mme considr comme le meilleur par beaucoup de programmeurs. Son rapport qualit prix est excellent. Il est dit par Roger Wagner Publishing. - CLARIS annonce une nouvelle version d'Appleworks GS. Cette version est une rvision de la 1.0. Le driver d'imprimante a t refait, il serait de 25 45% plus rapide. Plusieurs problmes lis l'impression en mode Draft ont t rsolus, comme la capacit de sortir en cours d'impression. On peut importer des fichiers graphiques de 32K sans tre oblig de les fractionner. Cet upgrade contient aussi un test de RAM, certains plantages du logiciel tant dus la prsence de RAM douteuses sur les cartes d'extension. Cette version devrait tre disponible la mi-mai. SICOB ----- Invits par le Team Apple II, nous avons pass une journe au Sicob, pour parler un peu de nous et rencontrer M. Brsard, M. Ducamp et M. Schwartz. Nous esprions rencontrer M. Barlatier pour lui communiquer notre intention de devenir un User Group, mais nous ne l'avons pas vu. L'arrive sur le stand commena plutt mal. Un comptoir offrait au visiteur tous les prospectus de la gamme Mac, mais point ceux de l'Apple IIGS. Une des hotesses, devant mon tonnement, m'affirma que la gamme II avait t arrte l'anne dernire. Puis, devant mon courroux partit aux nouvelles. Elle revint quelques instants plus tard et m'expliqua qu'elle n'tait pas de la maison, que le II GS existait toujours, mais que le SICOB c'tait le salon des professionnels, que ce n'tait pas le crneau de cette machine... En passant devant chez Commodore, j'ai vu des Amiga 500, ils ont d se tromper de salon! Pour parachever la prise de contact, elle m'affirma qu'il n'y avait pas de GS prsent au SICOB. Heureusement, j'aperus M. Brsard. Sh-ART.TRANSWARPv"6@,ART.Y.KOENIG+ART.ERREURS33*ART.PASCAL"A;;+ART.ASTUCES5Art.Transwarp GS ---------------- Comme le chantait Dutronc, "J'ai mis un tigre dans mon moteur afin de mieux avancer". Au SICOB, contre un chque dpassant peine les 3000F, membre du Club oblige, j'ai pu repartir une Transwarp GS sous le bras. Cela n'a pas du tout acclr mon retour en voiture vers la capitale. Il faudra suggrer Applied Engineering de fabriquer une Transwarp priphrique. La dmonstration sur le stand Apple m'avait immdiatement sduit et j'avais hate de me retrouver seul uwxyz{|}avec la bte. Aprs un temps de trajet inversement proportionnel la longueur du parcours, j'arrivai enfin. Le temps d'enfiler la combinaison, de rcuprer les outils ( Un petit tournevis plat ou mieux, une pince extraire les grands circuits) et l'opration allait enfin avoir lieu. Dballage --------- La carte acclratrice Tranwarp GS est au dballage plutot imposante. Elle est biseaute sur l'avant, cela doit tre fait pour les Amricains qui ont mis une carte de GS dans leur IIe. Sur le circuit, on voit beaucoup de composants de type flat pack dont le 665816. Un dtail laisse penser qu'elle est prvue pour utiliser des versions du processeur encore plus rapides et que la mise niveau sera simple. Le 65816, le quartz, la ROM et la mmoire associe sont installes sur des supports. Le cable qui va la relier au GS est dj enfich dans son connecteur. Elle est accompagne de deux manuels, le manuel amricain et une traduction ralise par Brjoux. Malgr mon extrme impatience, j'ai pris le temps de lire l'essentiel : le chapitre " Let's go". Installation ------------ Les prcautions habituelles sont prendre: S'assurer que sa trs chre machine n'est pas sous tension. Ne pas ouvrir son GS avec un pied de biche, mais avec dlicatesse. Dcharger toute l'lectricit statique en frottant les doigts sur le bloc d'alimentation. L'installation peut commencer. Il faut d'abord enlever l'ancien moteur, le 65816 d'origine, et le ranger soigneusement. Ensuite, on enfile le connecteur de la carte sa place. Cette opration est la plus dlicate, Il faut faire bien attention de ne pas plier une broche. Pour terminer, on enfonce la carte dans le connecteur n3. Un dernier regard pour vrifier, fermeture du capot, contact! Premires impressions --------------------- Je suis un utilisateur inconditionnel de Prosel de G.Bredon, la lenteur du Finder m'a toujours exaspr, surtout l'option qui ferme toutes les fenetres quand on en a un nombre lev sur le bureau. Systme 3.1 dans le lecteur (et oui! J'ai eu la mauvaise ide de commander GS/OS mon concessionnaire habituel), allumage. Un effet sonore accompagn de l'apparition multicolore des mots Transwarp GS m'informe immdiatement de la prsence de la carte. Cette animation peut tre supprime. Le systme se charge. Au premier abord,le chargement ne semble pas plus rapide. Ce n'est pas le domaine d'action de la Transwarp. Chargement termin, un petit tour dans le Control Panel par Control-Pomme-Esc. Un nouveau CDA s'y trouve implant: Transwarp GS. Ce CDA install par la carte elle-mme permet le rglage de la vitesse 1MHz, 2,6MHz ou 7 MHz, la suppression de l'animation d'entre, la mise en place d'une option de scurit vis vis des interruptions quand on est sous AppleTalk ou un priphrique chatouilleux (Sur mon GS, si cette option est dsactive, j'ai un chuintement dans le haut parleur semblable au son que l'on entend lorsque l'on est dans un avion.), les tests du bon fonctionnement de celle-ci et pour finir le "A Propos de Transwarp GS". Aprs un test rapide retour au bureau. Alors l, c'est le choc, ce n'est plus la mme machine, les fentres s'ouvrent et se ferment toute vitesse, les menus se droulent instantanment. C'est aussi rapide que sur un Mac II couleur. L'acclration est vraiment manifeste. Pour en avoir le coeur net quelques chronomtrages s'imposent. Comparaison ------------ En vitesse normale (2,6 MHz) En vitesse rapide (7 MHz) ---------------------------------------b,;main|k?LRX >DP4L H hL L L Ly KHH " " ")H ""+Ly kHh8Hk N K H T L KHHHH #"+L Lb KHHHڢ ""+Lb L L Lb Lb Kxwu  ;8) liH;)  H+0H~{{{qqq+0h;i+Lb L Ku  ;8Q)) liH;)  H+0H{{{"+0h;i+L8 k  L 8   `"H"hH)[["h`;i;i;ix ;i b  ;i K   hhhh6  hhh" hhhk(KX d+FOK The Print Manager cannot find a parallel card with which it can work. _6u- 7?G The Print Manager cannot find a parallel card with which it can work. ?L RX > D$P(,40{{{qqqK{M{O{[iumF=@FJMPSVY^ejouy >> Les Tests <<< Dans la srie de tests que j'ai pu effectue, il y en a un qui ne montre aucune acclration, c'est celui des accs au SmartPort, aux drives en gnral. Que ce soit par des tests persos ou par exemple en copiant un disk avec Digicopy, il n'y a aucune acclration. Avec Diversi-Cache, l'accs des blocs qui se trouvent dans la mmoire cache est 25% plus rapide, ce qui est faible. Une copie avec Copy II+ est 7% plus rapide, ce qui l'est encore plus. Une explication cela ? Une, le SmartPort shunte trs rapidement les interruptions de plus, on manipule des switches en $C000-$C0FF, mais c'est un peu dommage. Esprons qu'Applied livrera un driver AppleDisk 3.5 qui tiennent compte de la Transwarp, GS/OS permet de faire tourner les priphriques 4 vitesses diffrentes: 1MHz, 2,5MHz, >2,5MHz et n'importe quelle vitesse, alors, pourquoi pas. Maintenant les autres tests, si vous avez t sur Buster, vous les connaissez. Une boucle For I = 1 to 1.000.000: Next I (plus exactement son quivalent en assembleur) s'excute en 70me de seconde, presque 84.000.000 d'itrations la minute. Les oprations sur les mmoires sont rapides, trs rapides. Un petit mot personnel ce cher petit Al!. Si vous ne le connaissez pas,"f\< IMAGEWRYTER PARALEPS.8133 disons que Al! est quelqu'un de jeune, trs jeune, qui a un Apple II+ et un Mac II et qui fantasme un max sur les processeurs Motorola sous prtexte qu'ils ont t choisis par Apple. Plutt que de me parler de dbits thoriques genre "le 68020 dplace 5Mo/sec, vu le bus Apple, 3,6Mo", qu'il essaie comme moi d'afficher x images sur son cran dans un temps dtermin ou le contraire et qu'il me communique le rsultat, plutt de nous dire qu'il l'a fait mais qu'il ne veut pas nous le dire. Les dbits thoriques tout le monde connat, genre la SCSI qui transfre 4Mo/sec, conception Apple, on chute 1,2Mo, conception Mac, on tombe 937Ko/sec, en pratique et pour des tas de raisons, la vitesse de transfert effective est trs loin de ce chiffre. Certes, c'est un peu diffrent avec un microprocesseur mais il y existe aussi des contraintes, synchronisation avec les co-processeurs (arithmtiques...), interruptions, taches de fond, caches... Maintenant les chiffres, avec les instructions de dplacement de blocs (l encore Al!, le 65816 ne dplace pas un bloc en UNE instruction, ouvre une fois un manuel avant de sortir ce genre de btises), le GS dplace 550Ko par seconde. En mode adressage index, dplacer des blocs mmoires d'un banc un autre se fait 440Ko/sec. On peut crire la mme valeur dans 16 bancs mmoire (512Ko) en moins d'une seconde. J'ai laiss sur Buster un tableau comparatif des accs aux mmoires entre divers processeurs (68000, 68030, 80386, 8086 et 65816). Toujours pour Al! qui n'y a rien compris (c'est ce qu'il m'a dit), je vais rpter en employant les mots les plus simples, de faon ce qu'il puisse comprendre: A 8 MHZ, le 68000 a un 'access time' aux mmoires de 200ns (nanosecondes), la mme frquence, le 65816 accde aux mmoires 70ns. Donc, si je veux charger dans mes registres la suite hexadcimale HC1CC HA0C1 HCCA0, lorsque le vnrable processeur 68000 aura charg $C1CC, le 65816 aura 'presque' termin de charger $CCA0 dans un de ses registres. Voil Al! j'spre que tu as compris, je ne vais pas r-expliquer les mthodes 'big-endian'/'little-endian', c'tait anecdotique mais la citation d'Elsinger semble etre pure vrit, de plus, chaque constructeur opre selon sa clientle (je plaisante...). J'ai indiqu plus haut que la Transwarp acclrait toute la RAM, cela veut dire aussi les bancs $E0,$E1. Pour des routines crites en assembleur et selon que le code se trouve en mmoire rapide/lente et selon le banc de donnes rapide ou lent, les coefficients d'acclration sont les suivants: ------------------------------------------------------------------------ !_____________________!_Donnes_en__fast_RAM'_!__Donnes_en_'slow_RAM'_! !---------------------!-----------------------!------------------------! !__Code en 'fast RAM'_!_________2,70__________!________3,60____________! !__Code en 'slow RAM'_!______Pas test________!________6,75____________! !----------------------------------------------------------------------! Ce qui veut dire que certaines routines de Thexder vont tourner 3,6 fois plus vite puisque le code est en banc $01,02 et qu'il adresse l'cran. En utilisation, l'acclration est vraiment sensible, surtout pour les tools (cf. plus haut). J'ai fait un test de compilation avec l'APW (accs disques, nombreux fichiers sources et link), la compilation s'est rvle deux fois plus rapide. C'est peu prs le coefficient d'acclration que l'on note pour tous les programmes. Il est certain que du fait du cache de 8ko, les programmes crits en assembleur (qui est le code le plus compact qui soit), ont un net avantage sur ceux crits en C ou en Pascal. Je le disais sur le fora Programmation de Buster et j'ai eu droit un certain nombres de remarques pas vraiment intelligentes, maintenant, je me rgale. (NDLR: sectarisme quand tu nous tiens!) Cette carte a t conue pour permettre lorsque ce sera possible, de changer le processeur, son quartz, la ram cache. Applied tudie (cela veut dire qu'aucun prototype n'est en route), une carte 10MHz, d'ores et dj, le Mac SE ne peut pas soutenir la comparaison, que celui qui prtend le contraire crive au club les rsultats de ses tests, on va rire. Certes, la bibliothque d'applications du SE peut le sauver, il n'empeche que MultiFinder sur SE et MultiFinder ou Switcher sur GS, il n'y a pas photo, et c'est soit disant le SE qui est 'professionnel'. Deux choses peuvent empcher les possesseurs de GS de se procurer cette carte: 1/ Le prix. 399$ chez Applied, 2900F H.T., peu prs 3400TTC chez Brjoux. En valeur absolue c'est cher. Mais compte tenu des performances apportes, de la possibilit de l'acclrer, je crois que a les vaut. En tous cas, personne aprs avoir utilis la Transwarp n'acceptera d'utiliser un GS 2,5MHz, je pense que c'est un signe qui prouve la qualit de la carte. Si les membres du club font un achat group, pourquoi ne pas demander une rduc Brjoux ? (NDLR: Tout membre droit 10%) 2/ La sortie du GS+. C'est un point d'interrogation. GS/OS est prvue pour les cartes acclratrices mais aussi pour une U.C. plus rapide. Techniquement le GS+ est peu prs au point. Je m'avance, mais je crois savoir qu'il ne va qu' 6MHz mais les entres/sorties se font aussi 6MHz. Apple n'a pas de politique clairement dfinie quant aux ractions opposer aux fabricants de cartes acclratrices. En revanche, Sculley n'avait annonc le GS+ en septembre 88 que pour dans un an et demi mais il y a pression des diteurs pour acclrer la sortie d'une machine familiale puissante avant la fin de l'anne et ce ne peut-tre le Mac SE ou +. Mais ce qui est sr, c'est qu'Apple refuse de prendre le GS au srieux, c'est dire en tant que machine professionnelle. Ce n'est pas le lieu de parler d'expriences personnelles mais quand on refuse des produits systmes pas parce qu'ils sont mauvais (au contraire) mais parce que: "Ils ne correspondent pas la philosophie que nous avons de l'Apple II GS", il y quelque chose de pourri au royaume de la Pomme. A ce propos, il y a un mode 400 lignes sur l'Apple II GS, deux couleurs. Simplement Quickdraw II qui est thoriquement indpendant de ce genre de choses ne le gre pas. Alors plutt que de voir fleurir des applications performantes mais qui n'utilisent pas Quickdraw (et pour cause), Apple verrouille l'accs ce mode vido. En conclusion, si financirement c'est un peu juste pour vous (il n'est pas question de s'endetter pour une carte), wait and see. En revanche, si vous pouvez le faire, achetez cette carte, vous ne le regretterez pas. on IIGS avait coll sur le bas de son capot en lettres noires: BJX, il tait le seul parmi tous les Mac. D'ailleurs, certains Macintoshiens l'ont pris pour un prototype Mac, esprit Apple II, o es-tu ? Il faut dire que ce IIGS dcoiffait (Transwarp, GSRAM plus, RAM Keeper), autant de mmoire et aussi rapide l'affichage qu'un Mac II couleur. Nous avons assist aux dmonstrations d'Appleworks GS et d'hyperstudio, l'hypercard de l'Apple II. Nous esprons pouvoir en faire l'essai pour GS Infos 4i explique son faible cot. Mais elle est donc inutilisable, si on ne possde pas le sytme de Microsoft qui n'est vendu qu'avec la carte de Microsoft. Cherchez l'erreur! EXTENSION RAM ------------- M.Richard nous envoie la documentation concernant le dcodage des adresses de la RAM d'extension, lors du passage de boitiers 256K au 1 Mo. Il aimerait savoir si quelqu'un a tent l'aventure, voire mme mis le systme d'exploitation en ROM. Sp Art.Pascal Deuxime partie de l'initiation au TML Pascal ___________________________________________________________________________________ Chapitre 3 : Le tour du propritaire ___________________________________________________________________________________ 1) Structure de blocs --------------------- Un programme Pascal commence par Program, suivi du nom et se termine par End. Aprs les dclarations, il est subdivis en blocs dlimits par Pverez ces deux fichiers dans le sous-dossier Son.Intro du dossier Utilitaires, ainsi que la documentation sous le nom Startsound.doc. Art.Astuces GS/OS et le Driver 5,25 ----------------------- Inutile d'avoir 2 systmes d'exploitation si on ne veut pas entendre le bruit du 5,25 lors du Scan. Il suffit, au lieu d'enlever le driver de le dsactiver. l'aide du Finder ou d'un ZAP. Pour vrifier, sous finder, passer par File Infos: Aux Type Actif = $010E Aux Type Inactif = $810E Voir la SHGR partir du Basic ------------------------------ J'avais publi dans un numro de Pom's une routine en Assembleur ( MOVE.C ) destine transfrer  ,@ ~global ;[ ):  +;ik;8 ;[     : p%r% ie H  HH H"2+ H) H1 H"& :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  )en bank E1 une image SHGR non compacte ( 65 blocs ) aprs qu'elle ait t "bloade" en $1000 . Dans le numro d'avril 89 de la revue A + , Terry Young nous en propose une plus simple et plus courte que l'on peut appeler par un Call 768 . Visionner la page SHGR s'effectue ensuite par un POKE 49193 , 193 et on revient en cran-texte par un POKE 49193 , 1 Voici cette routine : 300: 18 CLC 301: FB XCE 302: C2 10 REP #10 304: A2 00 00 LDX 0000 307: BF 00 10 00 LDA 001000,X 30B: 9F 00 20 E1 STA E12000,X 30F: E8 INX 310: E0 00 80 CPX #8000 313: D0 F2 BNE 0307 315: 38 SEC 316: FB XCE 317: 60 RTS B.Tomeno avril 89 Changer la vitesse du GS en Basic --------------------------------- Vitesse lente : POKE 49206 , PEEK (49206) -(PEEK(49206)>127) * 128 Vitesse rapide : POKE 49206 , PEEK (49206)+(PEEK(49206)<128)*128 On se sert du Bit 7 du softswitch $C036 truction BIT. On n'aurait pu le faire avec LDA ou STA. 00/030C: A9 D0 LDA D0 00/030E: 20 A8 FC JSR FCA8 On charge la valeur $D0 et on fait un saut la routine en $FCA8. C'est la routine de temporisation WAIT. WAIT utilise la valeur pralablement charge dans l'accumulateur, dans notre cas $D0 par l'instruction LDA. Cette valeur agit sur la longueur de la temporisation. Modifiez la pour voir. 00/0311: 2C 55 C0 BIT C055 Deuxime page 00/031rocedure..end ou Function...end. Une variable dclare en dehors d'un bloc est valable pour tous les blocs o elle apparat, on dit d'elle que c'est une variable globale. Une variable dclare l'intrieur d'un bloc n'a d'existence qu' l'intrieur de ce bloc, c'est une variable locale. 2) Dclarations --------------- Ces instructions servent dcrire les donnes du programme que les inst- tructions devront manipuler. En Pascal, toute donne doit tre repre par un nom qui est fourni en tte du programme ou du bloc. Ces donnes suivant leur nature sont dclares dans des groupes particuliers. 2.1) Dclaration des units --------------------------- Pour communiquer avec l'environnement Apple IIGS, le TML pascal possde des units, des programmes dj existants, que l'on peut utiliser en les incor- porant par leur nom dans le groupe uses. Exemple : uses Console IO; installera un environnement familier aux utilisateurs du Pascal UCSD uses QDIntf; permettra l'utilisation du graphique Super Haute Rsolution On peut aussi crire et utiliser ses propres units. 2.2) Dclaration des constantes ------------------------------- Aprs l'entte const, on dclarera les constantes, c'est dire les donnes invariables du programme. Exemple : const Pi= 3,14159265 2.3) Dclaration des variables ------------------------------- Aprs l'entte var, on dclarera les variables. Une variable est un nom symbolique reprsentant la zone mmoire ou est stocke la donne lui correspondant. Le contenu de cette zone peut changer, mais le nom reste le mme. En Pascal TML, on a un nombre important de variables diffrente, dclares sous l'entte var ou type suivant leurs natures. 2.3.1) Les variables scalaires ------------------------------ Les principales sont de type scalaire (ordinal) : numrique, texte, boolen ou rel. Une variable de type numrique est reprsent par les nombres entiers, dcimaux ou hexadcimaux : Integer ( valeurs comprises entre + ou - 32767), Longint (valeurs sur 32 bits ou 2 147 483 647) Une variable de type texte ou Char reprsente toute donne code sur un octet. Elle est surtout utilise pour les caractres ASCII. Une variable de type boolen ou Boolean concerne les variables logiques. Elle peut tre vraie, True, ou fausse, False. C'est en fait un type numr prdfini, True = 1 et False = 0 Une variable de type rel ou Real permet d'utiliser des valeurs de grande dimension. Le nombre est rang dans la mmoire sous forme d'une mantisse et d'un exposant. En TML Pascal on a 4 types de rels: Single, sur 4 bytes de 1,4 E-45 3,4 E38 Double, sur 8 bytes de 5 E-324 1,7 E308 Real ou Extended, sur 10 bytes de 1,9 E-4951 1,1 E4932 Comp comprend seulement les valeurs entires de -2^63+1 2^63-1 Exemple: var done: boolean; i: integer; r: real; caractre: char; 2.3.2) Les variables de type structur. --------------------------------------- On peut partir de types simples faire des types plus complexes. Un bon exemple est le type String qui dfinit une chane de caractres de 1 255. Exemple: var Maphrase : str255 Il existe le type tableau ou Array, c'est un groupe de variables auxquelles on accde par un identificateur du tableau et un index. Un lment d'un tableau peut aussi tre un tableau. La taille d'un tableau en TML est fixe 32 767 octets. Exemple: valeur: array [ 1..100] of real Il y a aussi le type Record qui permet de grouper des lments de types diffrents. Exemple type datenaissance = record jour:1..31 mois:1..12 anne:integer end Il existe d'autres types comme File, Set, Pointer. 2.3.3) Les variables de type numr ------------------------------------ Ce type permet en faisant une numration de dfinir les diffrentes valeurs que peut prendre une variable. On s'en sert essentiellement pour les index de tableaux ou avec l'instruction Case. La valeur ordinale du premier lment est toujours 0. Exemple : Type jour = ( lundi,mardi,mercredi,jeudi,vendredi,samedi,dimanche) 2.3.4) Les variables de type intervalle --------------------------------------- Permet de contrler qu'une variable ne sort pas d'une certaine limite en dfinissant un sous-ensemble. Exemple : Type semaine = lundi...dimanche Cette armada de types de variables ne doit pas vous inquiter. Nous y reviendrons, avec de plus amples explications et de plus cette liste est loin d'tre complte. 2.5) Dclaration d'tiquettes ----------------------------- Il existe aussi Goto en Pascal qu'il est fortement dconseill d'utiliser. l'tiquette laquelle Pascal renvoie par Goto est repre par un nombre. 3) Un peu de grammaire ---------------------- 3.1) Caractres et mots rservs -------------------------------- Tous les caractres lettres et chiffres sont utilisables. Pour donner un nom aux programmes, procdures, fonctions, constantes, variables types, units et champs des enregistrements ( fields of record), on ne doit pas l' intrieur de celui-ci, utiliser l'espace ou les caractres rservs du langage. Ce nom ne doit pas tre non plus un des mots rservs. Il n'est pas fait de distinction entre les majuscules et les minuscules. On doit crer des noms voquant bien ce qu'ils reprsentent, "Fairejeu" et mieux que "zfxnbbefvu", surtout qu'en Pascal TML, le compi- lateur fait la diffrence entre deux noms en prenant en compte les 255 premiers carac- tres. Les caractres spciaux sont les oprateurs et les signes de ponctuation: + - * / = < > [ ] . , ( ) : ; ^ @ { } Ils sont parfois group par d. Tout au long de la journe, nous avons rencontr de nombreux irrductibles, ceux qui ne l'avaient pas encore ont pu repartir avec le guide Apple II. L'esprit n'est pas mort, il couve encore, rallumons le et faisons en sorte que le nombre de IIGS soit plus important lors d'Apple Expo. Cela ne devrait pas tre trop difficile. Belfort: 3 juin 1989 -------------------- Un haut lieu de l'Apple II GS, deuxime dition, un week-end o il ne faudra pas chercher le GS parmi les Macs. Inscription obligatoire,auprs de KAM ,sur Minitel code 3614 BUSTER, crire dans sa Bote Aux Lettres, elles seront vite closes. Les membres de notre bureau ne pourront pas y aller. Si vous vous y rendez, contactez-nous, vous pourrez nous reprsenter. J'espre que cette information ne vous parviendra pas trop tard. AMPERSAND N 14 ===================== LA REVUE AMPERSAND NOUS COMMUNIQUE LE SOMMAIRE DE SON PROCHAIN NUMERO Section GS - Essais logiciels : Comptabilit Brjoux,LabelShop (fonctionnent galement sur 65C02)... - NDA : sauvegarde automatique de documents. Section Mac - ClavEdit : personnalisation du clavier - Les Ressources - Rubrique HyperCard - Programmer en PostScript. - DOSSIER : Les VIRUS sur MACINTOSH : description, prophylaxie et traitements ! Gnral - Hard : MIDI-BOX, UNE INTERFACE MIDI A REALISER POUR GS (et MAC) - Sommaire des Technical Notes Apple II et IIGS diffuses par Ampersand - Comment lire les disks Mac sur Apple II ? - Partitionner ses disquettes 800 K sous Pascal... - Secialistes du hard contactez nous. eux: <> <= >= := .. (* *) Les mots rservs: and array begin body case const div do downto else end file for function goto if implementation in interface label mod not of or otherwise packed procedure program record repeat set string then to type unit until uses var while with 3.2) ponctuation et mise en page -------------------------------- Pour sparer les instructions on utilise le point-virgule. Toutes les instructions pourraient donc se suivre les unes derrire les autres, mais pour rendre le program bien lisible, il est conseill de soigner sa mise en page, en allant la ligne aprs le point virgule et en utilisant l'indentation, c'est dire le dcalage par les espaces. le End final du programme est suivi d'un point. Exemple mal prsent : program toto; begin faitcela;fait ceci; end. Exemple bien prsent : program toto; begin faitcela; faitceci; end. 4) Un peu de calcul ------------------- Le TML Pascal comprend des oprateurs et des fonctions mathmatiques prdfinies qui permettent de raliser des programmes scientifiques complexes. Les oprateurs aritmtiques sont: l'addition + la soustraction - la multiplication * la division rsultat rel / la division entire Div. Elle ne s'applique qu'aux entiers et donne le quotient entier par dfaut le calcul du reste de la division entire Mod. Exemple 38 Mod 8 donne 6, reste de la division entire de 38 par 6. Les rsultats sont de mme type que les oprandes ( termes des oprations) si les oprandes sont du mme type et ils seront du type rel si un des oprandes en fait partie. La division / donne toujours un rel, mme si les oprandes sont des entiers, 5/2 donne le rel 2,5. Les fonctions mathmatiques prdfinies: Abs(x) retourne la valeur absolue de x Sqrt(x) retourne le carr de x Sin(x) retourne le sinus de x Cos(x) retourne le cosinus de x Exp(x) retourne l'exponentielle de x Ln(x) retourne le logarithme nprien de x Arctan(x) retourne l'arctangente de x _________________________________________________________________________________ Chapitre 4: Quelques instructions pour un premier programme _________________________________________________________________________________ Programme: A partir d'un rayon entr par l'utilisateur, le programme fournit trois rsultats, la circonfrence du cercle, la surface du disque et le volume de la sphre associe. Nous avons donc une variable:le rayon, une constante:Pi et trois procdures: circonfrence, surface, volume. La constante pi et la variable rayon s'appliquant chaque procdure, elles seront dclares en tte du programme, ce sont des donnes globales. Pour la variable contenant le rsultat du calcul de chaque procdure, nous lui avons donn chaque fois le mme nom, "c". Ceci pour bien montrer que cette variable n'appartient qu' la procdure dans laquelle elle est. "c" est une variable locale. En pratique, pour viter les confusions, il ne faut pas faire cela. C'est simplement un cas d'cole pour montrer que a marche. Les commentaires du programme se mettent entre ou {}. On peut en crire tant que l'on veut, ils ne sont pas pris en compte par le compilateur, donc ne nuisent pas l'efficacit du programme. Avant d'entrer ce programme, une bonne prcaution prendre, si vous avez la version 1.5, est de placer un keyboard Break, c'est dire la possibilit de revenir l'diteur si votre programme se perd dans une boucle infernale. Cela vite de devoir tout recharger. Droulez le menu Compile, relcher la souris sur l'option Preferences et cochez la case Keyboard Break dans le tableau Compiler. Vous pourrez en cas de problmes retrouver l'diteur par Control-C. Ce programme se trouve aussi dans le dossier Exercices de cette disquette sous le nom Rayon.Pas. N'essayez pas de le lancer directement, c'est le fichier source. program rayon (input,output); uses consoleIO; const Pi = 3.14159265; var rayon:real; procedure circonference; var c : real; begin c:= 2*pi*rayon; writeln('circonfrence du cercle = ',c); end; procedure surface; var c : real; begin c:= 2*pi*rayon*rayon; writeln('surface du disque = ',c); end; procedure volume; var c : real; begin c:= (4*pi*rayon*rayon*rayon)/3; writeln('volume de la sphre = ',c); end; begin writeln(' CALCULS AVEC UN RAYON'); write('Entrez le rayon :'); read(rayon); circonference; surface; volume; Writeln('Pressez une touche pour quitter'); repeat until keypressed; end. Maintenant quelques commentaires: program rayon (input,outpuprogram rayon (input,output); uses consoleIO; const Pi = 3.14159265; var rayon:real; procedure circonference; var c : real; begin c:= 2*pi*rayon; writeln('circonfrence du cercle = ',c); end; procedure surface; var c : real; begin c:= 2*pi*rayon*rayon; writeln('surface du disque = ',c); end; procedure volume; var c : real; begin c:= (4*pi*rayon*rayon*rayon)/3; writeln('volume de la sphre = ',c); end; begin writeln(' CALCULS AVEC UN RAYON'); write('Entrez le rayon :'); read(rayon); circonference; surface; volume; Writeln('Pressez une touche pour quitter'); repeat until keypressed; end. t); { dclaration du nom du programme. program est obligatoire, ne pas oublier l'espace pour le sparer du nom. attention au point-virgule. Ne donnez pas le mme nom votre fichier source, sinon bonjour les dgats la compilation. Une bonne habitude et de nommer le programme objet en un seul mot et d'ajouter .Pas pour le nom du fichier source, .Pas pour Pascal : programme rayon et source rayon.Pas} uses consoleIO; { dclaration de l'unit utilise, ici consoleIO qui permet d'avoir certaines fonctions prdfinies comme : Keypressed--> fonction boolenne retournant vrai ou faux suivant qu'une touche caractre ait t presse ou non. Readchar --> attend qu'un caractre soit entr au clavier et le lit. GotoXY --> X et Y sont des entiers. Place le curseur sur la Xme ligne et la yme colonne. EraseScreen --> efface l'cran, le HOME du Basic. ClearEol --> efface la partie droite de la ligne du curseur. InsertLine --> met une ligne vide la position du curseur. DeleteLine --> efface la ligne la position du curseur qui remonte.} const Pi = 3.14159265; { dclaration des constantes : le nombre 3.14159265 (attention de ne pas mettre de virgule) sera dans tout le programme identifi par le mot Pi. Cette constante est globale toutes les procdures.Pi vaut toujours ce nombre. const est obligatoire.} var rayon:real; { dclaration des variables globales. Ici la variable nomme rayon, utilise dans chacune des procdures fait partie des rels. var est obligatoire} procedure circonference; var c : real; begin c:= 2*pi*rayon; writeln('circonfrence du cercle = ',c); end; { criture de la procdure circonfrence . Le mot procedure est obligatoire. Il doit tre suivi, spar par un espace, du nom de la procdure.Attention il n'y a pas d'accent sur le e de procedure. La rgle d'criture d'une procdure ressemble beaucoup celle d'un programme. Tous les deux commencent par une entte, suivie du bloc des dclarations, suivi par le bloc Begin...End. On retrouve donc les dclarations, ici la dclaration de la variable relle c. cette variable tant dclare dans la procdure circonfrence, elle n'est connue qu' l'intrieur de celle-ci, c'est une variable locale. Pascal permet ainsi un contrle extrmement fin de ses variables. Puis suit le bloc d'instructions il commence par begin et se termine par end. Le end d'une procdure et suivi d'un point-virgule. A l'intrieur de ce bloc deux actions en squence, en premier le calcul de la circonfrence du cercle, remarquez le symbole d'affectation de la variable c, deux points suivi du signe gal (:=), en second une instruction WRITELN, instruction qui va permettre d'afficher sur l'cran la chane de caractres'circonfrence du cercle'et la valeur de la circonfrence. Remarquez l'utilisation des ' pour marquer le dbut et la fin, de la phrase, l'utilisation de la virgule pour la sparer de la variable et l'usage des parenthses.} procedure surface; var c : real; begin c:= 2*pi*rayon*rayon; writeln('surface du disque = ',c); end; { dclaration de la procdure de calcul de la surface.On redclare une variable c. Cela n'est possible que parce que l'identifiant c n'est utilis que dans un cadre local. A ne pas faire pour viter les erreurs. Renommer le s dans la dclaration et le corps de la procdure. Un nom diffrent pour chaque variable.} procedure volume; var c : real; begin c:= (4*pi*rayon*rayon*rayon)/3; writeln('volume de la sphre = ',c); end; { Renommez c en l'appelant v } begin writeln(' CALCULS AVEC UN RAYON'); write('Entrez le rayon :'); read(rayon); circonference; surface; volume; Writeln('Pressez une touche pour quitter'); repeat until keypressed; end. { Bloc du programme principal commence par begin et se termine par end suivi d'un point. Les procdures sont appeles par leur nom dans l'ordre o elles seront excutes. L'instruction WRITE n'est pas tout fait semblable WRITELN. WRITELN provoque un retour automatique la ligne suivante, WRITE ne le fait pas. L'instruction READ est l'quivalent de l'input Basic, attention l'usage des parenthses. REPEAT UNTIL KEYPRESSED est une boucle d'attente sans action dont on ne peut sortir qu'en appuyant sur une touche.} EXERCICE: Aprs avoir bien tudi la syntaxe du programme prcdent, crivez le programme qui pour la mesure d'un ct donnerait le primtre, la surface du carr et le volume du cube associ. Soignez sa prsentation. abilit est fournie avec Prosel de Glen Bredon, le plus qu'excellent programme de gestion de Prodos et d'un disque dur. rvice lecteurs : index alphabtique et thmatique des articles parus dans &. S'ABONNER A AMPERSAND ? SUN DATA 16 RUE JULIA 13005 MARSEILLE Connaissez-vous TOOLBOX ? ------------------------- Il ne s'agit pas de la bote outils du IIGS, mais d'un nouveau club par correspondance, consacr lui aussi au IIGS. Mais dans un autre domaine que le notre. Son objectif principal est d'tre une cooprative d'achats de logiciels et de cartes du commerce. Les logiciels qui ne vous plaisent plus pourront tre repris, un service aprs vente sera assur. Le catalogue des diffrents produits sera mis jour chaque trimestre. Il est anim par Hubert Loiseleux et Eric Weyland. Adhsion annuelle: 250,00F Pour tout renseignement: Par crit --> TOOLBOX 35,bd Richard Wallace 92800 PUTEAUX Par tlphone --> (1) 47 72 27 36 (Rpondeur) ĈĈĈ@ĈĈĈW*UjfLsxpM?U*U*U*U*U@*U*U*U*Uz+0`Ĉ@+UjĈ3vxp̗03fL_*U*U*@?U*U*uW*U*`Ę@UjĈĈflx@0fĈO3fLs/UF_j/U*U*U*Ĉ*@aajĈĈĈy?0UĈ@Ĉ_j0fĈĈ7fL3~\/U*U*Ĉ*ĈĈĈĈX*UĈ@ĈĈW*U0flĈ.U3~ĈĈU*_*U*U*U3fL3f,UĈĈ@LjĈW*0fLĈV*U3f|LjĈU*_*U3f<VĈĈ@ĈĈ0v`Ĉ+U*U3fLy+@ĈĈ@ĈĈĈ0̈@3flĈ?P7fW*U*U*U*U@_*U*U*U*U`@`ĈfLyĈψ?P3f|+U*U*@/U*U*Ĉ@`ĈĈsLj?Ĉ@PYĈfL3fLyWNW~CqĈĈĈf8UĈ@ĈW*PĈ3fl~|Ĉ~ĈĈĈĈ\*UĈ@Ĉ*UPsĈLyĈxL3fLy.UĈĄ@ĈĈ* P3ĈČLsĈxLyWĈĈ@ĈĈP@Ĉ@L3vĈpĈĈĈ@ĈĈ`Ĉ`U*UڈgLsx0*U*U*U*U@_*U*U*U*}U*@@p*UĈ3f?xğ0ĈfL3~U*U* @/U*Uz+U*Uj+Č0UڈĈĈgLx@Ĉ0fň3fL3f~ZwW*U*U*UjĈ*FXĈĈĈ,UĈ@ĈW*0f̈ĈfL?Ws_*UjĈW*|V*UĈ@ĈĈ*U0fLĈ@+U3fĈĈU*/U*U*U3fL3>+UĈĈ@LjĈ*0fLĈ@U*U3flLjĈ+U*/U3>@uĈĈ@ĈĈ:p@Ĉ`*U*U3fLyp@@؈p3fLĈ?O?PfL?U*U*U*U@W*U*U*UzxψĈLĈ@ψ?P3fLY_*U*@+U*uĈxĈĈĞ3~Lj`Ĉ@PĈgL3fLswL|ψĈĈĈ~.U`Ĉ@ĈU* PĈ3f@lĈxL3fL3f|W*uĈĸ@Ĉ+UP3ĈĨ`LyĈxL3fl@+uĈĂ@ĈĈ+5P3ĈĆ`LsĈxl`ĈĈ@ĈĈkpňpL3fĈp/U*U*U*U*U*@/U*U*U*U*UjĈ8U*ULjL3~xq03vW*U*U*U@W*U*U*U_*UĨ\*UĈĜ3f~xpŸ0ĈgL3f|+U*5@+U*?U*U*Uވ+ Ć,ULjĈĈL}@Ĉ0fLj3fL3fL}/U*U*U*UĈ*VĈĈĈĸ+U:Ĉ@ĈU*0f܈ĈgL?`Us/UΈĈU*_*U*U*U*U3fL3fL@U*݈Ĉ@ňĈ/U:0fLĈp*U3fňĈU*_*U*U3fL?`*ĈĈ@ψĈĮu0fLĈ0U*U3fLψ+U*_?0ψĈĈ@ĈĈ@ĈX*U*U3fL?U*U*U*U*U*@+U*U*U*U*U~\Ј|3fL}Ĉ?PL*U*U*U:@U*U*U*}ψ ~ĈĈLň܈C߈PĞ3fL3?U*u@*Uz~ĈĈ3~7Ĉ@PĈL3fLso}Lj0ĈĈĈĈ}@+UjΈĈ@ĈU*5PĈĜspLĈxL3fL3v`U*ĈĘ@ĈļUjP3ĈĘpLĈxL3fp*LjĈ@ĈĈUP3ĈĂxL3~Ĉx8ĈĈ@ĈĈĸƈ|L3f~Ĉ_*U*U*U*U*5@+U*U*U*U*uW Ĉ.U*ĈO3~xؓ0Ĝ3fl/U*U*Uj@U*U*Uj/U*UĘW*Ĉ3f|xA0ĈL3fLyW*UA*U_*U*U*ULj*0Ă+ĈĈĈOy@uLj@Ĉ:0fƈĸ3fL3f|pW*U*U*uĈ*`ĈĈĈĈs`*UjĈ@ĈĸU*u0f숑Ĉ8U3~ĈĈU*/U*U*U*U3fL3fL0UjLjĈ@LjĈUj0fLĈX*U3f~ňĈU*/U*U3fL?XjĈĈ@߈ĈU0f|Ĉ,U*U3fL}߈U*lňĈĈ@ĈĈĈV*U*}3fLp{+U*U*U*U*u@*U*U*U*U*ĈfLyĈ@?PL3~U*U*Uj@?U*U*U~Ĉ0@ĈĈsň`ňAPy3fL3f|*UC_*}`CĈĈĈv`U`Ĉ@_jPĈM3fLYx~Ĉ@ĈĈĈĈp*UzĈ@ĈU*UPĈ|L}ĈxL3fLs8UzĈĈ@ĈU*P3ĈĘ|LĈxLs\ĈĈ@ĈĈWPĈ~L3~ĈĈĈ@ĈĈ ƈ~O3f|ĈpՊĈĈļĈpU*UjĈĈ@ĈժĈĄ/ݻĈժժĈ ꉑݻĈHoժժx~ ƈ݇xWժ꣄ժ`ժ@W*UĈݻ*Uվ`תժݻ`<Ĉܻ߻Ĉתܻ߻@|+U*uĈĻ*U*uժՊ`ĈޟĈ@pĈĈ*U*U*UĈĈĈ@ՊĈĈĈ?ĈĈ@U*UjňĈ`ĈժĈ݃ ԏ`ժĈ,ݻ͈Ĉժժ܃Ļ`ժĈ@݉h?@ժ@ߪhjĸp/ucժժתժ@ժV*UĈ*U݃`ުժ@0Ĉ݃׊ܪĈݛ@pW*U*UĈ*U*U~ժՊĈLjĈ`ĈĈĈ*U*U*UĈĈ`ߊĈňĸ`ĈĸW*UݻĈĈ?ժՓ@ժĈĂ8ݻĈ?ժժLjЈ@ժp߻Ĉ?ժ?pׂH+uƈݛ`_*@Aժժժժת?\*UĈ߻*U@@ժݻ?`ĈԻݻ@pՊĈLjܻ?@?U*U*UĈĻ*U*U*?@qժՊĈ葢ĈĻ@ĈĈc*U*U*uĈĈĈpƈ՗Ĉ@ĈĈV*ULjĈĈժΈ݃@ժĈp߻݈Ĉתժ՞܃ĺժĈު݉ժ|+U~@ĸ@?U*݃`תժժժ֪X*UĈ*U݃`ժň@Ĉݻ݃`ՊȫĈ~*U*U*UЈĈ*U*U*u`ܪժՊĈLjĈĈĈĈA+U*U*ĈĈĈވĸ@ĈĘ\*UݻĈժ՚Ĉ@תň`ݻĈժ@؈ժՓ@תXժ.U*?`ň*U*0֪ժիժժܪp*uĈ޻*u0Ĉժ߻ݻ~Ĉ߻0@ՊĈĈԻxW*U*U*U:ĈĺW*U*U*UzpתժՊĈĈĻ@֑ĈĈ.U*U*ĈĈňĈ݃`LjĈp*ULjĈĈժ߃`@֪՗Ĉx߻ߪժԃ`ļժƈxժ݋x~ժ`O8U*u?@U*U*߃֪ժժժت@+5Ĉ+݃|ժĈݿx+ @Ĉݯ}݃xՊĈĈ߻`/U*U*U*UjȈĈU*U*U*U*pתժՊ؈ĈĈ`LjĈ,U*U*ĈĈ@Ĉꉑĸ0՞ĈĈ`*UݻĈժĈ0@ܪވݻĈժߪժ0̈ժ՞ժxժx0U*U@ĈݻW*UjܪժϽժժ߻+Ĉܻ+ݻĈժ޻ݻ`_*@Ĉ+U~ުՊ@ĈĈp*U*U*U*UjĈļU*U*U*U*U|ժՊĈĈĺp؞ĈĈ8U*U*ĈĈ@ĈժĈ݃Ĉ@+uňĈĈժժރ`ĻتպĈ`Hժժxĸ|ժ`ժߏժ`U*U`*Uz݃ تCժժ. Ĉݯ݃ `ժĈ݇`?U*5`Ĉ+Uj߃ `תՊ@ĈĈ`|U*U*U*U*U*LjĈU*U*U*U*Uz~ժՊ̈ĈĈ4: A9 D0 LDA D0 00/0316: 20 A8 FC JSR FCA8 Temporisation 00/0319: AD 00 C0 LDA C000 Dtection d'une touche presse commutateur en $C000, arrt de l'animation. 00/031C: 10 EB BPL 0309 Branchement en $0309, boucle sans fin. 00/031E: 60 RTS Notre session est termine, exercez vous bien manipuler le moniteur en reprenant les exercices proposs dans les 3 premiers cours. Epluchez soigneusement le programme de J. Delehaye, GSinf.boot, prsent sur cette disquette. Nous allons trs lentement, il s'agit d'une srie d'initiation. Si votre ambition est d'apprendre programmer en assembleur et que vos connaissances sont celles de l'usage du Basic Applesoft.Pour ceux qui voudraient aller plus vite, un ouvrage en anglais, que je recommande au dbutant. Un parcours passionnant vous attend la lecture de ce livre. Un livre qui vous explique l'utilisation du moniteur et du mini-assembleur, vous donne un assembleur crit en Basic, vous propose ses exemples avec cet assembleur et en Merlin 8/16 aussi, vous mne du balbutiement l'usage de la bote outils. L'ensemble est trs pdagogique, l'auteur, le Dr. William B. Sanders est professeur l'universit de San Diego. Il s'agit de: Elementary Assembly Language for the Apple IIGS dit par Scott Foresman and Company Computer Books. En France on peut se le procurer chez Infothque, librairie dont nous avons donn l'adresse dans le numro 1. Au menu de juillet, commutateurs et pile, tout un circuit! * /PHRASE$"MONITEUR EN COURS D'ESSAI";I125\(767I,((PHRASE$,I,1))128b2q<J793900zFJ,0PZ901,198:902,201:903,206d