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&Xb0qqwqqwqwqwwqwqwwwwwwwqwqqwqwwwqwwqwqwwqwqqwwwwwqwwqqqqqqqqqqqwqqqqqqqqqwqqqqqqqwqqwqwwqwqwqwwqwqwwwwwqqwqqwwqqwwwqwqwqqwwqqqqqqqqqwqqqqqqqqqwqqqqqqqqqqwwwwqwwqwwwqwwqqwwwwqwqwqqqwqqwwwqwqwwqqqGSINF4!' @OTTELLO²'LERMANED1Ͳ5FINDER.ROOThͲ LOREK² Ͳ3GOBIN²Ͳ&FINDER.DATAɚF² UTILITAIRESò"вTOMENOLò&޲ ARTICLESò(% &COUV.4sAβв4ANIMATIONò2ͲKOENIGŲ.Ų$F1RACE7  Ų/'GSINFOSD** EXEMPLESܲܲ"ICONS! 8 OTTELLOv²' 'MOUSE.GSepn-)CATALOGUE Y6$$MENUw 13o+,MOUSE.DEMO80 ''*MOUSE.GS.Se n-FINDER.DATA/²² / XA?p@ 4p )pvpvp` `? Ȁ`占󠱹L 0h')$$$0 ND : 0 &  )@ )@ ),`H)@h)?`h)?I?i * -+- Lecture catalogues {clat{s -+-U(4)"PR#3": 80 Colonnes obligatoiresNA$(200),DI$(20,51),DI%(20):D$(4):BG$(27)"_"(24)(BD$(27)"Z"(24)2TI$"---------------------------------------------------------------------" <NI%0 F -+- Titre -+-+ PRT%1:2070W Z -+- Choix {dition, Slot, Drive -+- d:PR%0:SL%5:DR%1:P$"Non":P$(0)"Non":P$(1)"Oui" n7:31:"____________________" x8:31::BG$;::"mprimante : ";P$;::50:BD$:# 31::BG$;::"lot : ";SL%;::50:BD$:Z 31::BG$;::"rive : ";DR%;::50:BD$: 31::BG$;::" ";::(27);"M";(24);::" quand OK";::50:BD$: 31::BG$;::" pour quitter";::50:BD$: 31::(27);"LLLLLLLLLLLLLLLLLLLL";(24):; 14:33:"Votre choix : ";(8);(8);:A$M A$(27)450_ A$(13)290 A$"I"A$"i"PR%PR%:P$P$(PR%):110 A$"S"A$"s"250 A$"D"A$"d"270 (7):180 SL%SL%1:SL%7SL%2 120 DR%1DR%2:120 DR%1:120! "RT%0:2070 ,:12:1:"Mettre la disquette @ cataloguer en interface ";SL%;" lecteur ";DR%;" -+- pour changer";:16384,128:ZZ%(16384)128:16368,0:ZZ%2780 6 @340, JD$"PREFIX,S";SL%;",D";DR%:D$"PREFIX":PR$:PF$PR$:PR$(PF$,2,(PF$)2):216,0:360H T216,0:(7):3000:300p ^ -+- Imprimante si demand{e -+- hPR%ĺ(4)"PR#1" r -+- Boucle lecture des directory -+-|DI$"/"PR$:I31NI%:DI$DI$"/"DI$(I3,DI%(I3)):I3:NI%NI%1:1000:EN%430:DI%(NI%)0380CNI%NI%1:DI%(NI%)DI%(NI%)1:NI%0410WDI%(NI%)0390qNI%0ĭDI%(0)0430z380PR%ĺ(12):(4)"PR#3":20:1:"Autre catalogue ?(O/N)";:A$:A$"O"A$"o"Ľ:30::(4)"BYE" -+- Lecture directory -+-?D$"OPEN"DI$",TDIR":D$"READ"DI$:NB%0:DI%0i -+- Recherche derni{re ligne -+-NA$(NB%):(NA$(NB%),5)"BLOCK"ĺD$"CLOSE":1100 -+- Recherche directory -+-(NA$(NB%),18,3)"DIR"1080A$(NA$(NB%),2,15):L%(A$))$(A$,L%,1)" "L%L%1:1060\.DI%(NI%)DI%(NI%)1:DI$(NI%,DI%(NI%))(A$,L%)p8NB%NB%1:1020B -+- Impression directory -+-L:L%(DI$)VPR%VT%(37):HT%(36):2:12:868:DI$:VT%1:HT%1`DI$j(TI$,L%)!tNB%4Ė34:"*** VIDE ***":1170T~I1NB%2(NI%1):NA$(I):2000:EN%1INB%c:D$"FRE"i -+- Test clavier -+-EN%2ĵ16384,128:A%(16384)128:16368,0:2020A%(16384)128:16368,0:EN%0A%27EN%1:'A%32EN%2ĵ16384,128:16368,0:EN%2::A%13EN%0:@W  -+- Titre -+-::20:"Catalogue complet }clat{ par Ottello Dominique":RT%Ĺ34,2: "DIRECTORY:":2100:34,4(*21:2100:" = Fin -+- = Arret -+- = Marche -+- Imprimante = ";P$;:35,20:4:(27);"SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS";(24):: -+- Gestion erreur -+- ER%(222) ER%3ER$"Pas de p{riph}rique connect{":3190$ ER%4ER$"Prot{g{ contre l'{criture":3190Z ER%6ER$"Parcours (Pathname) non trouv{":3190 ER%8ER$"Erreur d'entr{e/sortie":3190 ER%9ER$"Disquette pleine":3190 ER%10ER$"Fichier v{rouill{":3190 ER%16ER$"Erreur de syntaxe":3190: ER%17ER$"R{pertoire (Directory) pleine":3190k ER%19ER$"Nom de fichier en double":3190 ER%21ER$"Fichier(s) encore ouvert(s)":3190& ER%77ER$"Manque d'espace m{moire":31900 ER%255ER$"Interruption par control-C":3190+: ER%11ER$"Option invalide":3190\D ER%12ER$"Pas de tampon disponible":3190N ER%13ER$"Erreur de type de fichier":3190X ER%18ER$"Fichier non ouvert":3190b ER%20ER$"Fichier occup{":3190l ER$"Erreur "(ER%):v :12:(80(ER$))2:ER$::27:"Une touche pour continuer"X 16384,128:16368,0::@ --------------------------------------------------------r -+- Menu souris et clavier -+- -+- Copyright Ottello Dominique -+- 14 Mars 1989 -+-( --------------------------------------------------------2:2 < Lancement du programme assembleur avant tout autre chose8 F:N P(4);"-MOUSE.GS"f Z(4)"PR#3":G$(7) dRE%768: Call ReadMouse/Key nKY%771: Touche simul{e x: ZM$(12),ZW%(12): A dimensionner au nombre maxi d'item menu :5 -------------------------------------------------------------l -+- D{finition des items d'un menu -+- ------------------------------------------------------------- : Invalidation de certains item I15:ZW%(I)1::ZW%(3)0: Item 3 invalide :A ZM$(0)"Menu d{monstration": Titre du menu ZM$(1)"1Item 1": Item 1 (1er caract}re = caract}re d'appel) ZM$(2)"VValide/d{valide item 3" ZM$(3)"3Item 3" ZM$(4)"4Item 4" ZM$(5)"QQuitter" ZP%5: Nombre d'item4 "ZW%(0)0: Tous les items ne sont pas validesL ,63000: Appel menuR 6:y @ZH%1000,2000,3000,4000,5000:220 : :"Ex{cution item 1 menu" 10000  : ZW%(3)ZW%(3): : :"Ex{cution item 3 menu" 10000  : A ZM$(0)"Sous menu de l'item 4 du menu principal"V ZM$(1)"1Item 1"l ZM$(2)"QQuitter"y ZW%(0)1 ZP%2 63000:ZH%1İ1000:4010  : :"Fin du programme": ': '22:"Une touche pour continuer":RE%:n:Ex -------------------------------------------------------------o -+- Menu g{n{ral -+- -+- Param}tres d'entr{e: ZM$(0) Titre du menu ZM$(1 @ X) Texte des items du menu dont le premier caract}re est celui d'appel8 ZP% Nombre d'itemsj ZW%(0) = 1 Tous les items sont valides 0 Certains items sont invalides et indiqu{s par ZW%(X)=0 o| X donne num{ro item invalide- Les items invalides seront affich{s sans et toutec demande de validation donnera un bip sonore -+- Param}tre de sortie: ZH% Donne le num{ro item valid{ -------------------------------------------------------------:7::ZT%(80(ZM$(0)))2:ZT%:ZM$(0):ZT%:(A3$,(ZM$(0)))"23:15:"Choix par ";::(27);"K";::" ";::"J";::" ";::"H";::" ";::"U";(24);:," ou ou souris - Puis ";::(27);"M";(24);::" ou souris":16368,0:ZH%1!6ZL%0:ZK1ZP%:(ZM$(ZK))ZL%ZL%(ZM$(ZK)):@:ZL%((80ZL%)2)2zJZK1ZP%:ZL%:3ZK:ZW%(0)ZW%(ZK)ĺ"<";(ZM$(ZK),1);">";TZL%4:(ZM$(ZK),2)::3ZH%:ZL%4::(ZM$(ZH%),2)::ZD%ZH%^3ZH%::ZL%4:(ZM$(ZH%),2)::ZD%ZH%h63130:ZV%13(ZW%(ZH%)ZW%(0))63180&rZV%13ĺG$S|ZH%ZH%1(ZV%21ZV%10):ZH%ZP%ZH%1ZH%ZH%1(ZV%8ZV%11):ZH%1ZH%ZP%3ZD%:ZL%4:(ZM$(ZD%),2):63070RE%:ZV%(KY%):(ZV%21ZV%8ZV%13ZV%11ZV%10)ıZV%96ZV%ZV%326ZK1ZP%:((ZV%)(ZM$(ZK),1)(ZW%(ZK)ZW%(0)))63170SZH%ZK:ZKZP%:::63180d:G$:63130v(4);"FRE":G -------------------------------------------------------------- -+- Programme de d{monstration utilisant souris et clavier -+- -+- Copyright Ottello Dominique -+- ( -------------------------------------------------------------- 2:1 <(4)"PR#3":(4)"-MOUSE.GS"~ F::190:23:"Utiliser les fl}ches ou la souris -+- Control-C pour fin" P1:" Utilisation souris dans Basic -+- Ottello Dominique -+- 15 Janvier 1989" Z768:K%(771):190 dK%11Ğ:10:37:"Haut":* nK%10Ğ:14:37:"Bas":J xK%8Ğ:12:25:"Gauche":k K%21Ğ:12:47:"Droite": K%13::12:36:"Bouton": 230 K%390 22:958: : 12:868:25:"Gauche Bouton Droite" 10:868:37:"Haut":14:868:37:"Bas"! ' :e 20:1:"Code ASCII touche:";K%;" ";:40:"Caract}re:"; K%32ĺ"Espace ": K%127ĺ"delete ": K%27ĺ"esc ": K%32ĺ"Control-";(K%64);" ": (K%);" ": !"#$%&'()*+,-.à ð ԭ ˨ ˨ Ġð  ð č Ƞ   Ġ Ǡ 卍ɠƠ  Ԡ²Ơ Šõ Ԡ ԠĠ ͠Ÿ 썍 ɍȠ Ӡ Ԡ  ΠĠ Ԡ 卍 ㍍Š Š 婍Ǡ 卍ҠԠ Ҡ͍ҠōҠ ɍҍɫҠԍҠō ٠ӭӠ 卪 婍РӬٍٍٍŠР Ӡ ٩ Ӎ 卍Š٠РƍҠԍٍŠЍӍ Ԡ٠РɩٍѠԱҠԍٍЍԱӍ Ҡà čà 墸čà ĸİ Ӡð Ԡð ت ٪ Ʃ ӍǠӠРӍӠӠ Ӡ ȍǍčҠčɠӠ 卍Ӡ Ս̠Ҡ Ġ Ѡٍԍҍ٠Ԡ ؠ占Ԡ ٠占ɠӠ Π ñӍ ӠĠ 占РōԠӍԠ 占ñӍӠǠ 占РōԠӍȠ 占ñӍӠȠ РōԠӍԠ 占ñӍӠ  РōԠӍӠ 占ñӍ Ӡ ҠԳӍԠӠ 卍Ġ ѠӍàȠ ӍӠà  卍Ӡ 占ҠԳӍԠҠ 卍Ġ 占ѠӍàǠ 占ҍӠàčҠ ӠĠƠ ñӠӍԠ  Ӎ ԳӠĠ ŠԳӠ ԳƱӠĠƍРŠ 占ӍԳӠ ĠƠ ҠƍÍàԳƱӍӠҠƠ ƍ$dA1<MENUE.DEMO80ER4 CATALOGUEO80ER MOUSE.DEMO80ERMOUSE.GS.O80ER> MOUSE.GS.ST0ER&jhHBLU2.28LERMANEDu' Ͳ5' ')ART.INTRO3J1)ART.NOTES8881*GS.LSI.PAS=;1FINDER.DATAgTͲ6Ͳ61 Si vous avez russi lire ceci, c'est que mon programme fonctionne ! Vous voici maintenant avec le source en TML Pascal, comment du mieux possible. Le problme rencontr jusqu'ici pour imprimer un article du GS Club-94 n'est plus, car voici GS.LSI ! Le programme est plutt simple et peut servir d'exemple pour l'apprentissage de la programmation de la bote outils du GS. En voici un plan simplifi : PROGRAM GS.LSI; ... Procdures utiles au droulement du programme ... Boucle de gestion des menus ...2456 Boucle principale (pour une programmation oriente vnement) ... BEGIN Programme principal END. La partie m'ayant pos quelques problmes fut la procdure d'impression des fichiers texte avec fonte tendue; il tait simple de s'en sortir : en effet, chaque caractre accentu a un code ASCII, mais diffrent de celui de l'cran en mode texte. Pour connatre ces codes, il suffit de faire un petit programme comportant une boucle affichant les caractres et leurs codes jusqu' 255, ce que j'ai fait. Donc, pour imprimer les textes correctement accentus, il suffit de recoder les caractres un un pendant l'impression. Pour tout avouer, je ne suis pas un familier de la bote outils : malgr ma connaissance assez approfondie du langage Pascal classique, je ne possde aucune documentation concernant la ToolBox; cependant, force de persvrer et grce aux exemples de TML, j'ai russi crire ce petit programme, utilisable l'aide de la souris, ce qui montre que le GS est vraiment le meilleur micro pour la programmation ! Voil, j'espre que ce programme vous servira quelquechose et qu'il vous permettra d'en faire de meilleurs. Marc LERMAN NDLR: Le source de ce programme se trouve dans le dossier Lerman sous le nom GLSI.Pas. Pour l'utiliser, il faut le compiler avec TML Pascal bien sr. Il serait intressant de transformer ce programme de telle faon qu'il rcupre les fichiers et soit parfaitement autonome. Pascaliens vos clCe coin est rserv aux programmeurs ! Vous avez bien sr remarqu que ce programme s'inspirait de GS Infos (il est difficile de ne pas s'en inspirer). La fentre de lecture des fichiers ne me plaisait cependant pas; bien sr, la lecture tait aise et rapide, mais l'impossibilit de revenir en arrire me drangeait, ainsi que celle de ne pouvoir imprimer le texte sans sortir du programme. C'est pourquoi j'ai rsolu le problme de l'impression et maintenant, le texte s'affiche dans une fentre classique. 79:; Cependant, il faut signaler deux problmes : - D'une part, ayant test plusieurs fois l'impression, j'ai remarqu que certains caractres parasites venaient gner l'impression - D'autre part, plus le texte lire est long, plus son dfilement dans la fentre est lent. Le problme des caractres parasites me semblent li au tampon d'impression que gre le Pascal et il ne me semble pas possible de pouvoir y remdier. Cependant, le second problme doit facilement pouvoir tre rgl. Ne connaissant (presque) rien la bote outils du GS, je n'arrive pas savoir quelle est la partie du texte devant tre affiche, ce qui permettrait de rcrire uniquement cette partie (dans cette version du programme, TOUT le texte est rcrit, mme s'il se trouve en dehors de la fentre, ce qui rend le dfilement plus lent, proportionnellement la longueur du texte). C'est pourquoi je fait appel aux membres du club matrisant la Toolbox pour rsoudre ces problmes (d'une manire lgante, j'entends); vous pouvez prendre cet appel comme un dfi, si vous voulez ! Pour toutes suggestions, tous renseignements, crire : Marc LERMAN 16, rue Lucien Sampaix 75010 - Paris Merci d'avance.PROGRAM GSLSI; { Ce programme permet le chargement de divers articles, leur visualisation, ainsi que leur impression sur ImageWriter II. } { Auteur : Marc LERMAN -- 7/5/89 } Uses QDIntf, { Interface QuickDraw } GSIntf, { Menus, fenetres, etc... } MiscTools, { Outils divers } ConsoleIO; { Conversions, concat, etc... } Const ScreenMode = $80; { Mode 640*200 } MaxX = 640; Pomme = 300; { Les menus... } APropos = 301; Fichier = 400; Imprimer = 401; Quitter <>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ = 402; Edition = 500; Annuler = 501; Couper = 502; Copier = 503; Coller = 504; Effacer = 505; Sommaire = 600; Article1 = 601; Article2 = 602; Var { Variables globales } MyMemoryID : Integer; ToolsZeroPage : Handle; OnQuitte : Boolean; { Vrai si 'quitter' est choisi } PommeStr : Str255; { Chaines des menus... } FichierStr : Str255; EditionStr : Str255; SommaireStr : Str255; Fenetre : NewWindowParamBlk; FenetreCouleur : WindowColorTbl; Titre : String[40]; { Titre de la fenetre } Pointeur : WindowPtr; { Pointeur de la fenetre } FenetreOuverte : Boolean; { Vrai si elle l'est } NomFic : String[80]; { Fichier a charger } NbLignes : Integer; { Nbre de lignes de celui-ci } Texte : Array[1..1000] of String[100]; { Tableau txt } {-----------------------------------------------------------------------------} Procedure StartUpGSTools; { Cette procedure permet de demarrer ainsi que de charger les outils du GS } Var ToolRec : ToolTable; { Table des outils a charger } svToolErrorNum : Integer; { En cas d'erreur... } btn : Integer; { Le bouton si erreur } Begin TLStartUp; { Demarrage du Tool Locator } MyMemoryID := MMStartUp; { idem pour Memory Manager } MTStartUp; { idem pour Miscellaneous Tools } { Maintenant, on reserve 8 pages en memoire pour les outils } ToolsZeroPage := NewHandle (8*256, MyMemoryID, FixedBank+PageAligned+FixedBlk+Locked, ptr(0)); { Demarrage de QuickDraw II } QDStartUp (LoWord(ToolsZeroPage^),ScreenMode,160,MyMemoryID); { Demarrage de l'Event Manager } EMStartUp (LoWord(ToolsZeroPage^)+$300,20,0,MaxX,0,200,MyMemoryID); { Message pour faire patienter pendant le chargement des outils } MoveTo (10,10); SetBackColor (0); SetForeColor (15); DrawString (Concat('LSI Software pr',chr(142),'sente...')); ShowCursor; ToolRec.NumTools := 10; { Nbre d'outils a charger } ToolRec.Tools[1].TSNum := 4; { QuickDraw II } 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; Repeat LoadTools (ToolRec); { Charge les outils } svToolErrorNum := ToolErrorNum; { Erreur ? } If svToolErrorNum <> 0 then begin btn := TLMountVolume (100,100,'',Concat( 'Ins',chr(142), 'rez la disquette du boot'), 'Ok','Annuler'); If btn <> 1 then SysFailMgr (svToolErrorNum, 'Impossible de charger les outils'); end; Until svToolErrorNum = 0; WindStartup (MyMemoryID); { Demarrage Window Manager } RefreshDesktop (nil); { Demarrage Control Manager } CtlStartUp (MyMemoryID,LoWord(ToolsZeroPage^)+$400); { Demarrage Menu Manager } MenuStartUp (MyMemoryID,LoWord(ToolsZeroPage^)+$500); ScrapStartUp; { Demarrage Scrap Manager } { Demarrage Line Edit } LEStartUp (MyMemoryID,LoWord(ToolsZeroPage^)+$600); DialogStartUp (MyMemoryID); { Demarrage Dialog Manager } { Demarrage Standard File } SFStartUp (MyMemoryID,LoWord(ToolsZeroPage^)+$700); DeskStartUp; { Demarrage Desk Manager } End; {-----------------------------------------------------------------------------} Procedure ShutDownGSTools; { Cette procedure permet de clore les outils avant de quitter l'application } Begin GrafOff; { Fermeture de l'ecran graphique } DeskShutDown; { Fermeture du Desk Manager } SFShutDown; { idem pour Standard File } DialogShutDown; { idem pour Standard File } LEShutDown; { idem pour Line Edit } ScrapShutDown; { idem pour Scrap Manager } MenuShutDown; { idem pour Menu Manager } WindShutDown; { idem pour Window Manager } CtlShutDown; { idem pour Control Manager } EMShutDown; { idem pour Event Manager } QDShutDown; { idem pour QuickDraw II } MTShutDown; { idem pour Miscellaneous Tools } MMShutDown (MyMemoryID); { idem pour Memory Manager } TLShutDown; { idem pour Tool Locator } End; {----------------------------------------------------------------------------} Procedure SetUpMenus; { Definition des menus et affichage } Var Height : Integer; Begin PommeStr := Concat ('>>@\XN300\0', '==A propos de GS.LSI...\N301V\0..'); FichierStr := Concat ('>> Fichier \N400\0', '==Imprimer...\N401V*Ii\0', '==Quitter\N402*Qq\0.'); EditionStr := Concat ('>> Edition \N500\0', '==Annuler\N501DV*Zz\0', '==Couper\N502D*Xx\0', '==Copier\N503D*Cc\0', '==Coller\N504D*Vv\0', '==Effacer\N505D\0.'); SommaireStr := Concat ('>> Sommaire \N600\0', '==Introduction\N601\0', '==Notes\N602\0.'); SetMTitleStart (5); InsertMenu (NewMenu(@SommaireStr[1]),0); InsertMenu (NewMenu(@EditionStr[1]),0); InsertMenu (NewMenu(@FichierStr[1]),0); InsertMenu (NewMenu(@PommeStr[1]),0); FixAppleMenu (Pomme); Height := FixMenuBar; DrawMenuBar; DisableMItem (Imprimer) { Impression non disponible sans } { fichier ouvert } End; {----------------------------------------------------------------------------} Procedure ChargeTexte; { Charge l'article Titre ayant comme nom de fichier NomFic } Var f : Text; { Fichier texte } Begin NbLignes := 0; Reset (f,NomFic); { Ouverture du fichier } While not Eof(f) do begin Inc (NbLignes); { Incrementation du compteur } { de ligne } Readln (f,Texte[NbLignes]) { Lecture } end; Close (f); { Fermeture du fichier } Dec (NbLignes) End; {------------------------------------------------------------------------------} {$LongGlobals+} Procedure ContenuFenetre; { Definit, affiche le contenu de la fenetre et rafraichit celle-ci en cas } { de besoin } Var i,j : Integer; { pointeurs de boucles } Begin j := 0; For i := 1 to NbLignes do begin j := j + 10; MoveTo (2,j); DrawString (Texte[i]) { Affichage du texte } end; End; {$LongGlobals-} {-----------------------------------------------------------------------------} Procedure SetUpWindow; { Definition de la fenetre } Begin With FenetreCouleur do begin { pour que cela soit plus joli... } FrameColor := $0000; TitleColor := $0F00; TBarColor := $020F end; FenetreOuverte := true; With Fenetre do begin param_length := sizeof (NewWindowParamBlk); wFrame := $D280; wTitle := @Titre; wRefCon := 0; wColor := @FenetreCouleur; wYOrigin := 0; wXOrigin := 0; wDataH := NbLignes*10; wDataW := 640; wMaxH := 200; wMaxW := 640; wScrollVer := 10; wPageVer := 100; wInfoRefCon := 0; wInfoHeight := 0; wFrameDefProc := nil; wInfoDefProc := nil; wContDefProc := @ContenuFenetre; wPosition.top := 30; wPosition.left := 5; wPosition.bottom:= 198; wPosition.right := 612; wPlane := -1; wStorage := nil; End; Pointeur := NewWindow (Fenetre); End; {-----------------------------------------------------------------------------} Procedure AProposDe; { Remerciements, copyrights, etc... } Var aboutDlog : DialogPtr; { Boite de dialogue } r : Rect; ItemHit : Integer; Begin SetRect (r,120,30,470,170); aboutDlog := NewModalDialog (r,true,0); SetPort (aboutDlog); SetRect (r,260,115,330,130); NewDItem (aboutDlog,1,r,10,@'Ok',0,0,nil); SetForeColor (1); SetBackColor (15); MoveTo (20,15); DrawString ('GS.LSI'); SetForeColor (0); MoveTo (20,35); DrawString ('Lecture et impression de fichiers Text'); MoveTo (20,45); DrawString ('''Au GS Club-94...'' (freeware)'); MoveTo (20,65); DrawString ('Pour tous renseignements, suggestions :'); MoveTo (20,73); DrawString ('Marc LERMAN'); MoveTo (20,81); DrawString ('16, rue Lucien Sampaix'); MoveTo (20,89); DrawString ('75010 - Paris'); SetForeColor (15); SetBackColor (0); MoveTo (20,100); DrawString ('Certain portions of this software'); MoveTo (20,110); DrawString ('are copyrighted by TML Systems,Inc.'); SetForeColor (0); SetBackColor (15); ItemHit := ModalDialog (nil); CloseDialog (aboutDlog); End; {------------------------------------------------------------------------------} Procedure PushRadioButton (theDlog : DialogPtr; item,first,last : Integer); { Permet de n'avoir qu'un seul bouton allume a la fois } Var index : Integer; Begin For index := first to last do if index = item then SetDItemValue(1,theDlog,index) else SetDItemValue(0,theDlog,index); End; {------------------------------------------------------------------------------} Procedure OnImprime; { La partie la plus complexe... } Var Dlog : DialogPtr; r : Rect; ItemHit : Integer; Printer : Text; i,j,k : Integer; Lettre : String[3]; Retour : Char; Reponse : Integer; NbPages : Integer; Begin { Ouverture de la boite de dialogue } SetRect (r,50,30,590,150); Dlog := NewModalDialog (r,true,0); SetPort (Dlog); SetForeColor (1); SetBackColor (15); MoveTo (10,10); DrawString ('Impression'); SetForeColor (0); { Selection de la qualite d'impression } MoveTo (10,30); DrawString (Concat('Choisissez la qualit',chr(142), ' d''impression...')); SetRect (r,200,95,280,110); NewDItem (Dlog,1,r,10,@'Ok',0,0,nil); SetRect (r,300,95,380,110); NewDItem (Dlog,2,r,10,@'Annuler',0,0,nil); SetRect (r,225,40,350,50); NewDItem (Dlog,3,r,12,@'Courrier',255,0,nil); OffsetRect (r,0,15); NewDItem (Dlog,4,r,12,@'Normal',0,0,nil); OffsetRect (r,0,15); NewDItem (Dlog,5,r,12,@'Brouillon',0,0,nil); Reponse := 3; Repeat ItemHit := ModalDialog (nil); Case ItemHit of 3,4,5 : begin PushRadioButton(Dlog,ItemHit,3,5); Reponse := ItemHit end; 2 : begin CloseDialog (Dlog); Exit end end; until ItemHit = 1; CloseDialog (Dlog); Retour :=chr(8); SetRect(r,50,30,590,80); Dlog := NewModalDialog (r,true,0); SetPort(Dlog); { ON Y VA !! } MoveTo (10,10); DrawString ('Impression en cours'); Rewrite (Printer,'printer:'); { Ouverture du port imprimante } Write (Printer,' '); { Envoi des codes pour la qualite d'impression } Case Reponse of 3 : Write (Printer,Concat(chr(27),chr(97),chr(50))); 4 : Write (Printer,Concat(chr(27),chr(97),chr(48))); 5 : Write (Printer,Concat(chr(27),chr(97),chr(49))); end; { Affichage en gras du titre de l'article } For i := 1 to ((80-Length(Titre))div 2) do Write (Printer,' '); Writeln (Printer,Concat(chr(27),chr(33),Titre,chr(27),chr(34))); Writeln (Printer); { Impression de l'article proprement dit } NbPages := 0; For i := 1 to NbLignes do begin For j := 0 to Length(Texte[i]) do begin Lettre := Texte[i][j]; { Recodage des caracteres etendus } Case ord(Lettre[1]) of 136 : Lettre := '@'; 137 : Lettre := Concat('^',Retour,'a'); 141 : Lettre := '\'; 142 : Lettre := '{'; 143 : Lettre := '}'; 144 : Lettre := Concat('^',Retour,'e'); 145 : Lettre := Concat('~',Retour,'e'); 148 : Lettre := Concat('^',Retour,'i'); 149 : Lettre := Concat('~',Retour,'i'); 153 : Lettre := Concat('^',Retour,'o'); 157 : Lettre := '|'; 158 : Lettre := Concat('^',Retour,'u'); 161 : Lettre := '['; 163 : Lettre := '#'; end; Write(Printer,Lettre) end; Write(Printer,chr(13)); If i mod 63 = 0 then begin Inc (NbPages); Writeln(Printer); Writeln(Printer); Write (Printer,Concat ('Page ',IntToString(NbPages))); Write (Printer,chr(12)); Writeln; Writeln end end; Write (Printer,chr(12)); { Saut de page } Close(Printer); { Fermeture du port imprimante } CloseDialog(Dlog) { Fermeture de la boite de dialogue } End; {---------------------------------------------------------------------------} Procedure ProcessMenu (codeWord : LongInt); { Aiguille en fonction du menu selectionne } Var menuNum : Integer; itemNum : Integer; theReply: ReplyRecord; addr : LongInt; Begin menuNum := HiWord (codeWord); itemNum := LoWord (codeWord); Case itemNum of APropos : AProposDe; Imprimer: If FenetreOuverte then OnImprime; Quitter : OnQuitte := true; Article1: begin If FenetreOuverte then CloseWindow (Pointeur); Titre := 'Introduction de GS.LSI'; NomFic := 'ART.INTRO'; ChargeTexte; CheckMItem (false,Article2); CheckMItem (true,Article1); EnableMItem(Imprimer); SetUpWindow; ShowWindow (Pointeur); SelectWindow (Pointeur); end; Article2: begin If FenetreOuverte then CloseWindow (Pointeur); Titre := 'Notes'; NomFic := 'ART.NOTES'; ChargeTexte; CheckMItem (false,Article1); CheckMItem (true,Article2); EnableMItem(Imprimer); SetUpWindow; ShowWindow (Pointeur); SelectWindow (Pointeur); end; End; HiliteMenu (false,menuNum); End; {------------------------------------------------------------------------------} Procedure CheckMenus; { Utile pour les accessoires de bureau } Begin If BitAnd (GetWKind(FrontWindow),$8000) <> 0 then begin EnableMItem (Annuler); EnableMItem (Couper); EnableMItem (Copier); EnableMItem (Coller); EnableMItem (Effacer); end else begin DisableMItem (Annuler); DisableMItem (Couper); DisableMItem (Copier); DisableMItem (Coller); DisableMItem (Effacer); end End; {-----------------------------------------------------------------------------------} Procedure MainEventLoop; { Boucle des evenements - la boucle principale } Var Event : EventRecord; code : Integer; Begin Event.TaskMask := $1FFF; { TaskMaster peut TOUT faire (!) } OnQuitte := false; Repeat CheckMenus; code := TaskMaster (-1,Event); Case code of wInMenuBar : ProcessMenu (Event.TaskData); wInGoAway : begin CloseWindow (pointeur); CheckMItem (false,Article1); CheckMItem (false,Article2); FenetreOuverte := false; DisableMItem(Imprimer) end end; Until OnQuitte; End; {================================================================================} {=========================== PROGRAMME PRINCIPAL ================================} {================================================================================} BEGIN FenetreOuverte := false; StartUpGSTools; SetUpMenus; MainEventLoop; ShutDownGSTools; END.Art.Applefest Cet article est le rsultat de la rcupration partir du minitel d'une contribution du pseudo "James Bond" sur le serveur Buster. Nous la reproduisons avec son aimable autorisation. JAMES BOND RETOUR DES USA,APRES AVOIR ETE A L'APPLEFEST DE BOSTON ET A LA REUNION DES DEVELOPPEURS DE JEUX A SUNNYVALE, ENCORE SOUS LES EFFETS DU DECALAGE HORAIRE...JE VAIS VOUS RESUMER CE QUE J'AI APPRIS. TOUT D'ABORD, LA SITUATION DU GS AUX USA N'EST PAS TRES ROSE. BIE[]^_`abcdefghijN QUE PRES D'UN MILLION DE MACHINES AIENT ETE VENDUES, PRES DE LA MOITIE DE CELLES-CI SE TROUVE DANS LES ECOLES. CECI N'EST PAS TRESBON POUR LES AMATEURS DE JEUX SUR GS,CAR LES EDITEURS HESITENT DE PLUS EN PLUS A FAIRE DES CONVERSIONS POUR NOTRE ORDINATEUR FAVORI CAR ILS SAVENT QU'ILS NE VENDRONT DANS LA PLUPART DES CAS QUE 10000 COPIES DU SOFT. D'AILLEURS, A L'APPLEFEST ELECTRONIC ARTS,ACTIVISION ET EPYX ETAIENT ABSENTS ET MINDSCAPE NE PRESENTAIT QUE SES PROGRAMMES EDUCATIFS. CECI NE VEUT CEPENDANT PAS DIRE QUE CES EDITEURS ABANDONNENT POUR AUTANT LE GS CAR S'ILS ETAIENT ABSENTS C'ETAIT POUR LA PLUPART A CAUSE DU MAUVAIS MOMENT QUE TRAVERSE L'INDUSTRIE DES JEUX SUR ORDINATEUR AUX USA.EN EFFET,LA-BAS LA CONSOLE NINTENDO EST OMNIPRESENTE.LE CHIFFRE D'AFFAIRE DE CETTE COMPAGNIE EST QUATRE FOIS SUPERIEURE AUX VENTES DE TOUS LES JEUX SUR ORDINATEUR, TOUTES MARQUES CONFONDUES. A NOEL, ALORS QUE LES EDITEURS COMPTAIENT SUR UNE FORTE CROISSANCE DU MARCHE, COMME LES ANNEES PRECEDENTES,IL Y A EU EN FAIT STAGNATION DES VENTES. LES BOUTIQUES ONT RETOURNE UN NOMBRE IMPORTANT D'INVENDUS AUX EDITEURS ,CE QUI A PROVOQUE UNE CERTAINE PANIQUE. EPYX SERAIT D'AILLEURS EN FORTE MAUVAISE POSTURE EN CE MOMENT. LES EDITEURS ONT DONC REAGI EN DECIDANT D'EDITER MOINS DE SOFTS,MAIS DE LA MEILLEURE QUALITE, ET DE PORTER LEURS EFFORTS SUR LA PERIODE DE NOEL OU SE FONT LES PLUS FORTES VENTES.IL EST DONC NORMAL QUE LES GRANDS EDITEURS DE JEUX AIENT BOUDE L'APPLEFEST POUR FAIRE DES ECONOMIES ET AUSSI CAR ILS N'AVAIENT GRAND CHOSE DE NEUF A PRESENTER AVANT LES VACANCES PERIODE OU LES VENTES CHUTENT FORTEMENT. APRES CES EXPLICATIONS,JE VAIS DONC VOUS PARLER DE L'APPLEFEST OU BIEN QUE LES NOUVEAUTES AIENT ETE ASSEZ RARES, LE PUBLIC N'A PAS MANQUE A L'APPEL. PARMI LES NOUVEAUTES,LA PALME REVIENT A APPLE QUI MONTRE ENFIN DES SIGNES EVIDENTS D'INTERET POUR LE GS. TOUT D'ABORD, IL Y A LE SYSTEME 5.0 CE NOUVEAU SYSTEME EST FANTASTIQUE.IL COMPORTE UNE NOUVELLE VERSION DE PRESQUE TOUS LES OUTILS. CEUX-CI SONT DEUX FOIS PLUS RAPIDES.LE FINDER EST MAINTENANT PLUS COMPLET ET AUSSI RAPIDE QUE CELUI DU MAC PLUS.SI ON AJOUTE UNE TRANSWARP..L'ACCES AUX DISQUES DURS EST JUSQU'A 80 FOIS PLUS RAPIDE.IL EST EGALEMENT POSSIBLE D'UTILISER L'EXPRESS LOAD QUI EST EN FAIT UN FAST BOOT TOUT A FAIT ETONNANT. MAIS CECI N'EST QUE LA PARTIE VISIBLE DE L'ICEBERG. EN FAIT APPLE A TRANSFORME LE GS EN UN MAC.EN EFFET,DEUX NOUVEAUX OUTILS FONT LEUR APPARITION.LE TEXT EDIT ET LE RESSOURCE MANAGER.MAINTENANT IL N'Y A PLUS LA MOINDRE DIFFICULTE POUR ADAPTER DES PROGRAMMES MAC SUR GS. IL SUFFIT DE PORTER LE CODE SOURCE EN C OU PASCAL ET DE MODIFIER LES RESSOURCES. LE SYSTEME 5.0 EST COMPOSE DE 7 DISQUETTES. ELLES CONTIENNENT UNE MISE A JOUR DE APW AINSI QUE DE NOUVEAUX CDA OU INIT QUI RENDENT LA PROGRAMATION BEAUCOUP PLUS FACILE,COMME GS BUGS, LITTLE RES,ETC. ON DEVRAIT DONC VOIR APPARAITRE DES LE MOIS D'AOUT,SORTIE OFFICIELLE DE LA VERSION 5.0 DU SYSTEME,DE NOUVEAUX PROGRAMMES TIRANT PARTI DE CELUI-CI,DONT CERTAINS ETAIENT DEJA EN DEMONSTRATION. APPLE PRESENTAIT EGALEMENT SA CARTE D'INCRUSTATION VIDEO(EN NTSC UNIQUEMENT) QUI PERMET DE MELANGER UNE SOURCE VIDEO AVEC L'IMAGE DU GS. CERTAINS PROGRAMMES L'UTILISANT ETAIENT EN DEMO.LE MEILLEUR ETAIT UNE NOUVELLE VERSION D'INFORMATION LAB. QUI CONTROLAIT UN CD-V.IMPRESSIONANT! APPLE ESPERE QUE CETTE CARTE SOIT UN IMPORTANT ARGUMENT DE VENTE POUR LES ECOLES FACE AUX PC. UN AUTRE ARGUMENT BIEN PLUS IMPORTANT A MON AVIS EST LE FAIT QUE APPLETALK EST MAINTENANT TOUT A FAIT AU POINT SUR LE SYSTEME 5.0 ET QU'IL EST MAINTENANT TRES FACILE ET PEU CHER DE FAIRE DES RESEAUX DE GS. PARMI LES AUTRES NOUVEAUTES,JE VAIS VOUS PARLER D'ABORD DE BRITANNICA SOFTWARE QUI PRESENTAIT QUATRE NOUVEAUX PROGRAMMES POUR GS.IL S'AGIT DE REVOLUTION 76, GREAT WESTERN SHOOT OUT,NORELY GOLF (NOM PROVISOIRE) ET DE MON LASER FORCE. GREAT WESTERN SHOOT OUT AYANT ETE FAUCHE A L'APPLEFEST,VOUS DEVRIEZ BIENTOT L'AVoIR MAIS IL S'AGIT D'UNE VERSION NON TERMINEE.CE PROGRAMME A ETE FAIT PAR LES AUTEURS D'ALIEN MIND ET EST ASSEZ SYMPA. NO RELY GOLF EST UNE ESPECE DE ZANY GOLF AVEC MOINS D'ANIMATIONS MAIS AVEC DE TRES BEAUX GRAPHISMES ET 18 TROUS. TRES AMUSANT. REVOLUTION 76,EST UNE SIMULATION DE LA GUERRE D'INDEPENDANCE DES USA.IL EST PLUTOT DESTINE A L'EDUCATION MAIS LES GRAPHISMES SONT CHOUETTES ET LE JEU EST INTERESSANT(MEME S'IL EST ENCORE UN PEU JE VOUS AI DEJA PARLE DE LASER FORCE,MON JEU DE LODE RUNNER EN 3D. BRODERBUND PRESENTAIT DEUX NOUVEAUX PROGRAMMES EDUCATIFS:GEOMETRY ET WHERE THE WORLD IS CARMEN SAN DIEGO GS. DE NOUVEAUX JEUX DEVRAIENT ETRE PRESENTES SEPTEMBRE. BYTE-WORKS PRESENTAIT SON NOUVEAU COMPILATEUR C,DISPONIBLE DANS TROIS SEMAINES. BEAUCOUP PLUS RAPIDE QUE L'APWC,IL EST EGALEMENT PLUS PERFORMANT AU NIVEAU DU CODE GENERE. UN MUST. ROGER WAGNER PRESENTAIT HYPER-STUDIO ET APPLE ANONCAIT HYPERCARD,ALORS QUE BRITANNICA ANNONCAIT GS-AUTEUR,UN HYPERCARD FRANCAIS POUR GS AUSSI.CONCLUSION, NOUS ALLONS AVOIR LE CHOIX DE CE COTE. CLARIS,ABSENT DEVRAIT PRESENTER EN SEPTEMBRE UNE NOUVELLE VERSION DE APPLEWORK GS SOUS SYSTEME 5.0. A SUIVRE. SIERRA PRESENTAIT GOLDRUSH ET POLICE QUEST II...ACCOLADE PRESENTAIT UNE PRE-VERSION DE ST DRIVE II. DES PIRATES ONT SIMULE UNE BAGARRE, ET PROFITANT DE LA CONFUSION ONT VOLE LA DISQUETTE. JE CROIS QU'ON NE PEUT QUE REPROUVER CES METHODES.LORSQUE VOUS VERREZ UNE COPIE DE CE SOFT,PENSEZ-Y.LES EDITEURS ET LES AUTEURS NOUS AVONS DE GROS PROBLEMES AUX USA EN CE MOMMENT.SI ON NOUS VOLE NOTRE TRAVAIL AVANT D'EN AVOIR TIRE DE QUOI RENTABILISER NOTRE TRAVAIL, NOUS ALLONS A LA CATASTROPHE ET NOUS DEVRONS TOUS JOUER AVEC DES NINTENDO. JE VOUS ASSURE QUE NI LES AUTEURS NI LES EDITEUR SONT RICHES.NOUS NE ROULONS PAS EN PORSCHE ET NOUS NE VIVONS PAS NON PLUS DANS DES CHATEAUX.SI NOUS FAISONS CE TRAVAIL C'EST UNIQUEMENT PAR PASSION,SINON NOUS SERIONS EN TRAIN DE TRAVAILLER POUR DES BANQUES. PENSEZ-Y,ET SI VOUS VOYEZ UN SOFT QUI VOUS PLAIT OU SI VOUS VOYEZ QUE VOUS JOUEZ BEAUCOUP AVEC UNE COPIE PIRATE,SOYEZ HONNETE,ACHETEZ LE. VOILA,C'ETAIT MON QUART D'HEURE MORALISA TEUR. EN VRAC,QUELQUES AUTRES NOUVEAUTES, BALANCE OF POWER 1990,EDITEUR DE FONTES DE BEAGLE BROS, INSTRUMENT DESIGNER DE PYWARE, ZIP CHIP GS 8MHZ ANNONCE POUR SEPTEMBRE, DISPARITION DE A+ QUI FAIT MAINTENANT PARTIE DE INCIDER,FILE UTILITIES I ET II DE 360 MICROSYSTEMES, GENESYS ET FONTZ DE SIMPLE SOFTWARE SYSTEMS INTERNATIONAL, ETC. POUR FINIR, JE CROIS QU CET APPLEFEST AURA ETE UNE TRANSITION.A PARTIR DE MAINTENANT IL FAUDRA NOUS HABITUER A AVOIR UN GS PLUS SERIEUX.NOUS VERRONS PROBABLEMENT MOINS DE JEUX POUR LE GS,MAIS NOUS DEVRIONS EN CONTREPARTIE VOIR APPARAITRE DES UTILITAIRES DE PLUS EN PLUS NOMBREUX ET PUISSANTS. EN ESPERANT QUE CETTE CONTRIB NE SOIT PAS EFFACEE TROP VITE, AMITIES 007 Art.perspective Dans le fatras d'annonces concernant le futur Apple IIGS, un coin du voile a t lev par la compagnie Apple elle-mme, la disponibilit d'un nouveau sytme d'exploitation dans le courant de l'automne, GS.OS 5.0, systme augmentant considrablement la vitesse de la machine, certaines oprations subissant une acclration d'un facteur de 5 10. Voir tourner ce nouveau systme associ une Transwarp GS est sidrant, c'est plus rapide qu'un Mac Plus. Cette annonce prmature est assez sukmnopqrprenante. Il est peu ordinaire qu'Apple prsente un produit non termin, sans date de sortie prcise. Il faut certainement voir l, une rponse l'inqui- tude du monde de l'Apple II et une rponse aux rumeurs colportes par MacWeek d'un abandon l'anne prochaine de la gamme II. Les dirigeants d'Apple semblent modifier leur attitude vis vis de nos ordinateurs prfrs et redcouvrir la gamme II qu'ils semblaient laisser pricliter. J.L. Gasse l'a confirm dans ses propos dont voici un extrait, extrait rapport par A2 Central de Juin 89: " L'Apple II continue tre une part importante de notre travail. Des produits comme l'Apple IIGS systme software 5.0 et la carte Apple II Vido Overlay prsente le mois dernier dmontrent l'engagement continu d'Apple pour ajouter des amliorations qui apportent fonctionnalit et richesse la famille Apple II." "Nous reconnaissons que nos clients ont diffrents besoins et diffrentes motivations pour l'ordinateur qu'ils choisissent et nous sommes heureux de pouvoir leur offrir une gamme de plus en plus tendue." Si la direction d'Apple parat avoir une attitude correcte, on ne peut pas en dire autant de ceux qui sont censs vendre l'Apple II. Si les vendeurs Apple avaient une vision de la machine semblable l'image qu'ils se font du Mac, tout serait rsolu. C'est aux responsables du Marketing de faire ce travail. En France et en partie aux Etats Unis, ce sont les adeptes de l'Apple II qui soutiennent la machine avec l'aide d'une poigne d'employs d'Apple, alors que toute l'entreprise devrait s'impliquer. Les revendeurs ne feront leur travail de promotion et de soutien de l'Apple IIGS que s'ils sentent une vritable volont de la part du fabricant lui-mme. Tout ne devient donc pas rose, mais il y a progrs. Le march du Mac n'est pas celui de l'Apple II et le Mac ne se substitue pas l'Apple II. C'est Apple de savoir si toute une part du march, part dont nous faisons partie, doit tre abandonne ou non. En France, cet abandon commenc depuis quelques annes a peut tre t stopp au dbut de l'anne, par la cration d'un Team Apple II. Mais en plus de la rapparition d'un support rel, l'esprit devrait tre la reconqute. Cet esprit reviendra-t-il chez Apple France ? Nul ne le sait, mais dans le numro 70 de l'hebdomadaire envoy par Apple aux concessionnaires, prs de 3 pages sont consacres l'Apple IIGS et la vente de 700 systmes GS.OS cite comme chiffre de la semaine, le tout assorti d'un crit de S. Sisombat dont voici un exD.s ART.EDITORIALszART.GOLD.AND.OSs ART.ASTUCESs ART.TOOLBOX4s< ART.PASCALTART.ASS4Tz ART.DIVERSTART.TRADUCTIONSTART.BLUT< ART.ERREURS5 ART.ANIMATION5z ART.Y.KOENIG5 ART.MOUSEGS5 ART.DERNIERES5< ART.COURRIER ART.ANNONCESzART.GRAPHWRITERART.PERSPECTIVE< ART.APPLEFESTArt.Gold.and.OS UN GAG Soit un GS 1 mga sur lequel PaintGold tourne sans problme sous P16. Vous essayez de l'utiliser sous GS.OS. Magnifique plantage en moniteur. Of course, GS.OS installant des drivers en RAM, il n'y a plus assez de place. Bon, on dshabille le systme: plus de PANEL.SETUP, un tableau de bord en anglais, a marche encore, quelques accessoires en moins pour faire bonne mesure et on repart. OUF, a marche. Bon, rflchissons. En librant 256 k, a fonctionne, donc, si je mets une suvwxyz carte 1,5 mga, je vais pouvoir retrouver tous mes outils habituels. Que nenni, j'ai essay et a plante tout pareil. Y'a comme un problme. Un petit tour en Ram et tout s'explique. Gold essaie de se faire attribuer par le Memory Manager un bloc de $0A0000 octets (10 bancs complets). Si NEWHANDLE retourne une erreur, le numro de dpart du banc est incrment jusqu' ce que l'on retourne sans erreur. Bravo, mais, les auteurs de Gold ne savaient pas qu'on pouvait installer des cartes de plus d'un mga (pourtant les docs initiales du GS mentionnaient 4 mgas possibles devenus depuis 8 mgas). Aussi, trs consciencieusement, ils ont introduit un test de scurit. Avec 1 mga d'extension, la ram se prsente en 2 blocs: banc 0 17 et bancs E0/E1. Ces derniers ne sont pas pour nous. Si on arrive au banc 8, 8+10=18. C'est plus grand que 17 donc inutile d'aller plus loin. Et, oui, avec 8 mgas sur la carte d'extension, GOLD va planter par manque de mmoire. Heureusement, nous savons zaper. Cherchons la chaine C9 08 00 D0 CE dans le fichier PAINWORKS.GOLD. Chez moi, c'est bloc absolu $4A0, 256me bloc du fichier, octet $1FFDF. Il suffit de remplacer le $08 par $10 ou $76 (128-10) et le problme est rgl. Je vous garantis que sur un GS 1mga le banc 118 ne vous sera jamais allou. Autre dtail utile. PAINTGOLD comme PAINT savent lire des images stockes sous forme de fichiers BIN 65 blocs ou type $C1 de 65 ou 127 blocs. Sous P16, pas de problme. Sous GS.OS, a se corse car si votre fichier comporte un bloc garni de zros, il sera de type sparse ( le bloc ne sera pas sur le disque) et apparaitra comme comportant autre chose que 65/127 blocs et de ce fait PAINT ou GOLD refuseront de le lire. Deux solutions s'offrent nous. Il nous faut modifier PAINT ou GOLD pour nous affranchir du test sur la taille. Dans le cas de GOLD, une rvision du programme n'est pas impossible mais pour PAINT il faut se dbrouiller. PAINT 1.2: chercher la squence $C9 41 00 F0 dans PAINT.SYS16. Moi je la trouve bloc absolu $340, 22me bloc du fichier octet $2A4D. en dsassemblage a donne typeBINou$C1 cmp #$0041 beq cbon cmp #$007F bne pasPourMoi bra cbon modifions le dernier test en cmp #$007F+1 bcs pasPourMoi bra cbon soit: $53: 80 00 B0 Dans PAINTWORKS.GOLD mme recherche Bloc absolu $415, 117me bloc du fichier, octet $E8C5 on retrouve les mme tests. Mme punition, mme motif: $CB: 80 00 B0 Bien entendu, la fentre de slection StandardFile risque d'tre encombre par des fichiers qui ne nous concernent pas mais nous n'avons pas le choix (sinon ranger nos images dans des dossiers spcifiques). KOENIG YVAN 21 Avril 89 Art.Editorial Vos demandes d'informations particulires et de domaines publics sont de plus en plus nombreux. Le bureau ne manque pas d'activits et aimerait rappeler une chose fondamentale: NOUS NE SOMMES PAS UNE REVUE MAIS UN CLUB D'AMATEURS. Nous rpondons dans la mesure de nos moyens et de nos disponibilits en temps. BONNES VACANCES A TOUS Art.Divers Deux dossiers sont prsents sur la disquette, F1race et Utilitaires. F1RACE ------ Ce dossier comprend: F1.RACE -> Un jeu de course de voitures de formule 1 comme son nom l'indique. RACE.Doc -> La documentation en anglais F1.Race est un shareware. Il vaut $15. Son auteur : Joel A. QUEJADA 4320 South Congress Ave. # 4209 AUSTIN, TEXAS 78745 UTILITAIRES ----------- Dans ce dossier on va trouver trois parties diffrentes, |~ Un sous-dossier nomm Nifty.list qui contient: NIFTYLIST.CDA -> un cda mettre dans le dossier Desk.Access du dossier systme de votre disquette systme. Il est beaucoup plus performant que Memory Peeker. NLIST.DESC -> la documentation en anglais sous forme de fichier texte NLIST.REV -> La mise jour. USE.2.READ.DOCS -> Utilitaire capable de lire les textes ASCII et les sources Merlin avec l'option Reset High Bits (Dj dans GS.Infos 1) Un sous dossier nomm DOGPAW qui contient: DDOGPAWEDu' в' '&DOGPAW @+DOGPAW.DOCS,ввFINDER.DATAɷ>вв eNstieQBLM`ɖ᭳ߍQQsQtQ ǜQLENs#< \A= _ATA LENn@ Tit 3N mQL[N RA8BSAfBgBRAuQmSAuQBH /ɿȱ AȘ AL@ AB TmSA`ei`T?QABRAC ,BLM`جӠĠآɠ)Qʽɠ)Q5STUPQLMQɿ QLC8LQQQQQQQQQQQQQsQQ{QQ4QQQQFQQLBQQ`Ȣʈ=QQɠɍvɠ BɥUQQQɫQQ Qɭɤ0Qɍ! KQQQɍ ) KQ ЈQQ BQ8QQQQ1 !Q1Q_a*b*^+`   ѭ íĭӭխͭɠŭɠ"̭ɠ8`% X{% [ f%έ%/Y H fh LK% fLV% %L)% "d%L X{% [ f(L$%  %  { % [LV%`,ޭ䠺󠪪 , Ӡ , Ӡ Ġ, 젺 ,㠺Ƞ󺠠 ޠ젠㠽󠠠젽ՠ嬠ɠ𮠠󠤱ɠ 宠ﬠ 󮠠󺠠묠 ЮϮ ̠ՠӠŠϠΠ^L 'CΩzϭ, itqQmΥm n In Jh+ L,LJ+ɀL*H mh +a*.,bLJ+,a++ ,a*Lc*a*b*08I +a*L *8I +a*L *+L,Ɋ +L *ɕ ,L *ɋ +L *Ɉ ,L *Lc*L+ɠ+,aL, ,Lc*Ɂ+L,ɛ:Lc+ɍ: 8'Lc*L.8`H7hLc*h)L++,aL, ,Lc*,a++L, n,,,',/ . `    -` ` n,',, , `    ,` ` n` n` { % [{Ob*Lu,:+  f0POΩ f0 f:b*`Ω :b*` nΩzϩ  '+OΩb* , -    ,L, ҩ , +L\*L * m   { % [`8    { % [`iQΐ`i`Ωzϭ'O n- -4`PΠ8ȱɠ )Ȉ *- w ^+``...".m.....ʈ/..`. )> *-L. ->L.`..)//蹀.ʎ` pp 7f ]g{ pp{`4 7-,70`:LW/0 *-L.>. *-:.@===?844 ->> . 9.b*a*Lh8`@]] ]` }/ 2 q3 3 hL 2!{% [ pp ` / 2 q3 3 h / 2L>L 2!{% [ pp ` 90 2 q3: O2y ld*V^yW^ 3 3 h̭ 90 2 W2LAL 2!{% [ pp ` 0 2 q3: O2y ld*V^yW^ 3 3 h̭ 0 2 W2LgVL 2 {% [ pp` 0 2 q3 3 hLo?L 2{% [ pp ɠ` v1 2 q3: O2y ld*V^yW^ 3 3 h̭ v1 2 W2L!4L 2{% [ ppɠ`5 6 7 2 2 q3O 2y d?V^yW^ 3y===y? 3 h 2 2 2LG:L 2{% [ ppɠ`y d3 T3 ppy +d` 43 ppy +d` 43 pp L2y d3 T3 ppy +d` X{% [ f f{% [N f`{% [ D3`M {`{% [ D3`yyy`y ldV^yW^ 3`F^ <^` 3 FD ^8`Y^` 3F8`G ^L3,b0`,a' c ppҠԠ`y===yy===y` )g X  4 3 Ng] n]L ] n] *- i.` =] n]ީ47L'5 73]4]5]1]2] ]LR4V^W^ <^LR4 " X pp Sd pp " X8=47 7 7LU4V^W^ <^LR4 K9L9= 7 7LU4 8 Sd= c7 pp 7 ] ] ]]@ ] ] \= 57L:5LR4L{6@1]2]5]3]4] ] =Lg4h]i]g]L]M]K]=LM6 !W] n]]=] ]L'5= ==i]k]j]ɀ 8j] k] R]L{6 8 R]Lg4N]O]| 6] L5Lg4 ] n]L7=R47@===? 7]]@]] ]ȩ.ȩn =Lr4@V^W^ <^ 8@V^W^ #^ pp Lr4Lg4] ]]=` ppȩȩΙ`8`)/ZQF`ȱ)`@ȹ@)/ /ș@@2m@@@22`j]k]h]i] R]L8p ~GwLpi47z}  gʽ ]ʽ ɮS====888 8=47L88tL8q ^88`8`]` _^ X^`j]k]*k]"k]Ɂk]L&9j]`8j]k]`V^W^ <^tvu ]^^^uvV^W^ <^O0^ ]D^)^^^V^^W^ <^%8Z^]^[^^^vu8`` c pp''렭庠 po pp亠 pou ]g XLU4=== )g X L:r:] ] ] \L 1]2]3]4]5] ]ߩ+ ; 3L]M]N]O]]]u]] ] 6]] n] i. NgL ] n]=LS;] ]]==] ] W;=] ] *-`j]k]h]i]g] R]=}$/m;;;L;;;L;;; ]L]M]N]O]K] 6]`.> -== ===@A B> ..===V^W^ <^L:3]4]5]1]2] ]L:|^ g^L: />L:h]i]g]L]M]K]=T^~^}^ɀ=L= E/E$]=] ]] n]L;L]M]La= Sd ppj]k]L= R]k]M] 6] =L==M]=== =8= =.==ɀ ==M] 6] =/= ppL; pp8`L: itr$== it=s$== its$===8====`] ]]= >ZWc^_^ X^}^m]^m^^L]M]N]O]K] 6] =` GL` )g]  ? 3 i. NgL *-` 7 Sd pp^^ ^ ppL? ppL? ]]]8%&??Ωzϩ+ @ 3ȩ] n]L pp ۠Ġݠ ]g] n] *-`] n]L@ 73]4]5]g]1]2] ]L/@L?" X pp Sd3{% [ pp亠 i"8 7L@L? 7L? aA7 8] ]L?]mj]]]mk]]]i] ]L?%?m m{ % @{% [ poL{% [ po? { % [ mA%L? Wk MmL?U` m@A )ߙ@ɯ8`P TSX^`_ a&@`= )g X nLxB|D C= D`] n]y\ pp/EL7B D/E cy\y ]^ ^LdBV^W^ #^ *-` 0E 3] n] i. NgL ====@A@ @LBi@Q@Q@.@`kC1]2]3]4]\5] ]y\LCkCbkC j]k]g]h]i] R]y\LC GL] n]y\LCLByy\ ^LCV^W^ <^y\LC=== 9.\|^ g^ U^ ]b^]] ] ]G^ \1]2]3]4]\K]5] ]y\`{ % {% [|D06 XqD{% [ lD|DL]D lDD{% [ Xq|DL]D XqD{% [ Xq { % [` f f`/E|^\\=\ it=s$\d\ itr$\\\ po\ pp쮮\\d pp/E`= pp` pp`^y\ 7 Sd pp By\LA By\LA Sd ppLE\\L]M] Sd pp pp 箮\\\\l]m]|D F\]] ]\l]m]}D~DL]M]\\\\\\ S\\\ kU TLCF8\ \ TLA\\\\\\\\\\\\\\\\ O` -O >O MR R\ O\\LF oF\ I;HH?H@H\\>H=HD=H\\>H\\ O\\ >O?H\@H\ O?H@H=H>HL}G?Hr\@Hs\ WK 5M &K u\ȹ\ u O\ȱ\ u\\L;G\\\\`IIIIIIIIIIWI\I\ O\I\I its$t\I\ mtr$I\ II itr$IIIIIL[HIiIIiIIIIIIHI\I\ O\͡I\͠I\\I\I\ -OIIILHILAHIIIIII`I\I\ O it]q\I\\\ -OIILTI\\ J\\`LbJ\\ɐ \`\\`\\Z J\\\͌\\͋\\\\LI\\\\\\\`\\\\`Ή\\`\\\\\\\`\\`8l] m]- C\g]h]i]j] k] R]`y\ Jl]m]l]Hh`Ωϭl]\m]\\5m\\\\\\8\ \ LJΩ`\\\\\\\` R R\\L7Kr\Ks\KKκKιKKκKιKNKnKK`r\l\s\m\l\m\l\Kj\Kk\ KKκKιKLKj\Lk\LL.LLLj\\k\\ bO\\\\m\͸Ll\ͷL`?L\L\ bO\n\\o\\\ bO\p\\q\ LLLL\L\ bO\p\\q\\n\\o\ L`L\L\ bOj\\k\\ OL\L\\\\\ OLj\Lk\LKn\\o\\ O\\\\p\\q\\ O\͖\\͕\>:n\\o\\ R\\\\p\\q\\ R\Ϳ\\;\8``r\Ns\NNNNNLN\\ bO\N\NNNNN\N\ bO\\ O N\\ bO\N\NN\N\N\N\ MRN\N\ RN\N\ O\\\\N\N\ O\m\\\m\\N\N\ -ON\N\ R\p\\q\N\N\ R\n\\o\ Rn\o\n\\o\\N\N\ >O\\N\N\ ONN NLKM\\ bO\\\\`Nl\Nm\l\m\l\k\j\LK\\\\\\\\.\` O\ȱ\` N\i\i ` O\ȹ\` OO\ȹ\` N\i\i ` sO\ȱ\` N\i\iz ` sO\ȹ\`RȱR uRȱR u&R%RR\ R\ )R\!R\"R ^R\#R\$R"R!RLP$R#RLPR\ R\R\ R\\8R N\n\\-\\\-\\R\ R\ RRR %R&R u%Rȹ%R`"R!RLLQ\\R \.\\I-\\\I-\\ u R u!Rȹ!R8ƙRiȭRi O'Rȱ'R u R u(R'R u'Rȹ'R`$R#RL R\\R \.\\ \\\ \\ u R u#Rȹ#R8ƙRiȭRi O'Rȱ'R u R u(R'R u'Rȹ'R` u%Rȹ%R` :R\ȱ\` N\i\i ` :R\ȹ\` oR\ȱ\` N\i\i ` oR\ȹ\` R\`\i\i} ` R\` OO\ȱ\` R\ȹ\` N\i\i ` R\ȱ\`o\q\n\p\`p\n\q\o\`y\v wT\\ wT EU\\ vTuTLgS8\uT\vTuTvT wT\qT\rTtTsTtTvTsTuTTqT\rT\ )R\mT\nT ^R\oT\pTnTmTmTnT8mTmTnTnTLT`8\mTmT\nTnTpToToTpT8oToTpTpTL=T8\oToT\pTpTmTnT wToTpT wTqTrTqTsTtTLS\\ #U\ \LT T( \\ #U\ \LT`\\ #U\ \LT`\M] itr$\\\\\ 6]y\`}D~D~D}D }D~D C`= T쀮LT T|\{\}\\~\\}\*}\{\\` 4V}\ N\n\8\}\\LU\ 4V8}\\}\\\\}\LU\\` I\\\\ \\\\\\ R\\\\ R\\LxU\\\\8}\ \.\{\ \{\|\ \|\`= )g X LLV|D C=` ppLV pp =8`] n] *-` V 3] n] i. NgL 71]2]3]4]\5] ]LV Sdg]h]i]j] k]\|D Xy\LV\LV W\\y\ \\ tXL\W8\ \ X\\\\v ^LV\ \\\` Wy\3\\ɐ\\` Wy\\\\`\\\\`rXsX\\ [y\LqX\\\N\rX\\)\ i[\rX\sXsXrXsX8rXrXsXsXsXrX \\rX\`y\/\\\m\\\\ \! C\M]\\ 6]`====== 9.`\y\\\\c\\ \ [y\L9[\\\\\\vu ^y\\\L9[ [y\L9[\\\\ [y\L9[\)LpYʬ =LZV^W^ <^ U^ ] Xb^] ] ]]G^ \1]2]3]4]5] ]y\L9[\K]L]M]\\ pp Sd= ppLoZ pp箮 [y\L9[\\\\\L:[\\L:[\0L:[LZ\0L:[\\\\ G[\ G[\\\\E[E[ [y\G\\\\\\\ G[ [y\%\\\\\\\ G[\\E[б`y\x ^`\\ \|\}`\z\{`\\ |\}\`z\{\`΍\\m]\l]`\\`΍\\m]\l] \L[\\Ϡ΍\\m]\l]\\` CΩϩ\\ ,\g] R]l]m]l]`=8==ͪ8=ͩ8 =88i] its$=8=` e\ ^C ]L^` ^ȍC 0]L^` ^ˍC J]L^` ^ʍC f]L^` ^̍C ̇]L^` ^C ]L^` ^ύC ]L^` ^΍C ]L^` ^ƍC ]L^` ^ǍC ]L^` ^ōC ^L^`^ ^ÍCU^ U^L^` ^čC U^ U^L^` ^эC {^L^` ^C ^L^`hhhAhBHAHHH`^LL^^L^^^8```{^%^ _ i` c{`% [^p'z?H pp̠Ҡh L_ pp ɠҠ^ ppB A ppC {̅`^0^ L_ { pp ]g $`^{^% [8`{`% [^{% If ^^`{`% [^%0H fh fLT` {^^`{`% [ f # ^{ 9{ ^^{# f`+@DEFGHIN%'ɯϠ(.BCJKLMPQRӠSU֮î®VWZqɠrstɠuvwxy٠z{ d d0$ d0d`8Hh`` Sd ɯ/ȑ 芑`ȱ ) `d d dLddd dLd d d8``H8{  ,d h`,d0 {Ld{Ld{  7f g g 7f{xɛnɈF.ɕJ,d0ɉ a0LeLfɍPM@ e; ȑLd -{ {Ld {LdM Ifɠ{Ld cLd`,d  Lem {{{HM8M{22 h{` Ifɠ{ Ifɠ ɯ{Ld{ Ifɯ{ȑ )۰ɺɮ`8`{ Lke{{ Ifɯ{LdHH{ VfI fhh`2{ Vf2`(,*E jUȘJ(,T*,  @`H)0jhH, I@,fI@,H*E JUȘJh(T*h`(h`   Lf  ` f N O{ { O{ {N f`{ % [ f "L!# X` "#P!`H  gɀ 2Lg mh 22`H % g 2Lg mh 22``H  mh 0`x hX`H 2ȅ#  h H `H I ` x hxxx h h hX`H HHxh8 hX mhhh`H %HHx hh8 Xhh` `H  hhh h`L 7ik jf X Bj^ i" iM]] ] m  , gL * ,0 pp ۠ݠ ]g"`] n]"8`+^ΩzϩV^W^1]2]3]4]h]i]+j]k]:F^ <^ FD ^8`Y^DLi`% & k Wk Mm&] n]` pp&&堠󠠠 pp))䠠蠠 ` 1m KoN'( l0^ ]C^)^^^V^^W^ <^$]^^^D l8Z^]^H[^^^h9 l Q*R*vh+`   ѭ íĭխͭɠŭɠ"̭ɠ8`% X{% [ f%Ξ%/Y H gfh L<% gfLG% %L% c%L X{% [ f(L%  %  { % [LG%`,ޭ䠺󠪪 , Ӡ , Ӡ Ġ, 젺 ,㠺Ƞ󺠠 ޠ젠㠽󠠠젽ՠ嬠ɠ𮠠󠤱ɠ 宠ﬠ 󮠠󺠠묠 ЮϮ ̠ՠӠŠϠΠvhL 'CΩzϭ, $tqQmΥm b 3b g+ Lo,L:+ɀL*H h +Q*.,bL:+,a++ ,Q*LS*Q*R*08I +Q*L)8I +Q*L)+Lo,Ɋ +L)ɕ +L)ɋ +L)Ɉ +L)LS*L+ɠ+,aLo, ,LS*Ɂ+Lo,ɛ:LK+ɍ:8L.`H7hLS*h)Lt++,aLo, ,LS*,a++Lo, b,,,',/ . `    ,` ` b,',, , `    ,` ` b` b` { % [{OR*L],:+  gf0POΩ gf0 gf:R*`Ω :R*` bΩzϩ  '+OΩR* , -    ,L, ҩ , +LL*L) m   { % [`8    { % [`iQΐ`i`Ωzϭ'O V- -4`PΠ8ȱɠ )Ȉ - w Vh+``---"-m-----ʈ/--`. )> -L- ->L-`--)//蹀-ʎ` }pIp e g{ }pIp{`4 -,70`:L?/0 -L.>. -:.@===?844 ->> - !.R*Q*La\8`@nn n` e/ %2 2 n3 a\L w2!{% [ }pIp ` / 1 2 n3 a\ / 1L[>L w2!{% [ }pIp ` !0 1 2: 1y d*oyo 3 n3 a\̭ !0 1 1LUL w2 {% [ }pIp` k0 1 2 n3 a\L>L w2{% [ }pIp ɠ` 0 1 2: 1y d*oyo 3 n3 a\̭ 0 1 1L3L w2{% [ }pIpɠ`5 6 7 1 1 2O @2y )d?oyo (3y===y? n3 a\ 1 1 H2L9L w2{% [ }pIpɠ`y 2 2 }pIpy c` 2 }pIpy c` 2 }pIp L2y 2 2 }pIpy c` X{% [ f gf{% [N gf`{% [ 2`M {`{% [ 2`yyy`y doyo 3`Fuh n` 3 FD Vh8`o` 3F8`G VhL13,b0`,a' c }pIpҠԠ`y===yy===y` f X  3 ;3 fCn )nL Cn )n - Q.` E=Cn )nީ6L4 7mmmmm mL3oo nL3 " X }pIp c }pIp " X 8]=6 6 `7L3oo nL3 8LJ9]= 6 `7L3 %8 c]= 6 }pIp 7 m m mm@mm m]= 6L4L3L5@mmmmm m E=L3#n$n"nnnn]=L5 VCn )nne=n qnL4]= j=]=$n&n%nɀ 8%n &n nL5 ^8 nL3 n n| m Le5L3 Cn )nL6]=R6@===? 7YnZn@[n\n Dnȩ.ȩn E=L3@oo n @8@oo n }pIp L3L3n ]nne=` }pIpȩȩΙ`8`)/ZQF`ȱ)`@ȹ@)/ /ș@@2m@@@22`%n&n#n$n nL8p ~GwLpi6z}  gʽ ]ʽ ɮS]=a=a=]=#8$8!8 "8]=6L8 8tL8q Vh8 8` 8`m` o o`%n&n*&n"&nɁ&nL8%n`8%n&n`oo ntvu oouvoo nO0n nDn)nnn͍ono n%8oooovu8`` c }pIp''렭庠 }pio }pIp亠 }piou g XL3=== f X Lu:9mmm mL mmmmm mߩ+ _; ;3nn n nnnunn qn mCn )n Q. fL Cn )n]=L:n ]nn]=e=n qn :]=n qn -`%n&n#n$n"n na=}$/m^;^;^;L;^;^;L;^;^; qnnn n nn m`.> -]=]= ===@A -B> -.===oo nLu:mmmmm mLu:7o "oLu: =Lu:#n$n"nnnn]=T:o9o8oɀ]=L< ED$ne=n qnCn )nL_;nnL< c }pIp%n&nL+= n&nn m E=LZ=]=na=d=e= j=8^= _=._=^=ɀ ^=]=n m E=/]= }pIpL: }pIp8`Lu: $tr$b=^= $tr$^=^= $ts$b=^=^=8^=^=_=_=`n ]nne= <>ZWoo o8omomonn n nn m E=` GL` fCn  > ;3 Q. fL -` 7 c }pIpPoQo ;o }pIpL> }pIpL> nnn8%&D?E?Ωzϩ+ }? ;3ȩCn )nL }pIp ۠Ġݠ gCn )n -`Cn )nL@ 7mmm"nmm mL?L`?" X }pIp c3{% [ }pIp亠 ]" 8 `7L$@L`? `7LF? @7 ^8n ]nL9?nm%nnnm&nnnin qnL9?%D?m m{ % @{% [ }pioL{% [ }pioD? { % [ @%Lt? _ 3aLt?U` m@A )ߙ@ɯ8`P TSX^`_ a&@`]= f X nLAC mC]= C`Cn )n[ }pIpDLA CD c[ymOo ;oLAoo n -` D ;3Cn )n Q. fL ====@A@ @LABi@Q@Q@.@`BmmmmM\m m[LlCBbB %n&n"n#n$n n[LlC GLCn )n[LlCLrBy[ VhLlCoo n[LlC=== !.M\7o "o omommmmGuh mmmmmN\nm m[`{ % {% [C06 qD{% [ CCLC CD{% [ qCLC qD{% [ q { % [` gf gf`D7o*\.\a=.\ $tr$/\d/\ $tr$/\+\/\ }pio/\ }pIp쮮0\/\d }pIpD`]= }pIp` }pIp`vh[ 7 c }pIp B[LuA QB[LuA c }pIpLDEM\N\nn c }pIp }pIp 箮*\[\3\'n(nC LFM\nn qn3\'n(nCCnn\\\\\\ R\\\ T ETLE8\ \ lTLuA:\;\ \\\\\\\\\\;\:\:\;\ N` N N Q Q;\ N:\;\LF E\ IGGGG GGG:\G;\ N\ \ \\ NGGЩ[[[[ }pIp 箮 GN[n[GGGG\\GGDG:\\G;\\ N \\ NG:\G;\ NGGGGLFG[G[ J L J {u)\ȹ)\ {u O4\ȱ4\ qu5\4\LF%\&\#\$\`II IIIIIII IW I:\I;\ N \I\I $ts$[I4\ (tcr$I4\ II $tBr$III IILGIiIIiIII II IH I:\I;\ N\I \I \\I \I\ NI IILVHILGIII II I` I:\I;\ N $tq \I \ \\ N IILH\\ J\\`LI\\ɐ \`\\`\\Z J\\\\\\\\\LlI\\\\\\\`\\\\`\\`\\\\\\\`\\`8'n (n- mCM\"n#n$n%n &n n`[ OJ'n(n'nHh`Ωϭ'n>\(n?\3\5m[[\>\?\>\8>\ ?\ LhJΩ`:\;\ \ \ \;\:\` BR &R:\;\LJ[1K[2K1K2K1K1K2K1KN2Kn1K2K`[[[[[[[1K[2K[ 3K1K2K1KLJ[/L[0L/L.0L/L0L[:\[;\ N\8\\9\[0L[/L`?/L:\0L;\ N\[\[:\;\ N\[\[ 1L/L0L/L:\0L;\ N\[\[8\[9\[ 1L`/L:\0L;\ N[:\[;\ N/L:\0L;\8\\9\\ N/L[0L[L?K[:\[;\ N \6\\7\[:\[;\ N7\\6\ \>:[:\[;\ 1R\6\\7\[:\[;\ 1R\7\\6\8``[[N[\N]N^N\N[NL!N;\:\ N\_N\`N[N\N[N[N:\\N;\ N;\:\ N 9N;\:\ N\aN\bN]N:\^N;\_N\`N\ QaN\bN\ Q_N:\`N;\ N \4\\5\aN:\bN;\ N \m4\ \\m5\\]N:\^N;\ NaN:\bN;\ 1R\[\[_N:\`N;\ 1R\[\[ wR[[[\[\]N:\^N;\ N;\:\]N\^N\ N]N^N 9NLL;\:\ N\)\\*\`[N[\N[[[[[[L3K:\<\;\=\<\=\<\<\.=\` N \ȱ \` cN<\i=\i ` N \ȹ \` N\ȹ\` cN<\i=\i ` N\ȱ\` cN<\i=\iz ` N\ȹ\`QȱQ quQȱQ quQQQ:\Q;\ Q\Q\Q Q\Q\QQQLPQQLPQ:\Q;\Q \ &R \ \8Q N \n \!\- \ \"\- \ \Q:\Q;\ BR͖Q͕Q QQ {uQȹQ`QQLP4\5\Q 4\.5\4\I-!\!\5\I-"\"\ {u Q {uQȹQ8ƙQiȭQi OQȱQ qu Q quQQ {uQȹQ`QQLQ4\5\Q 4\.5\!\ 4\!\"\ 5\"\ {u Q {uQȹQ8ƙQiȭQi OQȱQ qu Q quQQ {uQȹQ` {uQȹQ` Q\ȱ\` cN<\i=\i ` Q\ȹ\` Q\ȱ\` cN<\i=\i ` Q\ȹ\` R \`:\i;\i} ` R \` N\ȱ\` SR \ȹ \` cN<\i=\i ` SR \ȱ \`[[[[`[[[[`[v S[\ S T*\)\ SSLR8)\S*\SSS S)\S*\SSSSSSSTS:\S;\ Q\S\S Q\S\SSSSS8SSSSLxS`8)\SS*\SSSSSS8SSSSLS8)\SS*\SSSS SSS SSSSSSLS\\ T\ \LT lT( \\ T\ \LlT`\\ T\ \LlT`\n $tBr$/\\/\\\ m[`CCCC CC mC`]= ET쀮LET ET[[[&\[%\[*[[\` U[ N(\n'\8%\[%\LU%\ U8[%\[$\#\%\[LU\\` I#\$\$\#\ #\$\#\:\$\;\ fR \'\ \(\ R \%\LT'\4\(\5\8[ 4\.5\[ 4\[[ 5\[`]= f X LLSVC mC]=` }pIpL7V }pIp ]=8`Cn )n -` gV ;3Cn )n Q. fL 7mmmmM\m mLV c"n#n$n%n &n?\C pX[LVL\LV WY\L\[ J\I\ WLV8\ \ X\P\[O\v VhLUU\ U\\J\` aW[3K\K\ɐ\J\` aW[K\U\J\`U\U\\J\`WWQ\Q\ [[LWH\#\Q\N#\WB\#\)D\ Z@\WA\WWWW8WWWWWW Y\K\WK\`[/\\I\m[[\\ \! mC\n\\ m`====== !.`L\[\[U\cQ\R\ z[ )[[LZF\S\G\T\T\S\vu Vh[V\W\LZ )[[LZF\O\G\P\ [[LZH\)LXʬ ]=LxYoo n om BXommmmGuh mmmmmm m[LZN\nnn\\ }pIp c]= }pIpLY }pIp箮 )[[LZF\V\G\W\W\LZW\V\LZW\0LZL1ZV\0LZ@\A\D\B\ ZD\ ZV\S\T\V\ZZ )[[GF\@\G\A\S\B\D\ Z )[[%F\@\G\A\S\B\D\ ZS\S\ͽZб`[x Vh`B\D\ @\|A\}`@\zA\{`B\D\ |@\}A\`z@\{A\`΍H\?\(n>\'n`>\?\`΍F\?\(n>\'n z[LT[>\?\Ϡ΍G\?\(n>\'n>\?\` mCΩϩ>\?\ ["n n'n(n'n`]=8`=_="8^=!8 ]= 8 8$n $ts$^=!8^=` \p w^k X ]c ]" f]Rnn n'; a  , agL) ,0 }pIp ۠ݠ g"`Cn )n"8`+vhΩzϩoommmm#n$n+%n&n:Fuh n FD Vh8`oDLS]`% & ^ _ 3a&Cn )n` }pIp&&堠󠠠 }pIp))䠠蠠 ` a K|cN'( `0n nCn)nnn͍ono n$ooD `8ooHooh9 ` "a`oom"nn m, n'##%n)nn$&`n)n)$ )nn0m#in qn n))%&` a) P΢Ƚb L9_  `Lf_bN ;0?_GL_ӳЯ͠թҍHHI ` `E ` ` ` H `h `< ` `)!+J!H) h****)  m !d8sc`H< `h  `(! `Kc󩭙 L`id ``H) `hJJJJ ɺi` `   ` a.8 `..`O`P ` "a% Ta`P -`++VR H }pIp ۠ݠh gH{ }pIp hɛ{% [+`Ωzϩ+'`'eXQ)P '  {% [ Tb - /+.. $`r Vh`P{% [O ` bP { ++ +  ,` { O` { % [ e{`ӱб庠亠 ` c c0$ c0ιc`8Hh`` c ɯ/ȑ 芑`ȱ ) `Jd Kd kdL@dJdJd dL@d Kd kd8``H8{  ,Jd h`,Jd0 {Ld{Ld{  e ag .g e{xɛnɈF.ɕJ,Jd0ɉ a0LceLeɍPM@ e; ȑLd -{ {Ld {LdM eɠ{Ld cLd`,Jd  L0em {{{HM8M{22 h{` eɠ{ eɠ ɯ{Ld{ eɯ{ȑ )۰ɺɮ`8`{ Le{{ eɯ{LdHH{ eI &fhh`2{ e2`(,*E jUȘJ(,T*,  @`H)0jhH, I@,bfI@,H*E JUȘJh(T*h`(h`   Lf  ` gf N O{ { O{ {N gf`{ % [ f "L!# X` "#P!`H  agɀ 2L)g h 22`H % ag 2LTg h 22``H  h 0`x ?hX`H 2ȅ#  Uh H `H I ` x ?hxxx ?h ?h ?hX`H HHxUh8 ?hX hhh`H %HHx ?hUh8 Xhh` `H  ThUhh Sh`LvhLLkhuhLzhuhvh8`tjuj{wh%xh i j{uj% [vhp'z?H }pIp̠Ҡh L%i }pIp ɠҠvh }pIpB A }pIpC {ujvh0vh LMi { }pIp c g iwh{xh% [8`{tj% [yh{% e yhyh`{tj% [yh%0H gfh gfLi {yhyh`{tj% [ gf # yh{ 9{ yhyh{# gf`+@DEFGHIN%'ɯϠ(.BCJKLMPQRӠSU֮î®VWZqɠrstɠuvwxy٠z{ em RoC mLVh` RoȍC mLVh` RoˍC nLVh` RoʍC !nLVh` Ro̍C BnLVh` RoC XnLVh` RoύC υnLVh` Ro΍C ΅nLVh` RoƍC ƲnLVh` RoǍC DznLVh` RoōC nLVh`n RoÍCo oLVh` RočC o oLVh` RoэC 6oLVh` RoC OoLVh`hhhAhBHAHHH``Hpɀ4p:pBpLpBpCp1pDp2pEpBp-;p8ЅЩх qCpBp 0;pCpBpҝFpDpн3p qНDpFp0Bp0;pBp8HpBp tp;p qBp`' -327688 tpiАѠ q` q`qhhqiЅ©íqJJJJq) u©âqJJJJJJ uq)@P©âqJJJJ) u qq)  qqllq l6 $` rЅҥхөЅ`!&&&8᪥҅Ј*8eЈҥ 8ЅЩх` r& qLqJ eҥeffffЈ` qхХ҅ѥӅ҄LqІFѐejfЈѥ) $` 8ЅЩх`Ӆҥ8ЅЩх8`eХeѥeҥeP $`E` ` $` `s &&&&&&&8ԥե֥Ј8ЅЩхѩ҅ҩӅ` `s Jeԥeեe֥effffffffЈϥ) $`8ЅЩхѩ҅ҩӅ`ׅօՅԥ s8`8ХѥҥP $`é©ĥ t=X¥Ðȑ8``e…åå tXX`HJJJh)8j` ouhhjuiou?Ѕ© Ru Rupu uou Ou RuLt#© Ru Ru u Oul Ou RuLt© Runu RuH uhpu дЕ Oununu RuH uh {unuȹLKu LKu LKuHʥ˩Ѕȩh LKu (lljumu.lu*mu.lu*mu.lu*`e`u8uƙŗŖ $`u uu  `  ` ȹ`ˆ`ovpvnv,OKov i qu`nv qunv`nvov ie`ȱ( ȱinv` ------------------------------------------------- Documentation for BLU - Binary II Library Utility Copyright (c) 1987 by Floyd Zink, Jr. All Rights Reserved. Updated - 10/09/87 ------------------------------------------------- REQUIRES EITHER AN ENHANCED //E, //C OR IIGS. About BLU --------- This program is FREEWARE. You can distribute BLU freely, just don't sell it. I do ask that you make sure that this doc file is made available with the program. You are under no obligation to pay anything for BLU. However, if you like this program and want to show your appreciation I do accept gratuities. If you send me $10.00 I will send you the latest versions of both BLU and TEX - Text File Utility and any other FREEWARE programs I might write. The $10.00 will also entitle you to 1 additional free update that will be AUTOMATICALLY mailed to you when I update the programs again. This way I make a little money and you do not have to spend the money downloading the updates. After the first mailing and the free update I will continue to mail out updates, but I will include a bill for $5.00 to cover disk and shipping costs. This way you will always have the most current versions. I will do all mail outs before I upload them to any source. You will find that in the long run this method will be cheaper for you than the connect charges would be for downloading this program. My address is: Floyd Zink, Jr. P.O. Box 060069 Palm Bay, FL 32906 I repeat YOU ARE UNDER NO OBLIGATION TO PAY ANYTHING FOR BLU. ---------- Features -------- 1) Catalogs disks 2) Makes Binary II files 3) Squeezes files 4) Unsqueezes files 5) Extracts individual files from a Binary II file 6) Lists the contents of a Binary II file 7) Deletes files The Menu -------- You can select a menu item by either the first letter in the item or by using the arrow keys to move the inverse bar to your selection and then pressing return. You will be returned to the menu after all processing is done. By pressing OA-? or OA-/ from the main menu one can view a help screen listing the commands. Selecting Files To Be Processed ------------------------------- After making your menu selection you will be prompted for a source directory name and where necessary a destination pathname or target directory. You can use the TAB key to skip to the next '/' in the pathname shown or OA-TAB to back up to the previous '/'. The DELETE key will delete characters and the <-- --> keys will backspace and move the cursor forward. When prompted for a destination pathname be sure and enter a pathname for a file not a directory. After the directory(s) are selected a catalog of the source directory will be displayed. Using the up, down, left and right arrows will move the inverse bar accordingly. Pressing the space bar will toggle a file for normal selection and will diplay a checkmark next to the name. The 'S' key will toggle a file to be squeezed when added to the Binary II file and will display a '$' next to the name. OA-space or control-a will toggle all the normal items and OA-S will toggle all the squeezed items. Pressing return will start the processing using the selected filenames. Pressing OA-D when selecting the files will cause ALL the files and sub-dirs to be squeezed and all subsequent files and sub-dirs contained within them. You could use this to sqz a WHOLE disk if you wanted. Using The Mouse --------------- If you have a mouse BLU will find it and allow you to use it instead of using the arrow keys and you can use the mouse button to select files though you still have to press return to start the process after the files are selected. Holding down the OA (open apple) key when pressing the mouse button will toggle the file for squeezing. Holding down the CA (closed apple, option on the gs) when pressing the mouse button will act just like pressing return does - it will start the processing. The sensitivity of the mouse is at location $204B when the program is in memory. This is the $4B byte after the beginning of the program. It is currently set at $08. This means the mouse must move 8 increments to move inverse bar. If you want to change this use a block editor or from the basic prompt enter: CALL-151 ;enter monitor BLOAD BLU,TSYS,A$2000 ;load file 204B:XX ;XX being the new value. Higher value=lesser sensitivity. BSAVE BLU,TSYS,A$2000 ;save file ^C ;back to basic Making Binary II Files ---------------------- You can use the Destination pathname to pick which directory or disk the Binary II file is placed. BLU will display all the sub-directories that are selected and allow you to select files from them unless of course you use OA-D which will select them all automatically. Squeezing Files --------------- BLU will NOT squeeze an existing Binary II file. Squeezing an already formed Binary II file defeats the whole purpose behind using this format. The correct method is to use BLU's ability to squeeze files WHILE making the Binary II file. BLU adds an extension of '.QQ' to the original filename to form the squeezed filename. All file types, except for DIRs, are able to be squeezed. BLU uses the Huffman algorithm to squeeze files. It first encodes repeated characters by doing a byte for byte pass through the file except that DLE is encoded as DLE, zero and repeated byte values are encoded as value, DLE, count for counts that are greater or equal to 3. On the second translation it developes a binary tree representing the decoding information for a variable length bit string code for each input byte. Each string's length is in inverse proportion to its frequency of appearance in the incoming data stream. Decoding information is included in the squeezed file, so squeezing short files or files with uniformly distributed byte values will actually increase the size. Special thanks to Don Elton for the donation of his SQ/USQ source code to the Public Domain. I adapted these routines to speed up the processing of squeezing and un-squeezing files and to fix a bug that sometimes caused large files to squeeze incorrectly. There also had to be some changes to integrate the routines into BLU. The core of the algorithms though are basically unchanged from Don's source. Un-squeezing Files ------------------ The squeezed file is un-squeezed to the original file's name. If this name already exists then BLU overwrites it. Extracting from Binary II Files ------------------------------- BLU will NOT overwrite any files, except the above. If there is a duplicate file then BLU will add an extension of '.n' to the filename. You can then rename the file when you are done with BLU. BLU checks available disk space to make sure there is enough room for all the files. If there is insufficient space then the program will issue an error message and exit back to the main menu. It will not extract any files unless there is enough space. Squeezed files within the Binary II file will be AUTOMATICALLY unsqueezed when extracted. You do NOT have to use the USQ function from the main menu to unsqueeze bny files. If the files were squeezed separately first and then made into a Binary II file BLU will still unsqueeze them automatically as long as the files have a suffix of '.QQ'. Deleting Files -------------- BLU will not delete locked files. Final Words ----------- If you encounter any bugs or come up with a suggestion on improving the program please let me know. ----------------------- Floyd Zink, Jr. Compuserve - 73147,2717 Genie - F.ZINK -----------------------  &O=====!====!====!====!====!====!====!====!====!====!====!====!====!====!====!===B~ 2************************************************2B L U (version 2.27) - Binary II Library Utility'Copyright (c) 1987 by Floyd ZINK, Jr.All rights Reserved.Updated - 10/09/19872************************************************'NECESSITE UN APPLE IIe+, //c ou IIGS. A propos de B L U -----------------GE B L U v2.27 (Binary II Library Utility) est un programme utilitaire NLlargement utilis{ pour les op{rations sur les fichiers au format Binary II, MKune m{thode populaire de compression de fichiers utilis{e par les serveurs OMam{ricains.Ce proc{d{ permet de compresser un ou plusieurs fichiers ou m^eme NLdes r{pertoires entiers en un seul fichier en conservant tous les attributs OMde chaque fichier(nom,type,date de cr{ation et de modification...etc...); ce /qui permet de r{duire les temps de transfert.GE Ce programme est un "FREEWARE". Vous pouvez distribuer ce programme JHlibrement mais non le vendre.L'auteur demande simplement que cette doc. accompagne le programme.DB Vous n'avez aucune redevance @ payer pour l'utilisation de cette application.LJ Cependant, si vous avez appreci{ ce programme et si vous d{sirez marquer JHvotre satisfaction, l'auteur accepte les gratifications.Vous pouvez lui PNexp{dier la somme de 10 dollars US, il vous fera parvenir la derni}re version LJde B L U et de TEX (un utilitaire pour les fichiers textes) et tout autre LJ"freeware" qu'il aurait pu ecrire.Ces 10 dollars vous donneront egalement NLdroit @ une mise @ jour gratuite d}s sa parution.Les mises @ jour suivantes Lvous seront exp{di{es automatiquement mais vous seront factur{e 5 dollars. Son adresse est:( Floyd ZINK, Jr.( P.O. Box 060069, Palm Bay, FL 32906 U.S.A.@En tout {tat de cause, vous n'avez AUCUNE OBLIGATION de payer.6 -----------------O***************************************************************************** Les Fonctions ------------- 1) Catalogs Disks& (Cataloguer les disquettes) 2) Makes Binary II files3 (Cr{er des fichiers au format Binary II) 3) Squeezes files$ (Compresser des fichiers) 4) Unsqueezes files& (D{compresser des fichiers)8 5) Extracts individual files from a Binary II file6 (Extraire des fichiers du format Binary II)/ 6) Lists the contents of a Binary II file? (Lister le contenu d'un fichier au format Binary II) 7) Deletes files! (Effacer des fichiers) Le Menu -------NL Vous pouvez selectionner une fonction du menu principal soit en tapant son IGinitiale soit en utilisant les touches fl^eches pour d{placer la barre Fd'inversion sur l'article @ selectionner puis appuyez sur <.<Apr}s {x{cution de la commande, vous ^etes ramen{ au menu.NL Dans le menu principal, en tapant PO et ? (pomme ouverte et ?) ou PO et / $vous avez acc}s @ un {cran d'aide.# Selection des fichiers @ traiter# --------------------------------NL Apr}s avoir selectionn{ une fonction @ executer,vous devez indiquer le nom MKdu r{pertoire @ traiter(avec eventuellement le chemin d'acc}s complet) et, OMlorsque c'est n{c{ssaire,le nom du fichier destinataire ou du sous-catalogue cible.KIVous pouvez utiliser la touche < pour sauter au '/' suivant dans le JHchemin d'acc}s pr{sent{ @ l'{cran ou PO et < pour retourner au '/' NLpr{c{dent.La touche DELETE efface les caract}res et les fl^eches <-- et --> PNpermettent de d{placer le curseur.Lorsque le programme vous demande le chemin NLd'acc}s destinataire, attention de bien lui indiquer le chemin d'un fichier #et non pas celui d'un r{pertoire.OM Apr}s la selection de r{pertoire(s) , un catalogue du r{pertoire source est FDaffich{.L'utilisation des fl^eches vous permet de d{placer la barre NLd'inversion pour selectionner un fichier.En appuyant sur la barre d'espace, PNvous marquez un fichier @ traiter au format Binary II .La touche 'S' marquera KIavec le caract}re '$' un fichier destin{ @ ^etre 'squeez{' au prealable. PNPO-Espace ou contr^ole-a marquera tous les fichiers du r{pertoire courant qui NLseront pass{s au format Binary II et PO-S marquera tous les fichiers devant EC^etre 'squeez{' d'abord. La touche RETURN d{marera le processus de +'binarisation' des fichiers s{lectionn{s.NL Avec PO-D lors de la selection, vous 'squeezerez' TOUS les fichiers et les NLsous-r{pertoires ainsi que tous les fichiers et sous-r{pertoires qui y sont OMinclus.Vous pouvez utiliser cette combinaison de touches pour 'squeezer' une disquette enti}re. Utilisation de la souris ------------------------LJ Si vous avez une souris connect{e @ votre Apple, B L U la localisera et PNvous pourrez vous en servir @ la place des fl^eches; le bouton vous permettra LJd'effectuer votre s{lection.Cependant , c'est encore la touche RETURN qui Kd{clenchera la translation des fichiers s{lectionn{s au format Binary II.PN En maintenant appuy{e la touche PO lors de la s{lection des fichiers avec le PNbouton de la souris,vous marquerez les fichiers devant ^etre 'sqeez{s'. Quant PN@ (touche Option sur le IIGS) lors de l'appui sur le bouton de Ola souris, elle agit comme la touche RETURN,elle d{clenche la 'binarisation'.PN La sensibilit{ de la souris peut ^etre modifi{e; c'est l'octet qui se trouve NL@ la position $4B(75) du d{but du programme qui permet ce r{glage.La valeur NLqui s'y trouve actuellement est 8.C'est @ dire qu'il faut 8 incr{ments pour LJmouvoir la barre de s{lection.Si vous voulez changer cette valeur il vous OMfaut utiliser un {diteur de blocs ou effectuer les manipulations suivantes @ partir du Basic:&CALL -151 ;passer sous moniteur%BLOAD BLU,TSYS,A$2000 ;charger BLUL204B: XX ;XX nouvelle valeur.Valeur plus {lev{=emoindre sensibilit{.%Contr^ole-C ;repasser sous Basic) Cr{er des fichiers au format Binary II) --------------------------------------GE Vous pouvez utiliser le chemin d'acc}s destinataire pour choisir le Cr{pertoire dans lequel sera plac{ le fichier au format Binary II.GEB L U affichera tous les r{pertoires qui ont {t{ s{lectionn{ et vous OMpermettra de choisir dans ceux-ci les fichiers @ traduire sauf si,bien s^ur, Mvous avez tap{ PO-D ce qui selectionnera tous les fichiers automatiquement. Squeezer les fichiers ---------------------H B L U ne 'squeezera' pas un fichier qui est d{j@ au format Binary II.GESqueezer un tel fichier d{truirait le format.La m{thode correcte est PNd'utiliser la possibilit{ qu'offre B L U de squeezer un fichier simultanement '@ sa translation au format Binary II.EB L U ajoute le suffixe '.QQ' au nom du fichier qui a {t{ squeezer.NTous les types de fichier, @ l'exeption du type DIR , peuvent ^etre squeez{.OMB L U utilise l'algorithme d'Huffman pour 'squeezer' les fichiers et nous ne HFle d{velopperons pas ici.Pour ceux qui sont interress{s veuillez vous reportez au fichier BLU.DOC . 'D{-squeezer les fichiers' --------------------------H Le fichier 'squeez{' est 'd{-squeez{' et sauv{ sous son nom original.7Si un fichier poss}de le m^eme nom, B L U l'{crasera.. Extraction des fichiers du format Binary II. -------------------------------------------E B L U n'{crasera aucun fichier sauf dans le cas rappel{ ci-dessus.GEn cas de doublons, B L U ajoutera le suffixe ".n" au nom du fichier.EVous pourrez donc renommer ce fichier lorsque vous quitterez B L U.PN B L U contr^ole la place disponible sur la disquette pour ^etre s^ur que les PNfichiers extraits pourront y ^etre sauv{s, emet un message d'erreur au cas o| OMla place manquerrait et revient au menu principal.Il n'extrait aucun fichier en cas de manque de place.FD Les fichiers 'squeez{s' sous format Binary II seront 'd{-squeez{s' OMautomatiquement pendant les op{rations d'extraction. Il n'est pas n{c{ssaire HFd'utiliser la fonction 'USQ' du menu principal pour 'd{-squeezer' les PNfichiers au format BNY. Si les fichiers ont {t{ 'squeez{' avant d'^etre pass{ LJau format Binary II, B L U les 'd{-squeezera' automatiquement @ condition &qu'ils comportent le suffixe '.QQ' . Effacer des fichiers --------------------7 B L U n'effacera aucun fichier prot{g{ en {critures. Pour finir ----------DB Si vous rencontrez quelque 'bug' ou si vous avez des suggestions Ed'am{lioration de ce programme, n'h{sitez pas @ contacter l'auteur. ------------------ Floyd ZINK, Jr. P.O. Box 060069 Palm Bay, FL 32906 U. S. A. ------------------VD3B BLU.V.2.28BLU.DOC< BLU.DOC.FRBLUGOBINv²' '+PUISSANCE.4-'-ICONED.DOC.FR102]'/DIGICOPY.DOC.FRa-RV'.STARTSOUND.DOC 1 ܧ FINDER.DATAəj²Ͳ& !"#$%&'()*+,-./0O=====!====!====!====!====!====!====!====!====!====!====!====!====!====!====!===:~ #_________________________________#WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW#WWWWW PUISSANCE 4 WWWWW#WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW . FOUR IN A ROW0 pour l' Apple IIgs4 Version 1.1 DocumentationE(L'appelation Puissance 4 est une marque d{pos{e des Jeux MB. NdT).OM Puissance 4 est un jeu de strat{gie qui se joue sur 8 colonnes. Chacune JHpeut contenir 8 pions. Pour jouer, il suffit de mettre un pion dans une OMcolonne choisie. Le pion descend jusqu'en bas ou jusqu'@ la position la plus OMinf{rieure possible ( en fonction du remplissage). Si la colonne est pleine, CAelle ne peut plus servir. Le but du jeux est d'aligner 4 pions ( Clat{ralement, verticalement, ou en diagonale) avant l'ordinateur.OM Une variante appel{e GiveAway permet de jouer en obligeant l'ordinateur @ aligner 4 pion avant vous.MK Pour jouer, charger le Finder ou tout disque de chargement comprenant PNProDOS 16. Puis choisir la colonne o| mettre le pion et cliquer. L'ordinateur LJplace celui-ci @ la bonne place et le curseur est remplac{ par une montre LJpendant qu'il cherche la r{ponse. Ce temps d{pend du niveau demand{, tr}s 2rapide au niveau 1 @ tr}s tr}s lent au niveau 5.L--------------------------------------------------------------------------* MENUSL--------------------------------------------------------------------------, menu Pomme?ABOUT- Affiche une fen^etre contenant la version et l'auteur.0HELP - Affiche les r^egles et les r{f{rences.6 menu Fichiers (file)QUIT- Pour quitter1 menu Jeu (game)<NEW GAME- Efface l'{cran et commence une nouvelle partie.NLOPTIONS- Affiche les options . Il est possible de choisir la couleur de vos LJpions, de commencer ou de laisser l'ordinateur commencer, de jouer le jeu PNnormal ou en GiveAway. Les options de couleur et de type de jeu peuvent ^etre chang{es en cours de partie.OMPARAMETRES (EVAL PARMS)- Affiche les param}tres possibles. Permet d'ajuster NLle nombre de coups que l'ordinateur pr{voit (the search depth),et la valeur PNd'{valuation. ( voir ci-dessous). Par d{faut la "profondeur de recherche" est JH de 3. Au niveau 1 c'est carr{ment nul ( on gagne @ tous les coups), au niveau 5 c'est tr}s lent....ELes valeurs d'{valuation par d{faut fonctionnent tr}s correctement.M===========================================================================, Comment r{fl{chit l'ordinateur?L==========================================================================PN J'ai {crit Four in a row ( puissance 4) pour apprendre les techniques de KIprogrammation des jeux de r{flexion. Puissance 4 n'aspire pas @ ^etre le LJsummum dans le genre pas plus que je ne suis un expert sur le sujet. Mais 'cela peut vous donner quelques bases.PN Puissance 4 se sert de deux techniques pour savoir comment {volue le jeu IGet deux techniques pour acc{l{rer le processus. Tout cela est expliqu{ ci-dessous. LA FONCTION EVALUATIONPN Cette fonction {value le jeu @ un moment donn{ et retourne une valeur en LJfonction de celle-ci. Plus le nombre est grand, plus cela est favorable @ IGl'ordinateur. De la qualit{ de l'{valuation par l'ordinateur d{pend la PNqualit{ du jeu. Des jeux tels que Tic tac toe ( en fran\ais Pousse-pousse) et KIFour in a row ( puissance 4) ont des fonctions d'{valuation simples. Les C{checs, les dames ou othello en auront d'autres plus compliqu{es.KIL'{valuation fonctionne de la mani}re suivante: Le but {tant d'aligner 4 OMpions, nous l'appelleront 4 en ligne. Ce que nous voulons, c'est 4 en ligne. PNEnsuite, il faut emp^echer l'autre de faire 4 en ligne. En plus, nous voulons KIbloquer l'adversaire d}s qu'il a 3 pions align{s, mettre en place nos 3 3pions, 2, 1 etc. Chaque type donne une structure.EC La fonction d'{valuation de puissance 4 tient compte de toute NLpossibilit{ d'alignement de 4 pions ( sous-structure). Si l'une de celle-ci PNcontient des pions des deux adversaires, elle les ignore. Si elle ne contient LJque des pions d'un joueur, son nombre est incr{ment{. Il y a des compteur @pour chaque joueur et pour chaque sous-strucuture (8 en tout).MK Mais certaines figures sont plus importantes qye d'autres. Il ne faut MKpas ignorer la possibilit{ d'un quatre en ligne @ partir de deux en ligne. OMAussi faut-il peser l'importance de chaque combinaison. Ainsi un 4 en ligne OMpour l'ordinateur sera multipli{ par un grand nombre positif, la m^eme chose LJpour son adversaire le sera par un grand nombre n{gatif et ainsi de suite OMpour aller jusqu'@ 1 en ligne. Voir dans les param}tres d'{valuation comment OMje choisis les diff{rentes possibilit{s. Ces choix mettent l'ordinateur sur PNla d{fensive. IL est possible de changer ces param}tres pour voir comment ils MKaffectent le jeu de l'ordinateur. Diminuez les param}tres de l'ordinateur, Henlevez ceux de l'humain et vous verrez celui-ci vous aider @ gagner.NLNote: En jeu invers{ ( giveAway), le coups sont {valu{ normalement mais son #affect{s d'un coefficient de -1 .OMNote: Les handicaps et le score final ( gagn{/perdu) sont de type LongInt en OMPascal. MaxLongInt en TML Pascal est 2,147,483,647. Si vous vous servez de IGplus grandes valeurs ( positives ou n{gatives) assurez-vous qu'elle ne +d{passent pas les possibilit{s de calcul.L'ARBRE DES POSSIBILITESJH Ce dernier permet d'appliquer la fonction d'{valuation aux coups @ KIvenir. Le nombre de coups pr{visible ( depth= profondeur) est exprim{ en /plys. Un ply est un coup de part et d'autre.IGPar d{faut, la profondeur de recherche est fix{e @ 3. Je recommende un MKminimum de 2 ( et pour cause!!! ndt). A 1, l'ordinateur ne con\oit pas pas GEqu'il puisse y avoir un adversaire (no comment! - en anglais dans le OMnon-texte). Les niveaux 4 et 5 jouent bien mais sont tr}s lents ( entre 5 et 10 minutes au niveau 5).NLA la fin de chaque recherche, l'{valuation sert @ d{finir si tout va bien ( NLpour l'ordinateur, s'entend) . Les scores sont retourn{s en haut de l'arbre KIde recherche en se servant de la m{thode Minimax et d{finissent alors le OMmeilleur mouvement. L'ordinateur peut de cette fa\on choisir un mouvement en ;fonction de ce que sera le jeu au bout de quelques coups.LA METHODE MINIMAXOM Souvenez-vous, les scores de la fonctions {valuation sont bas{s sur les PNBONNES positions pour l'ordinateur. Ce dernier essaye toujours d'augmenter ce LJnombre tandis son adversaire cherche l'inverse. Aux niveaux de l'arbre o| LJl'ordinateur joue, l'{valuation retourne le score maximum, aux niveaux o| NLjoue l'adversaire, elle renvoie le mimima. La fa\on de prendre le maxi puis 9le mini puis le maxi etc.. donne son nom @ la m{thode.IG Les techniques ci-dessus sont la base des jeux de r{flexion. Nous DBposs{dons une mani}re d'{valuer la position actuelle (la fonction KId'{valuation) et une autre pour anticiper les coups @ venir ( l'arbre ou MKarborescence). En se servant de la m{thode Minimax, nous nous assurons que NLl'adversaire est intelligent et jouera selon ces crit}res. Si celui-ci fait Gune faute, il nous laisse simplement dans une position plus favorableL'ARBORESCENCEPN Plus nous pouvons pr{voir de coups, plus nous jouons bien. Une recherche OMappronfondie dans l'arborescence ( des coups) nous donne les cons{quences @ NLlong terme de notre coup. Mais celle-ci augmente rapidement. Puissance 4 se PNsert d'un facteur de 8. Un niveau 1 cherchera 8 coups, un niveau 2, 64, un 3, OM512, un 4, 4096, un 5, 32768. Aussi s'il est possible de d{tecter plus t^ot Oun mauvais placement, c'est tout bon et cela diminuera le temps de recherche.LA FENETRE MINIMALEPN Cette m{thode pourrait se r{sumer par ceci: " Si notre adversaire trouve NLun coup qui lui permet de poursuivre sa tactique, il n'a pas besoin de voir KIautre chose". Dans le contexte du jeu pr{sent: Disons que nous cherchons MKl'arborescence pour notre premier coup. Avec la m{thode Minimax, cela nous PNretourne un score de 100. Notre adversaire ne peut nous limiter qu'@ un score MKde 100 ( si les deux jouent correctement). Nous gardons ce score de 100 et MKcommen\ons la recherche dans l'arbre pour le second coup. Au premier noeud HFterminal de l'arbre, nous trouvons 25. Come c'est moins que 100, nous OMremontons. Nous savons maintenant que le prochain coup sera plus mauvais que MKle premier parce que l'adversaire peut nous limiter @ un score de 25. Nous OMn'avons pas @ {valuer les autres coups de l'arborescence. Il nous faut juste :trouver un coup meilleur ( que l'adversaire va bloquer).CLASSEMENT DES COUPSNL Quand on se sert d'une fen^etre minimale, il est pr{f{rable de classer OMles coups en ordre logique. Dans l'exemple ci-dessus, si le coup de 25 vient Oavant celui de 100 , il faudra rechercher tous les coups dans l'arborescence.PNQuand Puissance 4 joue un coup, il fait d'abord une recherche de niveau 1 et NLgarde tous les scores donn{s par l'arbre. Ensuite il les classe et effectue #ses recherche dans l'ordre donn{.M---------------------------------------------------------------------------OMEn fait toute cette explication ne sert qu'@ justifier la lenteur exap{rante !du programme en niveau 5 . NdT.M------------------------------------------------------------ --------------OM Ce programme est du domaine public. Vous pouvez faire tout ce que vous LJvoulez avec sauf le vendre. Vous n'avez pas @ m'envoyer quoi que ce soit, NLmais si vous voulez encourager la distribution de logiciels de cette sorte, KIil me serait agr{able de recevoir quelque chose. Mon adresse est dans le PNprogramme et ci-dessous. Pour $10, je vous posterai la derni}re version ainsi PNque le source. Cette disquette comprendra mes autres jeux sur GS ( @ l'heure :actuelle, Othello et la tour de Hanoi) avec les sources.MThis program is in the public domain. You can do anything you want with itKexcept sell it to someone else. You are not required to send me anythingIfor using the program, but if you want to encourage the distribution ofJsoftware like this you are welcome to make a donation. My address is inKthe programs about box, and listed below. For $10 I will mail you a diskIcontaining the latest version of the program and source code. The diskGwill also have my other GS games (at this point Othello and Towers of>Hanoi). These programs will also have source code included.NL Ces programmes ont {t{ {crit avec la version autonome de TML Pascal de JHTML Systems. Mais il me semble que les sources sont compatibles avec la version APW du TML Pascal.Bill Fortenberry2906 36th AvenueMeridian, MS 3930501/8823456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`^O=====!====!====!====!====!====!====!====!====!====!====!====!====!====!====!===<~= #_________________________________#WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW#WWWW IconED 1.3 WWWWW#WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW#WWWW par Paul Elseth WWWWW#WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW # Copyright (c) 1988, Paul Elseth# Documentation version 11/23/88 9(NdT: Fat Pixel est l'{quivalent de la loupe des Paints: Edition: remanier ou cr{er une image ou un texte).KI Finder: Penser au Finder de GS/OS et non au Finder - disque System #version 3.1 distribu{ en France.)OM IconEd est programme en vente coopt{e ( shareware ) pour cr{er et {diter OMdes ic^ones pour l'Apple II GS. Avec IconEd vous pouvez changer l'aspect des OMic^ones, changer le nom de leur fichier et dire au Finder o| il peut trouver JHl'application qui a permis de cr{er un fichier donn{. Vous pouvez aussi JHajouter ou enlever des ic^ones des fichiers d'ic^ones de m^eme que vous OMpouvez les copier. En r{sum{, IconEd est un programme de maintenance des des ic^ones.3 --------------------LJ IconEd est un programme en vente coopt{e ( shareware) et non dans le MKdomaine public. Vous ^etes encourag{ @ en faire parvenir des copies. Apr}s NLune p{riode d'essai, si vous le trouvez pratique, vous voudrez bien envoyer OM$15 @ l'adresse ci-dessous. Si vous ne voulez pas payer les frais, veuillez cesser d'employer IconEd.JH-- Tout usage commercial de ce programme est formellement interdit sans &l'autorisation expresse de l'auteur.NLJ'envisage de nombreuses am{liorations ( et l'{limination de bogues), aussi 6se faire enregistrer peut ^etre un s{rieux avantage.KI A r{ception de vos 15$ , je vous enverrai une disquette 3,5 avec la LJderni}re version, ainsi que la suivante. Apr}s votre enregistrement, vous KIpourrez utiliser les nouvelles versions de mani}re totalement libre. Les =mises @ jour co^uteront 5$ ou 3$ plus une disquette vierge.  Paul Elseth# 2739 Fairview Ct SE# Rochester, MN 55901CompuServe: 73457,226 BIX: pelseth ALPE: PElsethGENOTE: Apple IIGS, GS/OS et Finder sont des marques d{pos{es d' Apple Computer, Inc.  LA BARRE DE MENUS _________________: MENU POMME ___________LJ About IconEd...: donne le num{ro de version et des informations sur le paiement des droits.MENU FICHIERS_____________ * Nouveau (new)IG Sert @ cr{er un nouveau fichier d'ic^ones. Une fen^etre appara^it, OMintitul{e "Untitled.On", ne comportant aucune ic^one. Vous pouvez copier des 5ic^ones d'autres fichiers ou en cr{er de nouvelles. * Ouvrir (open)NL Permet de charger un fichier d'ic^ones d{j@ existant. Ces fichiers sont PNsouvent stock{ dans le sous-catalogue ICONS. Le disque de Boot doit comporter PNun fichier appel{ FINDER.ICONS dans le sous-catalogue ICONS contenant d'autre MKic^ones ( voir ICONES ET FINDER ci-dessous). IconEd accepte n'importe quel 3nombre de fichiers "ic^one" ouvert simultan{ment. * Fermer (close)OM Ferme la fen^etre principale. Si celle-ci est une fen^etre d'ic^ones, et OMque vous avez op{r{ des changements, une boite de dialogue vous demandera si 3vous voulez sauver ces changements . ( idem SAVE) * Sauver (save)MK Sauve le fichier affich{ avec son nom en cours. Si vous l'avez charg{ IGd'un disque, il sera sauv{ dans le catalogue d'o| il sort. Si c'est un OMnouveau fichier, il vous sera possible d'indiquer o| vous voulez le sauver ( OMcomme pour l'option "SAVE AS" du menu FILE). Si vous avez chang{ des ic^ones JHde place dans la fen^etre, leur nouvelle position n'est pas sauv{e mais l'ordre est sauvegard{. * Sauver sous (save as)MK Idem Save mais permet de changer les noms de fichiers et o| il faut les JHmettre. Si vous voulez que le Finder se serve des Ic^ones du fichier en GEcours, il faut le sauver dans le catalogue ICONS ( ou dans le m^eme &catalogue de n'importe quel disque). * Save as sourceNL Sauvez le fichier d'ic^one comme un fichier APW ASM65816 source . Cette LJoption peux servir @ g{n{rer des codes sources pour les ic^ones @ inclure dans un programme. * Quitter (quit)LJ Sert @ quitter IconEd. Pour tout changement dans la fen^etre, il vous 9sera demand{ si vous voulez le sauver avant de quitter.LE MENU EDIT____________ * Annuler (Undo) L Annule le dernier changement {ffectu{ dans la fen^etre " Fat Pixel". * Couper (Cut)EC Copie d'ic^one s{lectionn{e dans la fen^etre en cours dans le PNpresse-papier et enl}ve celle celle-ci de la fen^etre. Cela permet d'exporter FDces images dans tout programme qui accepte le presse-papier en mode graphique. * Copier (Copy)K M^eme chose que pour couper mais n'enl}ve pas l'image de la fen^etre. * Coller (Paste)PN Copier permet de copier une ic^one ( au pr{alablement coup{e et mise dans JHle presse papier) dans la fen^etre affich{e. Cette comande permet aussi LJd'importer des images de programme qui acceptent le presse-papier en mode PNgraphique, comme Deluxe paint II. Il faut noter que IconEd fonctionne en mode KI640 ( avec m{lange de couleurs). Si vous copiez une ic^one @ partir d'un JHprogramme en mode 320, vous risquez de vous retrouvez avec seulement la MKpartie gauche. Si cela arrive, vous pouvez, oubien convertir l'original en HF640, ou bien couper deux fois l'image pour obtenir la largeur voulue. <J'esp}re avoir une meilleure solution @ proposer bient^ot. * Nettoyer ( Clear)JH Cette commande enl}ve l'ic^one s{lectionn{e sans la mettre dans le prese-papier. * Inverser( Revert)OM M^eme fonction que UNDO mais plus efficiente. Revert change l'ic^one en 7cours d'{dition en Fat Pixels dans sa forme premi}re.Menu SPECIAL_____________ * CleanupOM Cleanup repositione les ic^ones dans la fen^etre encours dans l'ordre de NLd{part. ( Celui-ci peut ^etre chang{ par le maintien forc{ d'ic^ones ( voir ci-dessous REORDERING ICONS).% * Tout s{lectionner ( Select all )@ S{lectionne toutes les ic^ones dans la fen^etre affich{e.0 * Ajouter une nouvelle ic^one ( add new icon)LJ Se servir de cette option, pour cr{er une nouvelle dans la fen^etre LJaffich{e. Faire cela cr{e un nouveau document qui peut ^etre {dit{ en Fat MKPixels. Se servir de ce mode pour la premi}re ic^one s{lectionn{e. Cette OMoption permet d'avoir acc}s @ la fen^etre Fat Pixels pour changer l'image de l'ic^one.0 * Edit attributes... (possibilit{s d'{dition)PN Edit attributes permet de changer le nom du fichier, son type ou son type Caux ainsi que tout nom d'aplication associ{ @ l'ic^one en cours. % * Colored mask (masque en couleur)OM L'option colored mask permet d'introduire la couleur dans l'ic^one. Cela Mpermet ds effets sp{ciaux quand l'ic^one est s{lectionn{e. A exp{rimenter. * Copy icon to maskNL Permet de copier tous les pixels d'une ic^one dans le masque. Toute les 6couleurs @ l'exception du blanc sont copi{es en noir * Copy mask to iconK Copie tous les pixels du masque de l'ic^one dans l'image de celle-ci. * Fill imageNL Remplit l'image de l'ic^one dans la fen^etre Fat Pixel avec la couleur s{lectionn{e." * Fill mask (remplir le masque)MK Mettre le masque de l'ic^one dans la fen^etre Fat Pixel avec tous les JHpixels noirs - s'ils sont en couleur, Fill Mask mettra l'ic^one dans la couleur qui en en place-.# * Clear mask (effacer le masque)MK Efface le masque dans la fen^etre Fat Pixel et met tout en blanc. (Si NLl'ic^one s{lectionn{e est en couleur, clear mask nla transformera en pixels noirs). Menu VIEW __________ * par ic^oneIG Affiche toutes les ic^ones dans la fen^etre principale dans leur dimension la plus grande.LJ Si la fen^etre Fat Pixel est affich{e, elle affiche l'ic^one la plus grande pour {dition.' * par petite ic^one (by small icon)4 Affiche les ic^ones dans leur petite taille .NL Si la fen^etre Fat Pixel est affich{e, cette fonction affiche l'ic^one en mode r{duit pour l'{dition. * par nom (by name)G Affiche le nom du fichier associ{ @ son ic^one dans la fen^etre.& * par application (by application)D Affiche le chemin ProDOS pour chaque ic^one dans la fen^etre.Menu COULEURS_____________LJ Ce menu vous permet de s{lectionner la couleur en cours pour {diter des LJic^ones dans la fen^etre Fat Pixel. Ce menu n'est actif que lorsque cette fen^etre pr{cise est affich{e.OM Pour plus de confort, le menu Couleur peut ^etre plac{ n'importe o| sur PNl'{cran. Pour le d{placer, cliquer dessus et maintenir le bouton de la souris GEenfonc{ tout en le d{pla\ant. Cela revient @ d{placer une fen^etre. NLRel^acher lorsqu'il est en place. Ce menu peut donc ^etre d{plac{ et ferm{ MKcomme une quelconque fen^etre mais ne peut ^etre activ{ que si la fen^etre GEFat Pixel est en cours ( la barre de menu est alors grise au lieu de blanche).= REFERENCE DE LA fen^etre DES FICHIERS ICONES< ---------------------------------------------PN Les ic^ones sont s{lectionn{es en cliquant dessus. Elle deviennent alors PNnoires pour bien montrer qu'elles ont {t{ s{lectionn{es. Pour s{lectionner un GEgroupe d'ic^ones, enfoncer le bouton de la souris et le d{placer. Un KIrectangle appara^it que l'on manoeuvre @ l'aide de la souris ( agrandir, Gdiminuer). Toute ic^one comprise dans ce rectangle est s{lectionn{e.MK Elles peuvent aussi ^etre r{ordonn{es en les d{pla\ant @ l'aide de la JHsouris. M^eme si la nouvelle disposition reste en place, elle n'est pas NLsauv{e dans le fichier. Si une ic^one (ou un groupe d'ic^ones) est d{plac{e <dans une autre fen^etre, elle est copi{e dans ce fichier.JH En double-cliquant sur une ic^one, cela permet de l'{diter dans la fen^etre Fat Pixel .QO REFERENCES FAT PIXELS 2 ------------------------MK La fen^etre Fat Pixel sert @ changer l'apparence d'une ic^one. Chaque Opixel de l'ic^one y est grossi 4 fois. Une ic^one est form{e de deux parties:)l'image proprement dites et le masque.MK L'image d{finit les couleurs de l'ic^one tandis que le masque d{finit NLplus g{n{ralement la forme. Quand le Finder dessine une ic^one, l'image est KImasqu{e. Chaque pixel noir du masque autorise l'affichage ult{rieur d'un OMpixel de l'image tandis que les pixel blancs du masque laisse passer le fond ( sont transparents quoi!).NL Il est possible d'employer 16 couleurs tandis que le masque n'autorise )que le noir et le blanc ( normalement).NL Si l'option Colored mask est activ{e, le masque pourra aussi se servir IGdes 16 couleurs. Avec cette option, c'est l'inverse: les pixels blancs LJpermettent l'affichage de l'image tandis que les noirs laissent passer le fond.NL L'int{r^et de cette derni}re option est de pouvoir colorer les ic^ones Jouvertes ou ferm{es. Il faut l'exp{rimenter et regarder l'effet produit.FDNote : Pour pr{venir toute confusion, il est d{conseill{ de changer Aconstamment de mode ( Colored mask ou non) pendant une {dition.NL A droite du masque de l'ic^one, on peut voir l'ic^one telle qu'elle se OMpr{sente actuellement, montr{e en normal, en mode activ{ et ouverte sur deux fonds blanc et color{.@ A c^ot{ se trouvent la hauteur et la largeur de l'ic^one.NL Dans le coin en bas @ droite de l'image de l'ic^one se trouve un petit LJcarr{ qui permet en le d{pla\ant d'en changer la taille. ( Pour un emploi NLavec le Finder, une grande ic^one est @ peu pr}s de 16x16 pixels. La petite ?ne peut pas ^etre redimensionn{e. Elle fait toujours 8 sur 8.KI Les couleurs pour l'{dition sont accessible par le menu Color. Pour OMfaciliter la t^ache de l'{diteur d'ic^ones aux yeux rougis par le phosphore, MKil est possible de d{placer ce menu pour le mettre pr}s de la fen^etre Fat OMPixel. Une couleur peut aussi ^etre prise dans l'image en pressant la touche FD tout en cliquant sur un pixel. Si vous changer un pixel par NLinadvertance, cliquez dessus une seconde fois pour faire revenir la couleur originelle.EC Dans le masque, cliquer fait juste passer du noir ou blanc et LJinversement. Vous ne pouvez pas prendre de couleur dans le masque sauf si $l'option Colored Mask est activ{e.MKEn haut de la fen^etre Fat Pixel ( dans Infobar ),IconEd affiche l'endroit JH(offset) du pixel sous le curseur ( aussi bien dans l'image que dans la Lmasque). Cela permet un alignement plus facile entre l'image et le masque.PN Une ic^one peut aussi ^etre " shift{e". En maintenant enfonc{e la touche KIMAJUSCULES ( shift) quand le curseur est dans la fen^etre ( en dehors de PNl'icone ou du masque) et en d{pla\ant ce dernier dans l'ic^one, il se change LJen quatre fl}ches pointant dans les quatre directions. Ce nouveau curseur NLpermet de d{placer l'image dans tous les sens. Cliquer sur l'image tout en OMmaintenant enfonc{e la touche MAJUSCULES . L'image et le masque se d{placent ensemble automatiquement.9 REFERENCE DEDS COMPOSANTGES DE L'ICONE9 ---------------------------------------, Chaque ic^one poss}de 4 composantes:Le nom de fichier Son typeSon type auxiliaireLe chemin ProDOS.O Elles permettent aux Finder de faire correspondre ic^one et application.NLLes ic^one de documents se servent g{n{ralement du type, du type aux. et du 5chemin, les ic^one d'application du nom et du type.Correspondances des noms< Le nom de fichier de l'ic^one correspond au fichier.NL Le caract}re "*" peut servir de joker pour correspondre @ des nom sans importance. Exemples:< ICONED correspond uniquement au fichier ICONEDJH *.ICONS correspond @ tout fichier dont le nom se termine par ".ICONS"9 * correspond @ n'importe quel fichier.Correspondance des typesH Le type correspond au type de fichier auquel appartient l'ic^one.KI Un type $0000 correspond @ tout type. Le type peut aussi bine ^etre NLs{lectionn{e dans la liste propos{e qu'entr{ @ la main s'il n'appara^it pas NLdans cette derni}re. Il est aussi possible de faire correspondre une ic^one OMavec des appareils ( hardware). L'appendice B contient une liste de types de 7fichiers et d'appareils inclus dans la list d'IconEd.ACorrespondance des Aux Types (rencontre du troisi}me type!!!!)LJ Le type Aux. correspond aux types auxiliaires des fichiers auxquels Ml'ic^one appartient. Un type $000 correspond @ n'importe quel fichier aux.Chemin de l'applicationOM Cela ne sert qu'aux ic^ones de documents. Quand l'un d'eux est ouvert @ LJpartir du Finder, celui-ci cherche @ lancer l'application qui a permis de JHcr{er le document. Le chemin ( path name) associ{ @ l'ic^one indique au NLFinder quel programme @ lancer. Il faut, pour cela, indiquer enti}rement le chemin ProDOS.MK Ce chemin ne pouura pas contenir un joker! Si le premier caract}re du KIchemin est "*", il est compris comme "disque de boot". Il est d'ailleur Epr{f{rable d'indiquer le boot disk par "*" plut^ot que par son nom.QO LE FINDER ET LES ICONES , -----------------------KI Le Finder de l'Apple II GS prend ses ic^ones dans le sous-catalogue LJICONS. Ces ic^ones peuvent ^etre dans n'importe quel fichier de type $CA OM(ICN) dans le sous-catalogue ICONS. Le seul fichier d'ic^one obligatoire est OMFINDER.ICONS dans ce sous-catalogue du disque de chargement ( boot). Le seul GEfichier important est celui-ci: FINDER.ICONS dans le disque de boot( HFchargement). Ce fichier contient les ic^ones g{n{riques (pour toutes LJapplications du Finder et les ic^ones pour tous les fichiers et lecteurs. PNQuand le Finder cherche un fichier @ mettre sous une ic^one, il cherche dans NLtous les fichiers d'ic^ones, cherhce FINDER.ICONS en derniern de sorte que Mles ioc^ones de ce fichier ne sont utilis{es qu'en dernier ressort. ZBOING!INormalement, vous n'avez pas @ ajouter quelque ic^one dans ce fichier.NL Si vous avez @ ajouter des ic^ones, il est pr{f{rable de la faire dans Gun autre fichier et laisser Finder.icons pour les ic^ones g{n{riques.MK A chaque fois qu'un nouveau disque est mis dans le lecteur, le Finder IGcherche une ic^one de catalogue et charge tout fichier d'ic^one qu'il OMtrouve. La plupart des applications ont ce type de fichier averc une ic^one pour elles-m^emes.KI Quand un document est ouvert @ partir du Finder, celui-ci essaye de ;l'ouvrir en sed servant de l'application. Cela implique :PNSi vous changez ou renommez une application, il faut aussi changer le chemin )ProDOS de ce fichier. ( Evident, non ?)+ REORDONNER LES ICONES+ ---------------------NL Une nouveaut{ dans la version 1.3 d'IconEd, une ic^one dans un fichier IGd'ic^ones peut ^etre r{ordonn{e. Quand une ic^one est d{plac{e dans sa KIfen^etre, IconEd refait l'affichage pour tenir compte du nouvel ordre. L NLapremi}re ic^one dans le fichier est toujours dans le coin sup{rieur gauche LJtandis que la derni}re est au coin inf{rieur gauche. Si cela n'est pas le ?cas, s{lectionner " Clean-up" pour tout remettre @ sa place.JH Remettre en ordre les ic^ones peut ^etre pratique quand le Finder OMcherche une ic^one pour un fichier particulier. Il va continuer sa recherche LJjusqu'@ ce qu'il trouve l'ic^oner qui va avec le fichier concern{. Sinon, PNl'ic^one a plus g{n{rale sera s{lectionn{e. ( en fait un message d'erreur va s'afficher NdT).OMNote: Tant que FINDER.ICONS est le dernier de la liste, les types g{n{riques 2(*) d'ic^ones se retrouveront dans FINDER.ICONS.L ========================================================================IGJe n'ai pas traduit les appencices, ils faisaient appel @ des adresses pr{cises := Appendice A: STRUCTURE D'UN FICHIER ICONE= ------------------------------------------NL Voici une br}ve description du format d'un fichier ic^one, utilis{ par le Finder:ICONBLK (icon file):H IBlkNext LONG ;used internally by the FinderM IBlkID WORD ;ID number for this ICONBLK ($0001)H IBlkPath LONG ;used internally by the FinderH IBlkName BYTE[16] ;used internally by the Finder? IBlkIcons ICONDATA[n] ;list of icon recordsICONDATA (icon record):NL iDataLen WORD ;length of the record (0 terminates list)? iDataPath BYTE[64] ;application pathnameN iDataName BYTE[16] ;file name associated with this iconN iDataType WORD ;file type associated with this iconM iDataAux WORD ;aux type associated with this icon: iDataBig ICON ;icon image data@ iDataSmall ICON ;small icon image dataIICON (icon record - see QDAux chapter in ToolBox Ref II for more info):0 imType WORD ;flagsE imSize WORD ;size (bytes) of icon imageF imHite WORD ;hite (pixels) of icon imageLJ imWidth WORD ;width (pixels) of icon image, (4 bits/pixel)5 imImage BYTE[imSize] ;icon image4 imMask BYTE[imSize] ;icon maskO ============================================================================E Appendice B: TYPES DE FICHIERS ET DE SUPPORTSE _____________________________________________MKCetappendice liste le diff{rents types de fichiers et de supports reconnus 4actuellement par IconEd ( remis @ jour pour GS/OS)8 Fichiers Supports9Type Nom Type NomO------------------------------------ -----------------------------------E$0001 Bad Blocks (BAD) $FFF1 SCSI partitionG$0004 ASCII Text (TXT) $FFF2 CD-ROM partitionC$0006 Binary Data (BIN) $FFF3 HD partitionH$0008 Double Hi-Res (FOT) $FFF4 Network (generic)B$000B Word Proc file (WPF) $FFF5 File ServerE$000F Folder (DIR) $FFF6 SCSI (generic)A$0019 AppleWorks DB (ADB) $FFF7 Tape DriveB$001A AppleWorks WP (AWP) $FFF8 CD-ROM diskB$001B AppleWorks SS (ASP) $FFF9 5.25" drive?$0050 Word Processor $FFFA RAM disk@$0051 Spreadsheet $FFFB 3.5" diskA$0052 Data Base $FFFC 5.25" diskA$0053 Object Graphics $FFFD Hard DriveA$0054 Desktop Publishing $FFFE Full TrashB$0055 Hypermedia $FFFF Empty Trash$0056 Educational data$0057 Stationery$0058 Help file$0059 Communications$005A Configuration$00AB GS BASIC Program$00AC GS BASIC Tools$00AD GS BASIC Data%$00B0 APW Source (SRC)%$00B1 APW Object (OBJ)%$00B2 APW Library (LIB)%$00B3 GS Application (S16)%$00B4 Run-time Library (RTL)%$00B5 Shell Application (EXE)%$00B6 Permanent Init (STR)%$00B7 Temporary Init (TIF)%$00B8 New Desk Accessory (NDA)%$00B9 Classic Desk Acc (CDA)%$00BA Toolset (TOL)%$00BB Device Driver (DVR)$00BC Generic load file%$00BD File System Trans (FST)$00BF Sound file%$00C0 SHR Screen (PNT)%$00C1 SHR Picture (PIC)%$00C8 Font (FNT)$00C9 Finder Data%$00CA Icons (ICN)$00D5 Music Sequence$00D6 Instrument$00D7 MIDI file%$00E0 Telecom data (TEL)$00E2 AppleTalk File$00EF Pascal partition%$00F0 Basic command (CMD)%$00F8 Merlin Link (LNK)$00F9 System file $00FA Integer Basic Program$00FB Integer Basic Vars%$00FC Applesoft Program (BAS)%$00FD Applesoft Vars (VAR)%$00FE Relocatable Obj (REL)"$00FF ProDOS 8 Application (SYS)N Pour la traduction avec les contre-sens, j'esp}re qu'il n'y en a pas!BUSTER APP BAL BINGObcdefghijklmnopqrstuvwxyz{|}~O=====!=========================================================================F~ Digicopy GSPm  #_________________________________#WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW#WWWWW DIGICOPY GS v1.0 WWWWW#WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWO_____________________________________________________________________________DigiCopy GS, v1.0&Ecrit par David Kletter & Tyron Khan'(c) Copyright 1988, Fantastic DesignsO_____________________________________________________________________________ ------------- INFORMATION  -------------PNCE PROGRAMME N'EST PAS GRATUIT, IL EST EN SHAREWARE. Vous pouvez l'utiliser @ B@l'essai pendant 14 jours sans obligation. Si vous d{cidez de le Agarder, vous devez vous acquitter de 10$ (ou 15$ canadiens) @: Fantastic Designs P.O. Box 120 Woodbury, New York 11797JHVous pouvez distribuer ce programme gratuitement. Votre honn^etet{ nous <:permettra de d{velopper d'autres programmes avec le m^eme HF"marketting" peu cher et de qualit{. IMPORTANT : @ r{ception de votre FDdroit, vous recevrez un num{ro utilisateur pour d'autres progiciels 4aussi n'oubliez pas de communiquer votre adresse.. GARANTIE --------LJDIGICOPY GS ( ce programme), en tant que Software, est distribu{ tel que A?sans aucune garantie ni implicite ni explicite en raison de la ECdiversit{ des formes de sa commercialisation. L'utilisateur assume DBl'enti}re responsabilit{ de ce produit. Les auteurs ou FANTASTIC HFDESIGN ne peuvent ^etre rendus responsables de quelque dommage que ce soit.--------------- MODE D'EMPLOI---------------) IGDigicopy GS a besoin d'un GS avec souris. Sa versatilit{ lui permet de ECfonctionner avec n'importe quelle configuration ou combinaison de p{riph{riques:MKRAM disques (y compris /RAM5 et la carte d'extension m{moire Apple II),ROM B@disques, disques durs, lecteurs 3,5 ( 400 ou 800 k), Duodisk ou GELecteurs de disques souple Disk II ( ou tout lecteur 5,25 Apple li{ GEau smartport ), lecteurs 40 pistes ou tout autre support de stockage *ProDOS et toute carte d'extension II GS.CARACTERISTIQUES----------------PNo Duplication rapide de disques DOS, ProDOS, CP/M et Pascal avec possibilit{ de v{rification (optionnelle)OMo Les disques souples ProDOS peuvent fonctionner plus vite que les originaux ( option QwikTrack):o Une possibilit{ de Copie multiple ( mass-production ) $o Facile @ utiliser avec la souris3o Pratique pour les possesseurs d'un seul lecteur=o Supporte les disques 40 pistes dans n'importe quel formatNLo Comme d'autres copieur, il se sert de la carte d'extension m{moire du II 6GS sans d{truire son contenu ( comme Le RAM Disque )<o Formattage intelligent avec possibilit{ de v{rification/o V{rification rapide des fichiers et volumeso Optimisation du disque4o Recherche intelligente des erreurs et correctionEXPLICATIONS------------PNDuplication -- proc{d{ de lecture-enregistrement d'informations d'un disque A?@ un autre. Les deux disques doivent ^etre identiques une fois termin{e cette op{rationLJMass Production -- utilise l'option " Bufferer Copy " ( voir ci-dessous). ECElle permet d'{crire la copie d'un disques sur plusieurs autres ( <pratique pour les {coles ( et pour les pirates donc! ndt)MKQwikTrack -- utilisant une routine plus pr{cise d'{criture, un disque 5,25 FDcopi{ avec Digicopy GS avec cette option fonctionnera plus vite que l'original.NLChecksum -- ( v{rification) :une valeur ( calcul{e par un programme tel que FDDigicopy GS ou Digipack) pour un fichier ou volume particulier qui GEpermet de v{rifier que les donn{es sont bien identiques sur la copie et sur l'original.MKOptimisation d'un disque ( ProDOS seulement )-- inscrit des z{ros sur tous CAles blocks inutilis{s effa\ant toutes les informations annul{es. ECApr}s emploi de cet option, tous les fichiers effac{s ne sont plus +r{cup{rables . < DUPLICATING A DISKETTE >PLUS DE DETAILS---------------KIDuplication de volumes: faire une copie: Activer le lecteur contenant la B@disquette qui doit ^etre copi{e en cliquant sur son nom dans la A?fen^etre SOURCE. Activer le lecteur qui doit faire la copie en FDcliquant sur son nom dans la fen^etre TARGET ( toute information de DBce disque sera d{truite). Puis il faut juste double-cliquer sur " B@Duplicate Volume". La copie se fera en respectant les choix du 2panneau " programme settings" (voir ci-dessous).NLCopie avec un tampon ( buffer): si une copie est faite en une seule passe ( ?=le disque entier est copi{ sans avoir acc}s une autre fois @ CAl'original), alors ( et seulement @ cette occasion ) le bouton " CABuffered Copy" appara^it . Cette option vous permet de faire des GEcopie multiples d'un disque. Il suffit de s{lectionner le support de ECla copie si ce n'est d{j@ fait. Puis double-cliquez sur " Buffered ECCopy". Le programme se comporte comme s'il venait juste de lire le A?disque source et est pr}t pour copier. Une fois cela fait, une GEfen^etre s'ouvre avec: " Another copy " ou "Quit". A ce moment, vous HFpouvez changer de support destination si vous le d{sirez. Vous pouvez HFchoisir " another copy" pour copier le contenu du tampon sur un autre disque ou quitter.PN<> Le nombre en haut @ gauche de la fen^etre " bufferer copy" donne le nombre CAde copies d{j@ {ffectu{es @ partir du tampon tandis que celui de FDdroite donne le nombre total de copies {ffectu{es depuis que l'on a charg{ le programme.NLR{glages du programme ( programm settings) : ce sont les r{glages de copie. HFCliquez sur " Programm Settings" pour afficher les r{glages en cours. DBVous pouvez les changer comme vous le d{sirez puis cliquez sur OK HFpour les sauver. Les copie suivantes seront faites selon ces r{glages "jusqu'@ ce que vous en changiez.OM++ V{rification du disque (DISK VERIFY)( media par d{faut): d{termine ( pour B@la plupart des lecteurs ) si la surface du disque est abim{e ou inusitable.MK++ V{rification du disque (DISK VERIFY) en {criture: ce r{glage permet une ?=v{rification des donn{es apr}s {criture. Cela permet d'^etre FDparfaitement s^ur que la copie est conforme. Ce r{glage ne s'impose > 1et .(Bascule de l'option BUFFER LARGE/SMALL)MK 6- Maintenir permet de voir les r{glages actuels qui :resteront @ l'{cran tant que les touches sont enfonc{es. !----------- !UTILISATION !----------- FORMATTAGEMK D{truit toutes les donn{es du support et pr{pare le disque @ recevoir GEdes fichiers (sous ProDOS). S{lectionner un support dans la fen^etre FDTARGET (destination-copie) puis double-cliquer sur "Format Target". HFUn curseur appar^it dans une fen^etre demandant le nom entre [ et ]. FDTaper le nom de volume ( ESC pour sortir) ou presser si le nom propos{ vous convient.OM Formatter le disque avant de copier est inutile ( voir Program Settings ci-dessus ). CHECKSUM DISK ( v{rification )NL Donne une valeur ( cheksum) pour un disque, pour pouvoir comparer avec A?un autre disque afin de savoir si la duplication est exacte ou comporte une erreur.KI Deux sortes de comparaisons sont possibles:une pour le format "DDD" CAl'autre pour le format " Optimized ". Apr}s avoir s{lectionn{ le DBlecteur contenant le disque @ v{rifier, double-cliquer sur " DISK @>CHEKSUM" . Une fen^etre s'affiche demandant de choisir quelle FDv{rification. S{lectionner en cliqhant sur le bouton correspondant. 1Le programme affichera la v{rification @ la fin NL +++ "DDD" fait une v{rification de tous les blocs du disque tandis GEque l'option "optimized" se contente de v{rifier les blocs utilis{s. GELes noms "DDD" et "Optimized" se r{f}rent aux standards utilis{s par DBDigipack. Une v{rification obtenue avec Digicopy sera identique @ celle obtenue avec Digipack.MK +++ Pour s{lectionner une v{rification, vous pouvez taper pour C"DDD" ou pour "Optimized" au lieu de cliquer sur leur bouton.VOLUME INFOSLJ Choisir un support dans la fen^etre "TARGET" et double-cliquer sur " FDVIEW VOLUME INFO". Le programme vous donne diff{rents renseignement 3en rapport avec le disque dans le lecteur choisi.0RENAME TARGET (renommer le disque destination)IG Ceci vous permet de changer le nom du volume. Choisir le volume @ FDchanger, en cliquant dessus. Puis double-cliquer sur RENAME TARGET. FDVous pouvez alors tapez le nouveau nom entre [ et ] ou garder celui "en cours en pressant sur RETURN.*OPTIMIZE TARGET (optimiser le recepteur)PN Cette option inscrit des z{ros sur tous les blocs inutilis{s d'un volume B@ProDOS ( annulant toutes les informations effac{es). Choisir le GEsupport @ optimiser dans la fen^etre TARGET. Puis double-cliquer sur C"OPTIMIZE TARGET". Le programme affiche le cours de l'op{ration .EXIT DIGICOPY (Quitter) KI Quitter le programme pour, ou retourner @ l'application @ partir de FDlaquelle Digicopy a {t{ lanc{, ou bien aller @ la proc{dure QUIT de ProDOS.LES COMMANDES OM Il est possible de s{lectionner les diff{rentes options du programme en B@pressant et la premi}re lettre de l'option. Par ECexemple, au lieu de double-cliquer sur "Checksum Disk".OPTION UN SEUL LECTEURIG Digicopy GS rend beaucoup plus facile la vie des possesseurs d'un GElecteur unique. Il leur est recommand{ d'utiliser le r{glage "BUFFER ELARGE" ( plus le tampon est grand, moins on joue au grille-pain...)JH Lors de la copie, le disque @ copier est appel{ SOURCE Disk et le ECdisque destination TARGET. Inserer les disques dans l'ordre o| ils HFsont demand{s. A l'exception des changements de disques, le programme fonctionne comme d'habitude.EC +++ Deux caract}ristiques tr}s pratiques: l'{jection et le DBred{marrage automatiques (seulement pour les lecteurs 3,5 Apple). CAQuand le programme neccessite le changement de disque, il {jecte FDautomatiquement le premier disque et, d}s l'introduction du second, +repart sans aucun intervention.(polling). OPTION 40 PISTESOM Digicopy GS poss}de la possibilit{ (unique ) de copier sur des supports ECde n'importe quelle taille y compris 40 pistes qui demanderait des proc{dures sp{ciales.PN +++ Pour formatter en 40 pistes (sous ProDOS), utiliser la proc{dure FDd{j@ {voqu{e. Pour informer Digicopy GS du formattage en 40 au lieu FDde 35 pistes, tapez le nom du volume d{sir{ puis maintenez