2IMGCdrP@@@ )4   "D}, M ) TiTWiWg2 Ԣ` H i`iK ԩ`GៀL` HK!HKH@L,0 )i/ XA)Lb +)D\]g_ ?/"p@͸  ɜUUɛ`ff  ܪ330 ˩ʙppʙppp˩pwp̺ppwwwwp&Xb0qqwqqwqwqwwqwqwwwwwwwqwqqwqwwwqwwqwqwwqwqqwwwwwqwwqqqqqqqqqqqwqqqqqqqqqwqqqqqqqwqqwqwwqwqwqwwqwqwwwwwqqwqqwwqqwwwqwqwqqwwqqqqqqqqqwqqqqqqqqqwqqqqqqqqqqwwwwqwwqwwwqwwqqwwwwqwqwqqqwqqwwwqwqwwqqqGSINF.46)&' @*GSINFOS.II0]$ $ -GSINFOS.MENUSF:<:ARTICLES<('COUV.46A (V.HEMEURY;45LES.PLUS.I#$ICONS7$+COMING.SOONS:q;p;CONTENU-##FINDER.ROOT. )p)FINDER.DATA/)p)  !"#$%&'()*+,-./0123456]^,A 6B "]B"R"A"R;8 [ " U " U " U H " U " U " U " U " U " UH "" Uh " U " U " U"9>"O  +;i kGSInfos.II ne peut donc pas continuer. Tapez RETURN pour revenir au Finder : ;8 [H"WOڅh{i H"O"R5-{iH  {iH"O +;ik;8 [{iH"O+;ik;8 [ h څ h{iH"O "" "R"!+;i k;8" [,*ii e. e0  Ș )) ch)M2 hchch)A2 hchch)I2 hchch)N< 8hhh)H hchchh  - B H{i&HY" Uh hchch hchch)JJJɠ#""U""UH8e hchchi  7  HH+" U chh i  ch h hh  hchch)  !H H{iH{i!H'" Uh ch h i d$0#/+;i.k53/Pas de bloc MAIN trouv dans l'image *0./^Continuer;8d [jhH">( B H{ihH Y" UhijhH"WOڅh{iH"O#%'"_Z>#%%'HhhI. B H{ihH Y" Uh" {i H"OHH H*BH " Uhh a " HH" """ U,Jhchc+" UJhchc+" U#H H)" U%'HhhK hh HH H{iH{i H'" Uh%'HhhH )" U hh} " UH"HHhchc" H8hhh{iH{i H'" Uh_%'Hhh> HHjhH"JI" UH" U0BHHH%" Uhchchhl*HH%" Uhh)H*{i7H " UhI,Jhchc+" UJhchc+" UH*" Uh" UH" Uflek+;ijk53/Image *0 inexistante./^Continuer53/Le fichier *0 n'est pas une image ou est dans un format non trait./^ContinuerM{moire insuffisante pour charger l'image.Erreur @ la lecture de l'image.;8  [) )")?H"P 0::   c8:hh)HH"Oڅh d"hhh) )")  ) "H"P &H"PH Hhchch "&" H"PH Hhchch H"5XHhhhHHhh "")  HH"`PHH"O "" HH"O)p  :)  " !+;i kSyntaxe incorrecte : param}tre absent.Syntaxe incorrecte : param}tre absent.M{moire insuffisante pour charger les menus.;82 ["> -"{i HJ" ک) J J"O)  Jhh-)H"R)  J"#P"5X  "B B  BB   " )  ) {iHhchch\)  {iHhchchN)  {iHhchc i0)  {iHhchch)  1{iH"O{iH> iH)HH" ih BBH i hhh BBgCJ"#PB B K""5X " BBHHhhF BBd"] BBihhh1ihhh\)  N) {iHhchcd""Ui0)  {iHhchcd""U ""Ui0)  {iHhchc ""Ui0)  {iHhchch )  {iHhchch)  {iHiH,)H{iHH" chhiH,)H{iHH" chhi H)HH" ihwJ"#PX{iH)HH" H"9O<"Z0B0B0BH"X J"#PF{iH)HH" H"+H"XJ"#Pj2B,)H{iHH" chh&B)HH" 6J"#P,,B)HH" J"#P, B)HH" J"#P+B)HH" zJ"#P+B)HH" <J"#P)B)HH" "L "B B 4"+;i2k1/GSInfos.MenusGS Infos II ne peut fonctionner sans le fichier GSInfos.Menus qui doit se trouver dans le meme r{pertoire que le programme GSInfos.II.MENUM{moire insuffisante pour charger les menus.Il ne peut y avoir que 6 menus d{finis dans le fichier GSInfos.Menus. == \N299 . >> ARTICLESyntaxe incorrecte : Les articles doivent etre associ{s @ un menu.M{moire insuffisante pour charger les menus.== p PAUSEIMAGECONTENU p TITREABOUT1ABOUT2ABOUT3ABOUT4Erreur lors de la lecture du fichier GSInfos.Menus.Aucun menu n'est d{fini dans le fichier GSInfos.Menus.;8 [ " U BB  HH H-" U " U   F H H" U  +" U    ?HH2-" U " UHH-" U " UHHQ-" U " U B." U" U" U&B (B 1" U" UH" Uh*" U+;ik>> Edition \N3 ==Annuler\N250*ZzD ==-\DN256 ==Couper\N251*XxD ==Copier\N252*CcD ==Coller\N253*VvD ==Effacer\N254D . >> Fichier \N2 ==Contenu du numro\N261 ==Rserv aux non-membres...\N262 ==Fermer\N255*WwD ==-\DN256 ==Imprimer un article...\N263*Ii ==-\DN256 ==Quitter\N260*Qq . >>@\XN1 ==A propos de GS Infos...\N257*?? ==-\DN256 . ==-\DN256 ==Afficher presse-papiers\N259;8 [{iHF:J" UHH{iH " Uh h H" U(:" U,B .Ba" U.B,BH" U:" U{" U(:" U" U" U (:" U" U" U B B" 2:" UB BH" UB B" <:" UBBH" UB B" F:" UBBH" UB B" P:" UBBH" U " U d:" U" U" U x:" U" U :" U) " U{iH|UdJ" U H{iH k  " UH" Uh H " U+;ikGS Infos (c) GS Club 1994v2.1Le magazine du GS pour les membres du club exclusivement.Ont particip ce numro double :Editeur : GSClubCe programme contient des lments de la librairie ORCA/C,copyright 1987-1993 Byte Works, Inc., utiliss avec sa permissionVu;8 [{iHP0J" UHH{iH " Uh h H" U{iHJ" UF H{iH{iH " U:" U=#" U:" Um#" U#:" U#" U-:" U#" U7:" U#" U A:" U" U$" U K:" U $" U U:" UE$" U _:" U~$" U i:" U$" U s:" U$" U:" U" U%" U{iHixJ" U H{iH ?% " UH" Uh H " U+;ikPour recevoir GSInfos, devenez membre du club !Cotisation annuelle : 400 F.Vous bnficierez des services du club : des domaines publics gratuits; vous recevrez GS Infos tous les deux mois.ATTENTION :GS Infos et ses articles ne sont pas du domaine public;cette disquette est l'organe de liaison interne du club.Si vous ne dsirez pas devenir membre, effacez-la.Le GS Club est une association loi 1901,et un groupe d'utilisateurs agr Apple.GS CLUB 6 Impasse la Croix Pommier 94120 FONTENAY-SOUS-BOISVu;8 [{iHF(:iJ" UHH{iH " Uh h H" U :" U " U&" U" U:" U&" U(:" U8'" U2:" Uy'" U<:" U'" U{iH-<J" U H{iH ' " UH" Uh H " U+;ikVous voulez imprimer un article : Rcuprez le fichier avec un traitement de texte et imprimez-le.Les fichiers sont des fichiers de type texte avec fonte tendue.Choisissez une fonte approprie et supprimez les retours chariots ventuels.Vu;8. [{iH " Ud-{i+-+-+8{iHU" U2%{i%H"Ohh ə Yd-{i'+J8hh-+HHhchc-+hhh{i%H"O{i HJ2" Lb O+"  ʽJ)  ک ) J J!# ) 6De q) ) !#Ș!8hhh#!#!8hhhi  :" UH" U#!chh8ʆ !#m) ) *#!)  )   p Yd-{i'+J8hh-+HHhchc-+hhh{i%H"O02/1+;i0kErreur lors de la lecture de l'article.;8d [jhH">- B H{ihH1Y" Uh  B0::NN" Unl%Hhh8   H"+9" U*" U@ H   H"w+.2" U*.)-+;i,k53/Menu non trouv dans la liste !/^Continuer53/Article non trouv dans la liste !/^Continuer;8 [ V"vo4B2BH(B&BH"w+Y"o S"C%MHH" Uh h 0"M2& 8 d5H`4C5&5455 5C5," U+;ik;8 [HH" UhhBB3Ș#HHL" UhIx1" U1" U1" U1" U1" U1" U B " U," Uv0" U0" U0" U0" U0" U0" U B " U," UBB+;ik;8< [#h%I"5 B0::HHk" Uh h H{iH" Uh 1!H#h#hH"Th"4* 8  7H`l77777777l77M+;i<k;8  [${8hh 8hh {iH"O"RV," U :" U$8" U8" UH "" Uh"$!#+;i"k*/System1/GSInfos.MenusRemettez la disquette GSInfos et appuyez sur la touche retour. Vous avez un seul lecteur, remettez la disquette SYSTEME et appuyez sur retour.;8* [  !#%')" U"R E<"H" Uh*B"R c<"" U"R <"HH*BH " Uh"Bh$B"R <"$B"B*BH" U"R <"iH*BH" U"R <"" U#F:" U" U" U=" U#Z:" U=" U"7{i H" U"R \="" U*BH" U"R ="*BHiH" U"R ="*BHiH" U"R ="*BHiH" U"R ="*BH" U"R ="*BHiH" U"R >"" U" U"7+;i*kErreur d{marrage Tool LocatorErreur d{marrage Memory ManagerErreur d{marrage Misc ToolsErreur allocation m{moire pour les outilsErreur d{marrage QuickDraw IIErreur d{marrage Event ManagerA Certains...Si vous n'tes pas membre du club, soyez positif, prenez une adhsion !Erreur lors du chargement des outilsErreur d{marrage Window ManagerErreur d{marrage Control ManagerErreur d{marrage Menu ManagerErreur d{marrage Line EditErreur d{marrage Dialog ManagerErreur d{marrage Font Manager;8 [" U" U" U" U" U" U" U" U" U" U" U$B"BH" U" U*BH" U" U+;ik;8 [*{iH"O)R) v?") B B2) B B BЀ+;ikGS Infos II n{cessite le syst}me 3.1 au minimum. ;8 [ BB0B(B&B4B2B.B,BB BBBBBBBBB HH" Uh6D+;ik;8 [ BB v H"X H"X   H"X  H"X H"X   H"X &B (B (B&BH"X2B 4B 4B2BH"X,B .B .B,BH"X B BB BH"XB BBBH"XB BBBH"XB BBBH"X+;ik;8 [">"G9" U"?"9" U"mH" Uh"7 " U"@"9>+;ikN J"Xkl(d@ ; [O!O#O" U+;ik H H"Phhk;8 [K0RVQV0QV  +;ik ATLXHH; [  e    +;i k; [  e+hhhk; [       +;ikHH; [    +;i k; [  +hhk; [   )QU)   )-+  H HHHH H H"gQU hh8+;ik; [   )QU)   )+  #  )0 )_X )_0X i  k )0]:)_AP[K6)?HHHHHHHH "hhhze   U  +;ik UkhQU))_kkH ATh\XKzZڭbXH`XH; [TT"TWi # " Ȁ " Ȁ  ?TZ8czHHHUH "$ Out of memoryES "\Xh h  ;T=Tm?T  Ȁ  =T ;T )s  "   i  ")0"!)    =T ;T +hhkKTHTH ;[$TjhHHhk֯YWWWYWHWWH"+hh`uW[WWWWWWWSWUWWWWWWWk; [ & dd  !F f+hhk'H; [*8e쪥+zzkh@k(((((‚Ą)WWWW  WWW; [8"Y"X+hhk "/["F\hhklXrXzX   XXk X")XXHX "X"ZUH"h`HHH8H; [  "Z % Q8  0 "] "] "Ze i @< "] "]   "ZZ "]"Y+;i kHH8H; [n^ȷp^ȷ HH"+hhhhkH; [E  ȥ  +;ikH; ["^r^ȿt^r^t^+hhkKn^p^&r^k ;8[:IȅIFejf0I{ih[k{ih[@kHiH;8  [  "^ r^t^O$>"F\^^ȩȗ na i  U GEt^r^ "]F e i  "Z "Z8  0 E r^t^ "]) i+;iki]]]HH]H]HUH]@@]H "hh] ]kHH; [n^ȗp^ȗȥȥȩn^p^ n^p^i+zzzzkHHHHH; ["^r^t^  ȷݠr^ȷt^ ȷ+;i kH ;[Fe+kK UbX`X;iX HUH "];[tXc:zZګH "htXHitX "X rXfXdXXXXXXXXXkInsufficient bank zero memory=^ "V:JJJJkD Mjn2eq=u0G|;Q L?+@ 0M&0Cr+>j|-4j+psa"I_) "/an *7S`{:h2FZnJ &I)^-dz~S &JPhnv(cm JTXiov!NSZ`ejo},06jrB(5BR_lyтG\f (Sgy:\6YzՁN 1<[(![^z}v| :@MSY 5;Tsy 1S]jr|( !)38;GW]gw} -03?BEWZ]iv3DW%5;EU[eu{"(2BHRbhr 3 h  &,6FLVug&+U+ $*Rfl.M{ q*BWpx{4a`VY:LV(2t :dfhjlnpr %2?LOdt-Gd-:DLVd,36S^k '4BEP]dx*4IS]gq{08JRZ #&"%*-69>AJMRU^afiruz}irwWvy}-2EI׃ŁȂ  #&),/258_|Y  va  JJV J JK d  -J9J`JJ%1>CJKsyJJ7=JJPV2B&BJ,BJ B28JQBpvJBJB 4P2oQ&aZ{z) k  F8!=#X!m#x!#!#!#!$" $%"E$E"~$e"$"$"%"?%%&%& &8')&y'I&'&'d(J(J(O+0)J*J+1+N+N+6F!,J',2c,Ni,&2,F,52,N,F2~-6B1N1N24I347{878788I889E<9c<9<):<h:<:<:=;=1;\=Z;=;=;=;=;=<>?v?|OQVTSESVTjTYTjTTWWTWTW\^=^ICONSv' '.GSINFOS46.ICON8 '679:QRST */GSINFOS/GSinfos GSINFOS.II%$ffffoffffffffffffffzwzz{zwzwww{z{zwzV.HEMEURYv4' '^AUTOPATCH.ROM3;93;ARTICLESv(' ',EMULATEUR.GS=p$..<.HISTOIRE.A2.17U:p&<,GALACTICA.469 \ " <(ANNONCESK <WMAJ.MAC ''<'REUNION<%EDITO ;;<'CEDEROM*  <)V.HEMEURY0 67<.DOMAINE.PUBLIC ~<+LAMP.MAY.A2  <)MOT.J.REY4 <>?@ABCDEFGHIJKLMNOP L'mulateur Apple IIgs sur Power Macintosh. Avec la gamme Power Macintosh, Apple a russit passer d'une architecture cisc (avec la gammes des 680x0) une architecture risc (gamme PowerPc) sans rencontrer les problmes d'incompatibilit que l'on aurait pu prvoir. La raison de ce succs est rechercher dans une politique stricte des mthodes de programmation (pas de programmation sauvage) et dans la qualit du systme d'exploitation du Mac. Un PowerMac n'est donc pas vraiment un Macintosh, mais c'est plutt une machine risc qui mule de faon logicielle les processeurs 680x0. Les vieilles applications conues sur les Mac base de 68000 fonctionnent donc parfaitement sur les nouvelles machines. La socit Insignia Solutions propose par ailleurs sur Power Macintosh son logiciel SoftWindow 2.0 qui permet d'muler de faon logicielle les processeurs de la famille Intel (486, 386...) et ainsi de faire tourner toutes les applications PC sur un Power Macintosh (mme Windows 95...). La puissance des machines actuelles permet donc d'envisager l'mulation logicielle comme un moyen efficace de contourner l'incompatibilit des architectures et des systmes d'exploitation. Il existe dj depuis pas mal d'annes des mulateurs logiciels pour PC, Macintosh ou Amiga permettant de faire tourner les logiciels pour les machines 8 bits aujourd'hui disparues (Amstrad, ZX Spectrum, Comodore 64, Apple II...). La faible puissance des ces machines et leur simplicit de conceptions (pas de circuits spcialiss) rendaient leur mulation relativement simple. Ces mulateurs taient gnralement disponible en freeware ou shareware, programms par des adorateurs des ces machines. En ce qui concerne les mulateurs des machines 16 bits (Atari St, Amiga, Apple IIgs, Archimde...) les choses sont beaucoup plus compliques car ces machines sont complexes. De nombreux circuits spcifiques utiliss dans ces ordinateurs sont difficiles muler (le blitter de l'Amiga, l'Ensonic du GS...). Le fait que ces machines occupent encore le march (de faon de moins en moins importante, certe), la complexit de la tche et le manque de dbouchs commerciaux expliquent l'absence d'mulateurs srieux pour ces machines. Pour ce qui est d'un mulateur GS sur Macintosh, Tony Morales (un amricain) avait annonc qu'il travaillait sur un tel projet. Le projet est encore en cours et ne connaissant pas l'tat d'avancement du projet, je ne pourrais donner aucune information supplmentaire. Ayant rencontr Auri Rahimzadeh (diteur de PowerGS) en Mars dernier, il m'a montr un mulateur GS sur son PowerMac que Dave Lyons et Andy Nicholas taient entrain de programmer. Dave Lyons nous ayant rejoint dans la soire j'ai pu discuter avec lui et utiliser cet mulateur. Petit retour en arrire rapide sur Dave Lyons et Andy Nicholas. Tous les deux travaillent chez Apple Cupertino. Andy Nicholas est l'auteur de Shrinkit et a travaill avec Dave sur le systme 6.0 et sur le finder du GS. Quand la division Apple II a t ferme, ils ont t affects la division Mac OS. Ils travaillent donc aujourd'hui sur les updates du Mac OS. L'mulateur, dont je n'ai mme pas pens noter le nom, tourne exclusivement sur Power Macintosh car bien qu'tant cris en langage C, il contient quelques routines en assembleur PowerPC. La version que j'ai test n'tait pas compltement finie mais on peut dire que 80% des choses marchaient. Pour l'instant les seules choses non encore implmentes taient les softswitchs bas niveau, l'ensonic et certains modes graphiques. On lance donc l'application et on se retouve avec un GS dans une fentre du Macintosh. Le finder du Macintosh est prsent derrire la fentre. On peut utiliser une partie du disque dur du Macintosh comme disque dur du GS et utiliser la mmoire du Macintosh comme Ram pour le GS. Comble du bonheur, il est possible d'avoir 16 Mga de Ram sur le GS... En effet, la limitation d'adressage du processeur du GS (le 65816) est de 16 Mga octets mais les circuits de la carte mre du GS au niveau des circuits grant le connecteur d'extension mmoire limite 8 Mga octets la quantit de mmoire que l'on peut enficher dans le slot. Les GS sont donc limits 8 Mga octets de Ram, bien cette 'limitation' ne soit gure gnante car les softs n'exploitent que rarement la mmoire au dessus des 4 Mga habituels... L'mulateur permet donc de faire tomber cette limitation, et on peut atteindre les 16 mgas... Les PowerMacs ayant gnralement plus de 32 Mga de Ram, il reste gnralement suffisamment l'application pour offrir ses 16 Mga l'mulateur GS. Le GS boote donc dans la fentre (on note au passage le 'glong' caractristique) et le systme 6.01 se charge trs rapidement. On se retrouve donc sous le finder GS, avec derrire la fentre le finder Mac !!! L'interaction entre les deux finders est trs bien faite. Par exemple, vous insrez un CD Rom dans le lecteur du Macintosh, son cone apparait sur le bureau du Mac, vous prenez cette cone avec la souris et vous la faite glisser dans la fentre de l'mulateur GS, le CD Rom est instantannment mont sur le bureau du finder du GS... Et c'est pareil pour les diskettes. Si vous voulez un disque dur supplmentaire sur votre bureau du GS, rien de plus simple, prenez le finder du Mac, crez une ramdisk de 10 Mga (s'il vous avez encore de la mmoire...) sous le finder du Mac, et faite la glisser dans le fentre du GS, le finder GS la monte comme un disque dur scsi... il vous suffit alors de la formatter avec l'aide de la commande Initialize du menu Disk depuis le finder du GS. Il est assez sidrant de voir le GS et le Mac s'changer les units de disque l'aide d'un simple drag and drop. Pour revenir la fentre de l'mulateur, et bien on est vraiment dans un GS. Le systme rpond aux moindres solicitations. Les sons systmes sont audibles, et de bonne qualits. On lance les applications, on revient au Finder sans problme. On peut aussi accder au Control Panel en mode text... Bref du tout bon. Formatter une diskette 800k en Prodos ne pose aucun problme, l'mulateur grant le lecteur du diskette du Macintosh comme le sien. Les diffrences entre un vrai GS et cet mulateur sont visibles mais il faut rappeler que je n'ai test qu'une bta version. Il faudra juger quand on aura la version finale en main. On sent une difference au niveau du raffrachissement graphique. Il est plus lent que sur le GS classique avec une Zip 9 Mhz. Par exemple, sous le Finder, quand on scrolle une fentre avec des cones dedans, le dfilement est plus rapide mais on a moins d'images par secondes. Certains modes graphiques comme le mode Fill ou le mode 3200 ne fonctionnent pas encore. Si le mode Fill est envisageable, le mode 3200 semble difficilement ralisable. La programmation de l'mulation de l'ensonic n'a pas encore t entamm (partie sonore) mais l'mulateur est dj capable de jouer les sons systme et de reproduire les bips de l'apple II. La gestion bas niveau des softswitchs n'est pas encore faites, les logiciels passant directement par le hard pour aller lire des informations ne marchent pas encore. On a donc faire un produit trs avanc dont la plupart des fonctionnalits feraient dj le bonheur de nombreuses personnes... Le dveloppement de cet mulateur explique aussi la correction du FST HFS en novembre dernier par Dave Lyons. Je n'avais pas compris l'poque pourquoi aprs avoir arrt depuis plus d'un an de s'occuper du systme Dave avait corrig ce HFS. La rponse vient avec cet mulateur, dont la correction de la gestion de structure HFS par le systme du GS devenait capitale. La seule question que l'on doit se poser maintenant est de savoir quand ce produit sortira. En effet le status de cet mulateur est trange. C'est un produit Apple car dvelopp par deux employs de chez Apple mais ils ne sont pas pays pour le faire. Visiblement ils font a le soir chez eux... Dave n'a pas t trs clair l dessus mais il semblerait qu'Apple pourrait distribuer gratuitement cet mulateur avec une prochaine version du systme d'exploitation du Mac. Ceci est prendre au conditionnel car Apple nous a dj habitu laisser de nombreux produits quasiment finis sur les tagres (carte ethernet...). Le soir o j'tais chez Auri avec Dave, Dave a fait signer les papiers de confidentialit Auri sur ce projet d'mulateur. Evitez donc de mailer Dave propos de cet mulateur, car mon avis il ne rpondra pas... Je ne sais pas combien de personnes sont au courant de l'existence de ce projet. Enfin, il faut se dire qu'un tel produit existe et qu'il a de grande chance de sortir un jour. Cet mulateur offrira la possibilit tous ceux ayant quitt le GS ou dsirant l'abandonner au profit du Mac de continuer utiliser dans une fentre de leur Macintosh (prvoyez quand mme un gros Mac) leur Apple IIgs. La possibilit d'un GS portable s'ouvre aussi, mais vu les prix des PowerBook, cela restera du luxe. Mais le plus important est qu'avec le portage imminent du Mac/OS sur des architectures trangres (Intel, Sparc de Sun...), il nous sera possible d'utiliser notre GS partout, de faon transparente travers les diffrents systmes. L're de la multi-compatibilit s'ouvre enfin nous... Vivement l'OpenGS... Olivier ZARDINIu /GS.INFOS/GSinfosGSINF*OSDU]UU]QU]UU]UU]UU]UUUUUUUUUUUUUUUUUUUUUUU\UU\UUU\UUU\UU\U"/""/""""ofofoff/offfooff"/"/"""/offfoo/offfooffoffoooo"/"//"/"/ofoffoooffVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Lhistoire de lApple II ===================== Compil et crit par Steven Weyhrich (C) Copyright 1992, Zonker Software Traduction franaise de Philippe Manet (17me partie -- Les langages de programmation 2/2) [v1.0 :: 22 Janvier 1992] Le Pascal dApple ================ Applesoft tait facile utiliser parce quil tait interactif. Vous entriez une commande et vous pouviez immdiatement la tester. Linconvnient tait labsence de commandes plus sophistiques, et il pouvait tre difficile de crer des programmes de taille consquente et donc complexes. Des efforts furent entrepris au sein dApple pour dvelopper un langage plus complet pour lApple II, qui pourrait tre mis jour et modifi si ncessaire. Comme Applesoft tait en ROM, cela cotait plus cher et il tait plus difficile pour lutilisateur final dinstaller de nouvelles versions de ce langage. En 1979, le Language System incluant lApple Pascal fut commercialis. Il tait vendu au prix lev de $495, et tait fourni sur quatre disquettes 51/4 (utilisant le systme de fichiers Pascal, bien entendu). Il comprenait aussi les ROMs ncessaires pour modifier les contrleurs de disquettes 13 secteurs en disquettes 16 secteurs, ainsi que la Carte Langage qui devait tre insre dans le slot 0. Comme cela a t indiqu dans de prcdents pisodes de cette Histoire, la Carte Langage tait une carte comportant 16 Ko de RAM transformant lApple II en une machine ayant la totalit des 64 Ko adressables. A cause de cette mmoire supplmentaire, le systme Pascal pouvait se charger en mmoire sans avoir tenir compte de linterprteur Applesoft (ou du BASIC entier). Et avec certaines techniques complexes de basculement de bancs de mmoire, on pouvait continuer utiliser les routines du Moniteur si on en avait besoin. Apple dcida dutiliser la version du langage Pascal dfinie par lUniversit de Californie San Diego (UCSD). Pour permettre leur portabilit entre diffrents ordinateurs, les programmes en UCSD Pascal taient compils dans un code spcialis appel P-code. Les programmes en P-code pouvaient alors tre excuts sur nimporte quel ordinateur ds lors quils disposaient de linterprteur appropri. Un programme en Apple Pascal pouvait alors tre excut un peu plus rapidement quun programme Applesoft (car il tait compil), mais pas aussi rapidement quun programme en assembleur. La puissance supplmentaire que ce langage procurait en faisait un choix attractif pour certains programmeurs. La premire version dApple Pascal reut des plaintes de la part des utilisateurs car elle ne pouvait pas exploiter les minuscules (pour ceux qui avaient modifi leurs Apple II pour les afficher), et il tait si volumineux quil tait difficile utiliser par ceux qui ne disposaient que dun seul lecteur de disquetttes. Comme le Pascal UCSD original avait t conu pour tre utilis avec un cran texte de 80 colonnes, cela posait quelques problmes avec lՎcran 40 colonnes des Apple II. Pour les Apple II qui ne disposaient pas de carte 80 colonnes, le Pascal dApple affichait une moiti de lՎcran la fois. Dans lՎditeur, la saisie dune ligne de longueur suprieure 40 colonnes provoquait le dfilement de lՎcran vers la gauche. Lutilisation des flches pour se dplacer vers la gauche provoquait le dfilement inverse de lՎcran vers la droite. Si ncessaire, on pouvait basculer directement vers lune ou lautre moiti de lՎcran en appuyant sur la touche Contrle-A. <1> La restriction principale dApple Pascal venait du fait quil ncessitait que lutilisateur possda la carte langage (ou lune des cartes 16 Ko quivalentes qui apparurent ultrieurement sur le march), et quil tait incompatible avec limportante collection de programmes et de fichiers qui taient dj largement disponibles sous DOS 3.2. Par la suite, avec la prolifration dApple IIe 64 Ko et dApple IIc 128 Ko, la plateforme ncessaire pour les applications en Pascal tait disponible. Mais cette poque, le systme dexploitation pour lApple II promu par Apple tait ProDOS, et Apple ne commercialisa jamais officiellement une version de son Pascal UCSD qui aurait fonctionn avec ce systme dexploitation. Le systme Apple Pascal volua jusquՈ la version 1.3, qui reconnaissait les spcificits des Apple IIe et IIc, mais qui ne fonctionnait pas aussi bien avec le IIGS que certains lauraient voulu. A la place, les programmeurs sur IIGS disposent dsormais de versions de Pascal distribues par des tierces parties (comme ORCA/Pascal de ByteWorks), et qui tirent parti du mode 16 bits de cette machine. Instant Pascal ============= Cette version de Pascal fut programme par Think Technologies, et Apple acheta par la suite le droit de la commercialiser en tant que programme dapprentissage du langage Pascal. Elle ne pouvait tre excute que sur lApple IIc ou sur un Apple IIe quip de 128 Ko de mmoire, car elle utilisait le mode graphique double haute rsolution, fonctionnant de manire similaire au bureau du Macintosh, avec de multiples fentres redimensionnables. Elle disposait dun diteur exploitant la souris qui validait la syntaxe du programme ds quune ligne avait t entre ( la manire du BASIC entier) et grait automatiquement lindentation des lignes, et marquait en gras les mots clefs du langage Pascal. Comme cette version avait pour but lapprentissage du Pascal, elle disposait aussi dune fonction dexcution pas pas et de la possibilit de modifier les variables pendant lexcution du programme. Bien que de bonne qualit dans son rle dapprentissage du langage, elle tait assez lente cause de la charge de travail supplmentaire pour tout afficher en graphique, et parce quil sagissait dune version interprte du langage (au lieu dune version compile). Les fans de lApple Pascal original se plaignrent fortement aprs quApple et introduit Instant Pascal. Une fois que ce nouveau Pascal fut commercialis, Apple ne sembla plus motiv pour raliser de nouvelles versions de lancien Pascal, qui utilisait toujours lancien systme de fichiers spcifique au Pascal (Instant Pascal tournait directement sous ProDOS). <2> FORTRAN ======= Commercialis par Apple en 1980, Apple Fortran sexcutait sous le systme dexploitation Pascal. Il cotait $200 (en plus des $495 quil fallait dpenser pour obtenir le Language System). Les programmes crits en FORTRAN pour dautres ordinateurs pouvaient tre excuts sous Apple Fortran quasiment tels quels (si des utilisateurs avaient besoin de cette compatibilit). En tant que langage compil, les programmes sexcutaient plus rapidement que ceux crits en Applesoft, et probablement aussi plus rapidement que ceux crits en Pascal, car les programmes FORTRAN nՎtaient pas traduits en P-code intermdiaire, mais directement en langage machine. Le FORTRAN dApple comportait cependant de nombreux bugs, et il ne fut jamais mis jour aprs son introduction en 1980. Il disparut des catalogues dApple en septembre 1986. Une autre faon de disposer du langage FORTRAN pour un utilisateur dApple II tait dacqurir la Softcard Z-80 de Microsoft qui cotait $345 et le compilateur FORTRAN de Microsoft qui tait vendu au prix de $200. Cette version de FORTRAN tait plus riche que celle dApple, et offrait quelques autres facilits dutilisation. Elle ne ncessitait pas la mise niveau du contrleur de disquettes en 16 secteurs (si vous ne vouliez pas le faire). De plus, le BASIC Microsoft (qui tait plus sophistiqu quApplesoft) tait fourni en standard avec la Softcard. <3> En juin 1987, Pecan Software introduisit un compilateur FORTRAN pour lApple IIGS. Il fonctionnait sous ProDOS 16 (GS/OS), mais utilisait toujours un format UCSD en crant un fichier ProDOS qui reprsentait un volume UCSD. <3> Autres langages =============== PILOT : conu principalement pour raliser des modules denseignement assist par ordinateur, ce langage permettait aux enseignants de raliser des programmes interactifs qui instruisaient les lves et testaient leurs rponses pendant leur excution. Une premire version fut programme en Applesoft et exploitait le mode texte. Par la suite, Apple commercialisa sa propre version qui fonctionnait sous le systme Pascal, et tait vendue au prix de $125. <4> FORTH : CՎtait un langage intressant dcrit comme extensible. Il comprenait un certain nombre de commandes pr-programmes, et de nouvelles commandes pouvaient tre ajoutes au langage trs facilement en donnant simplement leur dfinition. Ces nouvelles commandes pouvaient leur tour tre utilises dans des programmes plus importants. Deux versions commercialises la fin des annes 1970 furent Apple Forth 1.6 (Capn Software) et 6502 Forth 1.2 (Programma International). Apple Forth 1.6 tait un bon logiciel, mais il utilisait un systme dexploitation spcifique qui nՎtait pas compatible avec DOS 3.2. La version de Programma tait plus complte, mais aussi plus difficile matriser. <5>, <6> LOGO : Dvelopp partir du langage LISP (LISt Processing, i.e. traitement de listes) en tant quassistant lapprentissage, Logo a t un langage populaire au cours des annes dans lenvironnement scolaire. La premire version du Logo dApple (qui fonctionnait sous le systme Pascal) pouvait tre excute sur tous les Apple II 64 Ko, tandis quApple Logo II (commercialis en juillet 1984 au prix de $100) fonctionnait sous ProDOS et ncessitait un Apple II de 128 Ko de mmoire. <7> COBOL : Ce langage connut une diffusion limite sur Apple II. La seule version que je connaisse est celle de Microsoft. Elle tait vendue au prix de $599 et tournait sous le systme CP/M avec la Softcard de Microsoft. <8> C : Ce langage est actuellement trs populaire auprs des programmeurs dits avancs. Il dispose en partie des possibilits de structuration du Pascal, mais offre aussi des fonctions de bas niveau similaires lassembleur [NdT : un compilateur C fut commercialis pour les Apple II 8 bits : il sagissait de Aztec C de Manx; bien que tournant sous DOS 3.3, il disposait de son propre environnement qui tait similaire celui dUnix, et tait trs lent]. Assembleurs =========== Une grande quantit dassembleurs a t commercialise au cours des annes. Le premier fut, bien entendu, le mini-assembleur inclus dans la ROM du BASIC entier. Il tait seulement bon pour la saisie immdiate de code assembleur; si des modifications taient ncessaires, il fallait en gnral resaisir compltement une bonne partie du code. Quelques autres assembleurs disponibles les premires annes furent : TED/ASM : dvelopp en interne chez Apple et distribu involontairement vers mai 1978, cet assembleur prsentait des conflits de mmoire avec DOS, si bien quils ne pouvaient pas tre utiliss simultanment. Le module dՎdition de texte fut crit par Randy Wigginton, tandis que lassembleur fut programm par Gary Shannon. Au dbut, ce fut le seul assembleur tournant sur Apple II dont ils disposaient. <9> RANDYS WEEKEND ASSEMBLER [NdT : lassembleur du weekend de Randy] : aussi programm par Randy Wigginton, cet assembleur fut distribu hors dApple en septembre 1978. LՎditeur de textes tait essentiellement programm en SWEET-16 (lՎmulateur 16 bits de Steve Wozniak rsidant dans la ROM du BASIC entier), et tait donc lent. Malheureusement, il avait aussi son lot de bugs. <9> MICROPRODUCTS ASSEMBLER : le premier assembleur commercialis pour lApple II, cՎtait un assembleur quatre caractres, ce qui signifiait que les tiquettes (identifiant les lignes et les variables du programme) ne pouvaient utiliser que quatre caractres de longueur. Par la suite, il fut tendu pour utiliser des tiquettes de six caractres. En dpit de quelques bugs gnants, il tait bon march, car il ne cotait que $39,95. <10> SC-ASSEMBLER II : probablement le deuxime assembleur Apple II qui fut distribu commercialement. De lextrieur, il ressemblait lassembleur de Microproducts, mais il tait mieux suivi et rgulirement mis jour. Il tait trs compact, car il utilisait intensivement du code SWEET-16. Par consquent, il nՎtait pas trs rapide lors de lassemblage. Son auteur, Bob Sander-Cederlof, lana par la suite un bulletin dinformation appel Apple Assembly Lines la fois pour supporter son produit, et aussi pour tre un centre dinformation sur la programmation en assembleur 6502, ses trucs et ses techniques. <10> BIG MAC/MERLIN : vendu lorigine par A.P.P.L.E. sous le nom de Big Mac, et par la suite sous le nom de Merlin par Southwestern Data Systems (connu plus tard en tant que Roger Wagner Publishing). Cet assembleur a t trs bien support au cours des annes et a t mis jour de nombreuses fois. Cest lun des derniers assembleurs qui a eu une version pour le 65816 et GS/OS, tout en restant compltement compatible avec les prcdentes versions pour le 6502. Il est vendu actuellement sous deux formes : Merlin 816 (incluant une version 8 bits) et Merlin 16+. Lauteur, Glen Bredon, a aussi ralis de nombreux autres programmes et utilitaires pour lApple II. ORCA/M : vendu par ByteWorks, la version actuelle a t choisie par Apple Computer pour tre lassembleur officiel de lenvironnement de dveloppement APW (Apple Programmers Workshop) pour le IIGS [NdT : depuis que cet article a t crit, APW a t abandonn par Apple, tandis que ORCA/M a continu dՎvoluer]. Depuis, ByteWorks a tendu sa ligne de langages de programmation avec des versions de Pascal, de C, du BASIC ainsi que dautres langages [NdT : Modula 2 et Logo]. APPLE EDASM : CՎtait lassembleur original vendu officiellement par Apple pour les Apple II Plus et les machines 8 bits ultrieures. Bien quil ne soit plus support (ORCA/M layant supplant dans lenvironnement APW), les premires versions pour DOS 3.3 furent distribues sur la disquette Apple Toolkit, qui comportait aussi un gnrateur de caractres graphiques haute rsolution pouvant tre interfac avec des programmes Applesoft. Les premires versions ProDOS de EDASM furent vendues avec un dbugger de code 65C02 appel BUGBYTER [NdT : qui est un peu lanctre de GSBugs, avec lequel il partage quasiment la mme interface]. UCSD PASCAL ASSEMBLER : cet assembleur tait fourni avec le systme Pascal dApple; il tait populaire, car il offrait la possibilit dutiliser des macros, pouvait faire de lassemblage conditionnel, crer du code relogeable, et il disposait dun bon diteur. Cependant, les programmes dvelopps avec cet assembleur ne pouvaient pas tre excuts sur les Apple II sans carte langage, car il ny avait pas cette poque dutilitaire permettant de transfrer les fichiers sur une disquette DOS 3.2 (par la suite, A.P.P.L.E. publia des utilitaires de transfert appels PUFFIN et HUFFIN pour la copie de et vers DOS 3.3, appels ainsi daprs lutilitaire MUFFIN dApple pour le transfert de fichiers de DOS 3.2 vers DOS 3.3). Autres assembleurs divers : ASM/65 vendu par Programma; EAT (Edit et Assemble Text) vendu par Software Concepts et programm en BASIC entier; et L.I.S.A vendu par Laser Systems. <10> Macros et Scripts ================ Avec laugmentation de la complexit des programmes dapplications, est arriv un deuxime niveau de programmation. Cette extension a t appele une macro, signifiant quune seule tape pouvait accomplir ce qui auparavant ncessitait plusieurs tapes successives, ce qui demandait donc un effort supplmentaire. Parmi les premiers exemples de ce type de fonctionnalit, on trouvait des utilitaires sous DOS 3.3, qui permettaient, par exemple, dappuyer sur la touche Contrle-C pour faire apparatre la commande CATALOG sur la ligne de commande. Dans cet exemple, une macro tait utilise pour viter davoir taper sur toutes les touches ncessaires pour entrer la commande et donc acclrer les actions rptitives. Des macros similaires taient disponibles pour les programmeurs BASIC, associant une commande du BASIC une touche de contrle, acclrant ainsi la saisie des programmes (ce type de macro est diffrent des macros utilises avec les assembleurs tels que Big Mac/Merlin et lassembleur du systme Pascal. Dans ce cas, une macro est une nouvelle commande qui est dfinie pour reprsenter plusieurs codes doprations de lassembleur. Cela ne raccourcit pas le programme rsultant de lassemblage, mais facilite la saisie de plusieurs squences de code assembleur identiques). Les programmes dapplications incorporrent ce concept en fournissant la possibilit de dfinir des macros (soit de faon intgre au programme, soit par lintermdiaire dune extension tierce partie). Avec le temps, certains de ces systmes de macro sont devenus si complexes quils sont devenus des langages de programmation part entire. En fait, on les dsigne plus souvent sous le terme de langages de script pour indiquer quils dirigent lexcution dun programme de la mme manire quun ralisateur de cinma dirige son film partir du scnario (script). Ils ont dabord t populariss par les programmes de tlcommunications, o le processus de connexion un ordinateur distant, de tlchargement des nouveaux messages, et denvoi des rponses peut tre facilement automatis en analysant les messages envoys par lordinateur distant en rponse aux commandes que le script lui envoie, afin deffectuer les actions appropries. Ils ont ensuite t populaires dans des programmes tels que AppleWriter (avec le langage WPL, Word Processing Language) et AppleWorks (UltraMacros), qui offraient chacun leur propre mthode dautomatisation des tches rptitives. Un bond dans la complexit ======================== Lenvironnement dՎcriture, de compilation et de mise au point des programmes a volu au mme rythme que les applications ralises laide de ces programmes. A lorigine, lApple II et les autres ordinateurs de cette poque taient exploits dans un environnement dit interface ligne de commandes. Cela signifie que chaque commande est entre une par une, et parfois plusieurs commandes sont regroupes dans un fichier de commandes afin de simplifier les tches rptitives (comme dans le cas des fichiers EXEC du DOS dApple). Un exemple de ce type de mode opratoire est obtenu en dmarrant Applesoft (ou en utilisant MS-DOS sur un PC). Tout ce qui peut tre fait avec ce langage doit tre spcifi en tapant la commande approprie au clavier. Une faute de frappe dans la saisie de la commande provoque laffichage dun message derreur et la machine refusera systmatiquement dexcuter ce que vous lui avez demand. La mme ligne de commande est utilise la fois pour entrer les lignes constituant un programme BASIC, et pour lexcuter. Cette mthode fut employe parce que cՎtait celle laquelle les programmeurs de lՎpoque taient habitus. Pratiquement tous les ordinateurs antrieurs la rvolution micro-informatique fonctionnaient de la mme manire, mme si cela tait au travers de cartes perfores et non tap sur un clavier. Des diffrences mineures existaient de temps autre dans les diffrents langages des ordinateurs, mais aucune neut rellement dinfluence et ne changea la manire dont les gens utilisaient les ordinateurs jusquՈ lapparition du Macintosh en 1984. Le Macintosh employait une mthode radicalement diffrente pour son interaction avec lutilisateur. Au lieu de taper chaque commande, lutilisateur allait pointer sur quelque chose lՎcran et cliquer sur cette chose en utilisant la souris qui lui avait servi dsigner cette chose. Les programmeurs du Macintosh appliqurent ce concept toutes les applications qui laccompagnrent. Cet environnement diffrent fut appel interface graphique que lon abrge habituellement en GUI (Graphical User Interface), et exploite la notion dobjets plutt que le concept de commandes saisies au clavier. Pour supprimer un fichier, vous ne tapez pas la commande DELETE FICHIER; la place, vous dsignez limage (licne) reprsentant ce fichier et vous la faites glisser sur limage dune poubelle. Ce bureau dfinit des commandes plus compliques accessibles au travers de menus qui apparaissent dans des botes que lon appelle fentres et qui sont droules comme des stores partir de noms dfinissant des catgories de commandes situes sur une barre de menu. Avec la disparition de la ligne de commandes, les mthodes traditionnelles de manipulation des donnes se modifirent en consquence. Les mots sont toujours saisis dans un document avec un traitement de texte, mais les fonctions permettant de positionner les marges, les tabulations et les sauts de page ont t traduits en des icnes graphiques slectionnes la souris. Finalement, ces volutions sont aussi apparues dans les environnements des programmeurs. Le texte constituant un programme est saisi peu prs de la mme manire quun document quelconque dans un traitement de textes, tandis que la commande pour le compiler en un programme excutable est dsormais choisie partir de la barre de menus en haut de lՎcran. LՎtape suivante fut le concept de programmation oriente objet. Grce cette mthode, les dtails sur les fentres, les barres de menus, les boutons, et les autres lments standards dune interface graphique sont utiliss pour crer dautres programmes qui exploitent une interface utilisateur cohrente. Au lieu davoir dfinir laborieusement octet par octet la manire de crer une fentre, lordinateur sait dj comment le faire; le programmeur doit seulement indiquer la machine quelle est sa taille et o elle doit tre place sur lՎcran. La programmation oriente objet permet demployer des modules plus petits (quon appelle objets) pour construire un produit final plus complexe. Un langage qui permet dexploiter les concepts de la programmation oriente objets est dsormais disponible sur lApple II, mais avant den parler, quelques mots dintroduction sont encore ncessaires. LHyperTexte ============ Le terme HyperTexte a t cr par lauteur de Computer Lib, Ted Nelson et se rfre une mthode permettant lutilisateur de passer dun concept un autre dans un texte en reliant les deux concepts ensemble. <11> Le premier type de programme qui utilisa de lHyperTexte tait bas simplement sur du texte. Certains mots du texte dun document visualis taient mis en valeur pour indiquer que dautres informations sur ce mot taient disponibles ailleurs. Le dplacement du curseur sur ce mot et lappui sur une touche affichait ces informations complmentaires. Par exemple, dans un article sur lhistoire de la musique, le mot sonate pourrait tre mis en valeur. La slection de ce mot renverrait un autre article discutant les sonates en plus grand dtail. Lorsquil en a termin, lutilisateur revient son document de dpart au point o il en tait rest en suivant le lien en sens inverse. Tutor-Tech fut le premier systme dHyperTexte complet pour la srie des Apple II. Il fonctionnait sur tous les Apple II 8 bits et tait principalement destin aux environnements scolaires. Entirement en mode graphique, il dfinissait certaines parties de lՎcran comme tant des boutons et le positionnement du pointeur sur lune de ces zones permettait au programme dafficher un autre cran ou de faire que quelque chose dautre se passe. Comme pour toutes les applications graphiques, des icnes qui reprsentaient certaines fonctions taient utilises pour activer les commandes correspondantes (par exemple, pour quitter le programme, il fallait pointer sur limage reprsentant une porte sur laquelle tait inscrite le mot EXIT). En 1986, un programme remarquable fit son apparition sur le Macintosh; il fut distribu pendant un temps avec tous les Macintosh vendus. HyperCard tait un systme trs complet qui mettait en uvre le concept dHyperTexte, et ajoutait un langage de programmation consistant en des mots et des phrases qui taient plus proches de lAnglais que tout ce qui avait pu tre ralis sur micro-ordinateur auparavant. Le systme HyperCard grait tous les dtails concernant laffichage de botes ou de boutons, et laissait seulement lutilisateur la dsignation de lendroit o il voulait les placer ainsi que du nom leur donner. Et, cause de la richesse du langage (quApple appela HyperTalk), les actions de lutilisateur pouvaient tre beaucoup plus sophistiques que le simple dplacement vers une autre image (appele carte par le programme). Il tait possible de programmer des bases de donnes simples, des jeux, et bien dautres choses grce ce systme. Puisquil appelait carte une partie dune application, un ensemble de cartes constituant une application HyperCard tait dsign sous le nom de pile. Avec lintroduction de lApple IIGS, la puissance ncessaire tait enfin disponible dans le monde Apple II pour raliser un produit similaire. Mais il ne vint pas en premier dApple; sa place, Roger Wagner Publishing introduisit un produit appel HyperStudio en mai 1989. Ce programme utilisait les modes graphiques super haute rsolution de lApple IIGS pour implmenter son propre type de piles. Comme HyperCard sur le Macintosh, HyperStudio utilisait des boutons et des objets sur lՎcran pour organiser les dplacements dans une application constituant une pile. Il comprenait aussi une carte dinterface permettant de digitaliser facilement des sons pour les inclure dans les piles. Bien que plus complet que Tutor-Tech, il nՎtait pas aussi souple quHyperCard, car il lui manquait un vritable langage de programmation. En janvier 1991, Apple distribua HyperCard IIGS qui tait une adaptation de la version Macintosh. Cela apportait enfin un environnement complet de programmation hypermdia lApple IIGS. Plus tard cette anne-l, Roger Wagner Publishing rpondit avec une version amliore de son produit HyperStudio qui incluait aussi un langage de programmation similaire HyperTalk, ce qui permettait de mieux contrler les piles ralises avec ce logiciel. Bien quaucun de ces produits noffraient lutilisateur avanc laccs tous les dtails du systme de la machine (comme cest le cas du langage C ou de lassembleur), cela permettait un dbutant de raliser des programmes qui font appel du graphisme et du son, sans quil ait connatre la manire quutilise le matriel pour parvenir au rsultat. Cette possibilit, ainsi que la souplesse offerte par ces deux produits, conduisit Dennis Doms dans un article principal dA2-Central suggrer quHyperCard GS (et maintenant ventuellement HyperStudio) allaient devenir lApplesoft des annes 1990; cest--dire quun utilisateur dApple IIGS disposant dHyperCard GS peut crer des programmes aussi facilement quun programmeur Applesoft des annes 1980 pouvait le faire, mais avec un rsultat beaucoup plus attractif. <11> +++++++++++++++++++++++++ Prochain pisode : Logiciels +++++++++++++++++++++++++ Notes ===== <1> Walls, Keith S. The Fantastic New World Of Apple Pascal, PEEKING AT CALL-A.P.P.L.E., VOL 3, 1980, p. 237. <2> Howerton, Christopher & Purvis, Lee. The Apple IIGS Pascal Revue, CALL-A.P.P.L.E., Avril 1988, pp. 12-17. <3> Winston, Alan B. The Multi Lingual Apple, PEEKING AT CALL-A.P.P.L.E., VOL 3, 1980, pp. 222-224. <4> Vanderpool, Tom. GEnie, A2 ROUNDTABLE, Mars & Aot 1991, Category 2, Topic 16. <5> Winston, Alan B. The Multi-Lingual Apple: Languages, PEEKING AT CALL-A.P.P.L.E., VOL 2, 1979, pp. 183-190. <6> La version de Cap'n Softwares version fut crite par John Draper, le pirate lgendaire du tlphone Capn Crunch qui travailla Apple ses dbuts. Durant son emploi chez Apple, il conut lune des premires cartes dinterface pour lApple II : il sagissait dun priphrique contrlant le tlphone mais qui permettait aussi de truander les commutateurs longue distance des oprateurs, et tait donc quelque peu illgale. <7> -----. Apple Computer, Inc, APPLE IIc Memory Expansion Card Owners Guide, Singapore, 1986, pp. 2-4. <8> -----. (publicits), CALL-A.P.P.L.E. IN DEPTH #1, 1981, p. 106. <9> Hertzfeld, Andy. A Consumers Guide To Apple II Assemblers, PEEKING AT CALL-A.P.P.L.E., VOL 2, 1979, pp. 164-166. <10> Hyde, Randall. Assembler Maxi-Reviews, PEEKING AT CALL-A.P.P.L.E., VOL 3, 1980, pp. 240-246. <11> Doms, Dennis. An Applesoft for the 1990s, A2-CENTRAL, Mars 1991, p. 7.09-7.13. -VY,C ~ExpressLoadY {4I x0E K$" "h&HHH"z " h[ic"  &H"h8h:HHH| HHC"hH"HH9""H"h*""᭔ N *"᭔ )?HH "h HA1"hh  O AutoPatch II(C) Vincent Hemeury 1996Modifie les programmes Captain Blood et Shuffle Puck Cafe pour qu'ils fonctionnent sur un Apple IIGS ROM 03.H  AutoPatchNew York   ! 0>"h lHH" ;[+`2.*:H8H""") "N) PH,"` g ]`^ɐ| V g |Ȋd|ȊkȊrȊLT@ g ]`08ɐ| g |Ȋ=8Ȋ68|ȊD8Ȋ Z e" 7" |ȊȊ|ȊȊ" 7" 'LOf g ]`08|ɐ g ᩯȊ68Ȋ=8ȊD8Ȋ Z e" 7" ᩯȊȊȊȊ" 7" 'LO g ]`^|ɐ V gC ᩯȊdȊkȊrȊ Z eLO0HHHHHUHHA"A`KM" 9)D0$Hڢ "hD <*GS.PERITELBg<+GSINF.46BIS[<LES.PLUS.I56< 1TEXTBOBOComme je l'annonais dans le numro prcdent, certaines revues diffusent les mises jour du systme Mac. Ces mises jour n'tant pas les mmes pour tous les Mac, elles doivent tre installes aprs une lecture attentive de ce qui suit, surtout pour ce qui concerne la 7.5. V2.0. On trouve ces mises jour sur le CD d'Univers Mac n58 de Juillet 96. Golden aprs l'annonce du bug a prfr annuler . Mise jour du systme 7.5.2 ou 7.5.3.PCI ------------------------------------- pour raliser cette instalPfZ E mT EnN Ef/<?pMAJ.MACTEXTMACA TEXTMACA21f$J.gHn/<N@Hnਝ?< / ?<J,g HnڪHnԪL N^NuNV/-l-l=x ~`Hn?N=n\RGlo1lation, votre macintosh doit dj utiliser une des versions suivantes de Mac OS : Systme 7.5 ou Systme 7.5.1. systme 7.5.3.PCI ---------------- L'installation de ce logiciel ne doit tre effectu que sur les Macintosh suivants: - PowerMacintosh 7200/75 - PowerMacintosh 7200/90 - PowerMacintosh 7500/100 - PowerMacintosh 8500/120 - PowerMacintosh 9500/120 -PowerMacintosh 9500/132 L'installation sur toute autre modle de Macintosh est formellement dconseill par Apple. Si toutefois cette installation tait ralise, Apple dclinera toute responsabilit sur les consquences qui pourraient s'en suivre. systme 7.5.2 ------------ ATTENTION Cette mise jour contient un bug au niveau du son et sur certaines machines le son disparat totalement. Cette version du systme ne peut s'installer que sur un Macintosh AV ou pourvu d'un moniteur Apple AV. Apple prvoit la sortie d'un patch pour corriger le problme La Mise Jour 2.0 du Systme 7.5 est une nouvelle mise jour du logiciel systme Mac OS, destine amliorer de faon trs significative la stabilit du systme d'exploitation, tout en apportant des progrs notables l'utilisation de votre ordinateur Apple Macintosh. La nouvelle Mise Jour 2.0 du Systme 7.5 ajoute en effet de nouvelles fonctions au logiciel Systme, ainsi qu'aux technologies utilises dans les rseaux et tlcommunications, dans le multimedia et d'autres domaines en progrs. La Mise Jour 2.0 du Systme 7.5 est, en fait, essentiellement destine amliorer d'une part le Systme 7.5 et remplacer d'autre part la version 7.5.1 de ce mme Systme, si vous utilisez dj l'un ou l'autre sur votre Macintosh. Cette nouvelle mise jour permet, en ralit, de bnficier des avantages du nouveau Systme 7.5.3. Effectuer la migration vers le Systme 7.5.3 prsente donc de nombreux attraits; cependant nous vous recommandons de n'effectuer cette mise jour que pour les raisons suivantes : de faon bnficier des nouvelles fonctionnalits offertes, par exemple, par Open Transport, QuickDraw 3D, . . . pour rsoudre certains soucis spcifiques, que vous auriez pu rencontrer, pour utiliser des applications particulires exigeant le Systme 7.5.3 (comme par exemple le kit de connexion Internet - AICK 1.1.1). Plus prcisment, la Mise Jour 2.0 du Systme 7.5 : est recommande aux utilisateurs de Macintosh Quadra ainsi que des autres modles haut de gamme base de 68000 et des premiers Power Macintosh des sries 6100, 7100 et 8100, qui fonctionnent dj sous Systme 7.5, est recommande aux utilisateurs de Macintosh Powerbook base de 68000, qui fonctionnent dj avec la version 7.5, Mais la Mise Jour 2.0 du Systme 7.5 : ne doit pas se substituer au logiciel "Systme 7.5.3 pour Power Macintosh sries 7200, 7500, 8200, 8500 et 9500" pr-install sur votre disque dur ou, si vous n'en disposez pas encore, qui peut vous tre envoy GRATUITEMENTsur CD-ROM suite votre inscription, soit sur le service 3615 code Apple, soit directement auprs de votre point de service Apple, n'est pas conseille si vous disposez d'un Macintosh Powerbook 190, 2300 ou 5300 pour lesquels la plupart des fonctionnalits de cette mise jour sont dj incluses dans la "Mise Jour logicielle PowerBook version 7.5.2", n'est gnralement pas recommande pour Macintosh Performa (tant en version Power PC que 68000). Pour le moment et considrant que Macintosh Performa est une solution intgre, optimisant toute la configuration, aussi bien des logiciels inhrant au Systme que des applications intgres autour du Systme 7.5.1 ou 7.5.2, tout changement de systme d'exploitation pourrait causer certains soucis sur l'une ou l'autre des parties de la solution. 1996 - Apple Computer France - Claris France ̻fffffaffffffffffaڙXfffffaڙfffffڙߩ˻fffffڙffffffffffڙfffffffffffڙ߹fffffaffaffڙܙfffffaffaaڙfffffffaffڙYffffffffffڙݟffffaffffaffffʙݟffffaffafaffffɞݟffffaaaffffffl̻ݟfffffafffaȁݟffffffafff̟ݟffffffaffaf̟ݟffffaffffa̟ݩ߯ffffafffa̟ݩfffaffffafffa̟ݩffffffffafffa̟ݩ̻fffffaffaffa̟ݙfffflfffffffffaݙffffffafffffaffffݙܙffffffffffafffݙݙuwxffffafffafffݙwwffffaffafaffaݩwwffffaffafaffaݩwwfffffffafaffawwfffffffffffaffffffffffffffpffffffffff`ffffaffffffffffffffffffffffffff`ffffaffffafffffffffffffffffffffffffff`fffffffaffafffffffffffffffffffffffffffffffffffffffffff`fflfffffffaffaffffffffffffffffffffffffffffffffffffffffffff`fffflfffffffaffaffffffffffffffffffffffffffffffffffffffffffff`ffffffaffffafffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffaffffffffffffffffffffffffffffffffffffffffffffffff` fffffaffffafffffffffffffffffffffffffffffffffffffffffffffff` fffffffffffffffffffffffffffffffffffffffffffffffffffffffff` ffffff!fffffffafffffffffffffffffffffffffffffffffffffffffffff` fffffaffffffafffffffffffffffffffffffffffffffffffffffffffff fffffaffffaafffffffffffffffffffffffffffffffffffffffffffff fffffaffffafffffffffffffffffffffffffffffffffffffffffffff fffffffffafffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffPfffffffffffffffffffffffffffffffffffffffffffff fffffffff,pfffffffffffffffffffffffffffffffffffffffffffff ffffff"pfffffffffffffffffffffffffffffffffffffffffffff ffffffapfffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffaffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffaffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffafffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffff#3""ffffffffffffffffffffffffffffffffffffffffffffffffffaffffafff""333333!ffffffffffffffffffffffffffffffffffffffffffffffffffaffffff33,#3333333,ffffffffffffffffffffffffffffffffffffffffffffffffffaffff333,333333332ffffffffffffffffffffffffffffffffffffffffffffffffffffffa333,3333323333,fffffffffffffffffffffffffffffffffffffffffffffffffffffafa333<3333!#332ffffffffffffffffffffffffffffffffffffffffffffffffffffffa3333<3331333fffffffffffffffffffffffffffffffffffffffffffffffffffffff3333<#333#33,ffffffffffffffffffffffffffffffffffffffffffffffffffafffff3333<3331#33,ffffffffffffffffffffffffffffffffffffffffffffffffffaffff33333<333,33<fffffffffffffffffffffffffffffffffffffffffffffffffafffa33333<333"",ffffffffffffffffffffffffffffffffffffffffffffffffffffa33233<333fffffffffffffffffffffffffffffffffffffffffffffffffff33333<332fffffffffffffffffffffffffffffffffffffffffffffffffa33233<33<ffffffffffffffffffffffffffffffffffffffffffffffff33<33<33<"!fffffffffffffffffffffffffffffffffffffffffffffff333,33<33<"3333,ffffffffffffffffffffffffffffffffffffffffffffff33233<#33,"333333,ffffffffffffffffffffffffffffffffffffffffffffff33133<#332#3333333,ffffffffffffffffffffffffffffffffffffffffffffff333,33<#332333333332ffffffffffffffffffffffffffffffffffffffffffffff33233<#33333"!#3333ffffffffffffffffffffffffffffffffffffffffffffff33133<#33332"3331ffffffffffffffffffffffffffffffffffffffffffffff333,33<#3333332ffffffffffffffffffffffffffffffffffffffffffffff33333<#3331333̯ffffffffffffffffffffffffffffffffffffffffffffff33<33<333,333̟ffffffffffffffffffffffffffffffffffffffffffffff333,33<333333,̟ffffffffffffffffffffffffffffffffffffffffffffffݾ33333<333333,̟ffffffffffffffffffffffffffffffffffffffffffffffݟ33233<332333<̟ffffffffffffffffffffffffffffffffffffffffffffffݟ332"#333333333332333,̟ffffffffffffffffffffffffffffffffffffffffffffffݟ33333333333333332333,̟ffffffffffffffffffffffffffffffffffffffffffffffݟ33333333333333333333,̟ffffffffffffffffffffffffffffffffffffffffffffffݟ33333333333333#33333,̟ffffffffffffffffffffffffffffffffffffffffffffffݟ33332"""33333,333̟ffffffffffffffffffffffffffffffffffffffffffffffݟ3333<3333̟ffffffffffffffffffffffffffffffffffffffffffffffݟ333323332̟ffffffffffffffffffffffffffffffffffffffffffffffݟ33#3323333<̟ffffffffffffffffffffffffffffffffffffffffffffffݟ333332"#3333,̟ffffffffffffffffffffffffffffffffffffffffffffffݟ333333333332̟ffffffffffffffffffffffffffffffffffffffffffffffݟ3333333333,̟ffffffffffffffffffffffffffffffffffffffffffffffݟ333333331̟ffffffffffffffffffffffffffffffffffffffffffffffݟ33#3333"̟ffffffffffffffffffffffffffffffffffffffffffffffݟ33""̟ffffffffffffffffffffffffffffffffffffffffffffffݟ̟ffffffffffffffffffffffffffffffffffffffffffffffݟ̟fffffffffffffffffffffffffffffffffffffffffffffݟ̟fffffffffffffffffffffffffffffffffffffffffffffݟ̟fffffffffffffffffffffffffffffffffffffffffffffݟ̟fffffffffffffffffffffffffffffffffffffffffffffݟ̟ffffffffffffffffffffffffffffffffffffffffffݟ̟ffffffffffffffffffffffffݟ̟ffffff`ݟ̟Pݟ̟剙ݟ̟ݩwwwwwݟ"",,,̟ڙwwwwwyݟ,,","̟ݩݟ,"",,̟ݟ,",,̟ݙݟ,",""̟ݙݟ,",",,","""",""",",","",̟ݙݟ,,,,",","","",,,"̟ݟ,,,",",,""",,,,,"ݟ,,,,",,"",,"",,"ݟ,,,,","""""","",,"ݟ,,,,",,""",,,"",,"ݟ,,,,",,"","",,"ݟ,,,,",,",,"",,"߯",",,","",",,,","οff"""""",",""","","",,"","""""",_",""",""""","""","",""I̷YTEUUyٙEPE@EUUٙݹYUU@TTUUUߴٙݩuUU@UUWթ@əݟܙUUUEUUݩUə݉ۙUUTTUyۙٙڙUUPEWݹTݙəYڙəٙٙ,""""",ݙۙ,","",""ٙݙ","""""PUXݙ,,,,,,PUY,,,,,"PU_P,,,,,"ݙUPPE,,,,,,""ݩUT T,"","","" T,",",",",," ,"",,"",,,,Iم,"",, @Y,"",, PG,,,,, T,"""" ,",",","M@Y"",",",""TDYPE˙ݠOUݐ_ި@YٔEW݀_əڙUPUyOəݙT_PGٙɘU@[PYݹۯ@ܙPOP__]EYfoɝϝ_IzU_UUߥۙuT_ٙUP_EߤJt_ߙݹ߄͠ۺIۙpIK봸ٝݩ@K[̬ItWIEYڙ@[pĿېUOt}ڙݙTɐLMTݨOPXTٙٙݵENDZUE ܙߔE̼ItUK޴@XEݩݹހHʹ_YUDOTUOݙۙPߴYʹMIX^TxPYITOۙݩD[̔UUEUMEUIژڙDI˘܄@EEXNDNUP]NGP__DəKT͌@XWEE_U@^tuW\ݹ\T̙ڙWu@}WE NEP_ wUϩGP XݩE̙̙PDẌ́uEY TUWJIPO Gt]@EY̙T̸ۙuTUI_EɕOYNG@TYIUJY@ ԟXۙEIɟٙyUPYHWL٥HWMGt]ٗTUOw@D@tWٙu[Ȭɟ ^ɕPEyпtU\w@GOtTWN@ E컅UO}ɜˎ ̹@EOuuUOwp EۙOEYZ@O IH[@|} Tٙu@UGw@Ey Iu]NuUPUݿޔǘzTٙUU@Y_PXL ODUwPUy@ݹ@]@̙UUUUTəܙUWۧpYOt_EIJwPU˵KٿP]ܔI̸̙OۙܘTWtLJ@ @LE˵ߝP]@͗upyڙۗTXOUߟĤtUOP_DP]܄I "D_Ufw  "D_Ufw  "D_Ufw  "D_Ufw  "D_Ufw  "D_Ufw  "D_Ufw  "D_Ufw  "D_Ufw  "D_Ufw  "D_Ufw  "D_Ufw  "D_Ufw  "D_Ufw  "D_Ufw  "D_Ufw Runion du 8 juin 1996 ------------------- Peu de membres prsents cette runion. Nous tions une vingtaine. La tendance la dfection se confirme depuis deux sances. Avant, nous avions en gnral une quarantaine de membres qui venaient. Il est vrai quil y a peu de nouveauts dans le monde de lApple IIGS et quil nous est impossible de donner un ordre du jour un mois avant. Mais ceux qui sont venus ne lont pas regrett. Brutal Deluxe avait fait le dplacement depuis Bordeaux et nous a montr une version trs avance dune conversion du jeu Lemmings pour notre GS et nous a fait une dmonstration du contenu de son CD Rom (pardon Cdrom) DeluxeWare. Babar nous a fourni une liste de sites Internet et a fait le point sur les mises jour des cartes RamFast et de la connection dun lecteur de CD Rom via Media Control. Denis Melchior a montr la maquette du CD Rom du Club version Mac et PC. CD divis en trois parties : lhistoire de 1986 1996, les hommes et les socits qui ont fait lApple IIGS. Bernard Tomeno nous a parl de lenfant quil a soigne et de son avenir qui dpend en partie de notre bonne volont (voir lՎditorial) Paul Lafonta a parl des connections de disques PC via la carte Blue. La sance leve, nous nous sommes donns rendez-vous pour Apple Expo. Ce mois-ci, je laisse la plume Bernard Tomeno qui fait appel votre gnrosit. Informatique Humanitaire.... Chers amis du Gs-Club, Mr le Prsident du Gs-club, J'ai essay pendant quelques annes d'tre un membre actif de notre Club; ma participation s'est ensuite faite plus sporadique. Mon mtier de Chirurgien et mes fonctions de Chef de Service Hospitalier m'y obligeaient ... j'en suis dsol mais entre mes 2 passions (mon mtier et l'informatique) la premire se devait d'tre prioritaire. Si je reprends la plume aujourd'hui c'est pour vous lancer un appel et cogner l'huis de votre gnrosit. J'ai vu dbarquer dans mon service il y a 6 semaines une fillette de Centre-Afrique ( oui... c'est ce pays dont on a parl tout rcemment la Tl parce qu'il est en meutes et rebellions). Elle tait porteuse d'une monstrueuse tumeur cancreuse de l'paule, voluant depuis des mois, lui arrachant nuits et jours des cris que la morphine ne calmait meme plus. Je n'ai rien pu faire d'autre que l'amputer de tout son bras, paule et omoplate comprise. Amputer une enfant je vous assure que c'est pnible... mais il n'y avait pas d'autre issue. Les 8 jours d'hospitalisation ncessaires cette intervention se sont bien passs mais ne seront jamais pays par personne, y compris par le gouvernement de Centre-Afrique dont je sais qu'il ne faut RIEN attendre en dehors de promesses qui ne seront bien sur jamais honores... Comme au del de ces 8 jours je n'avais pas d'autre solution j'ai recueilli cette enfant chez moi (ce qui ne me pose aucun problme rassurez vous, ce n'est pas pour cela que je vous contacte). Si le traitement s'arrte l, si je la renvoie dans son pays sans rien faire de plus, les donnes scientifiques sont claires : l'enfant n'a que 20% de chance de ne pas mourrir de mtastases. Si nous faisons, en plus de l'amputation, 6 mois de chimiothrapie dans un centre anticancreux proche de mon hopital, elle a alors 80% de chances de gurir. Six mois de chimiothrapie, raison de quelques jours de traitement par mois, mdicaments et divers examens de surveillance compris, cela reprsente un budget de 120.000 francs. J'ai dja frapp quelques portes et j'ai pu,en 1 mois, runir 50.000 francs. Il m'en manque encore 70.000. Les petits ruisseaux faisant les grandes rivires je me permets aujourd'hui de m'adresser vous... ... vous personnellement ... ou vous en temps que membre connaissant une association caritative, une oeuvre de bienfaisance, etc... D'avance pour cette enfant...MERCI B. Tomeno le 10 juin 1996 P.S. Vos dons peuvent etre libells l'ordre de l'ADECRO (association type loi 1901 dpendant de mon service de chirurgie). Un reu vous sera adress. Pour le courrier l'adresse est : ADECRO - Professeur Tomeno Chirurgie Orthopdique Pavillon Ollier Hopital Cochin 27 rue du Fg St Jacques 75014 Paris Le CD Rom prend tournure et larchitecture est dfinie. La maquette a t approuve par les membres prsents le 8 juin. Nous disposons de tous les documents ncessaires sa ralisation. Nous ne sommes pas sr toutefois davoir toujours fait le choix idal pour les vnements de chaque anne de 1986 1996. Alors nous faisons appel vous. Si vous avez le temps de le faire, envoyez-nous rapidement un courrier nous disant quel est lՎvnement majeur, lhomme et la socit qui selon vous ont marqu chaque anne de lexistence de lApple II GS de 1986 1996, bien sr, pas forcment pour chaque anne et pas forcment les trois. Nous tiendrons compte des diffrents avis pour organiser notre contenu. Le vritable travail de mise en place se faisant durant le mois daot, envoyez votre rponse avant. LES.PLUS.Iv#' 'ORCA.TNJ $MAKE)SW 8Coucou c'est nouveau moi ! ***************************** Tung !! Clooong !! C'est fait, aprs deux bons mois d'interruption, le GS et le Mac viennent de redmarrer et le voyage Orlans semble ne pas les avoir affects !. Par contre il est certain que le service Domaine Public a t trs perturb par mon dmnagement, j'espre avoir retrouv tous vos envois au fond de mes cartons !. J'espre aussi que vous ne m'en voudrez pas trop pour tous ces retards, c'est promis je ne recommence pas demain !!. Mais que c'est-il pass pendant tout ce temps ? La plante Apple fonctionne sur trois pattes ! et tout valse tour de bras: les hommes, les millions de dollars, les machines. Un PowerBook 5300 command il y a deux mois n'est toujours pas arriv et je ne sais mme pas s'il arrivera un jour !, pour une fois que j'avais russi faire entrer Apple dans mon entreprise !!. Bien sr tout le monde enterre encore une fois Apple, cette drole de socit qui a tenu 20 ans en fabricant une machine pas comme les autres, considre comme indigne de figurer l'inventaire informatique des plus grandes entreprises (srieuses) et qui pourtant n'a jamais cess d'tre imite. Bon, exit notre fabricant de boisson gazeuse qui voulait mettre le Mac dans tous les salons de nos bonnes vieilles demeures, notre Amlio nouveau veut recentrer la ligne en la tirant nouveau vers les hauteurs qui ont fait son succs. Et bien nous sommes assez d'accord, nous qui avons dj donn des fortunes notre constructeur prfr, car enfin tre Applemaniaque c'est un peu comme faire partie d'une confrrie ( j'ai pas dit secte !) on ne veut pas avoir la mme brouette de chantier que le voisin ! que dirait un Ferrariste si demain toutes les voitures taient rouges ? !. Ne nous inquitons pas trop, nous disposons de machines qui marchent, de logiciels en avance sur leur temps et nous, GS-istes, sommes pays pour savoir que l'on peut trs bien faire vivre une machine Apple bien aprs qu'elle ait t retire du march!. Bien, pendant que je tapais ceci sur le GS, le Mac tirait des entrailles du CD Rom Univers Mac sa mise jour logicielle 7.5.3 ( dite mise jour 2.0 ); il est donc trop tt pour que je vous en parle si ce n'est que je constate encore une fois que l'Installeur n'en fait qu' sa tte et installe toutes les extensions que je n'ai pas slectionnes sans enlever non plus les plus anciennes ! ( il faut dire que, par exemple, l'extension QuickTime pour PowerMac s'appelait "PowerPlug" la dernire fois et "Module PPC" aujourd'hui !, je vais tre oblig de passer l'aspirateur dans mon dossier Systme !!). Le dtracteurs d'Apple auraient-ils raison ? Allez examiner les effets d'un installeur Windows, vous serez rassurs !!!. Atchao, bonsoir ! J. Rey i +-" H }h` O`" `" `" L} Lg LgKFichier patcher:@@  ɥ HHH HHZڢY"hH uh`` LgI Lgt'N!NN! lr Xter.Box "I"@ Fichier Edition  Patch Unpatch Captain BloodShufflepuck CafeA Propos de...Quitter AnnulationCouperCopierColler  r  d T -V    , : H Zz@\ Xxg Ccn Vv@u Aa@E 4 4 & & Qq@ T l O33/Le patch a t effectu avec succs./^OK54/Une erreur est survenue ! L'opration n'a peut-tre pas russi./^OK52/Ce programme ne reconnait pas cette version de Shufflepuck Cafe./^Annuler52/Ce programme ne reconnait pas cette version de Captain Blood./^Annuler32/Ce fichier a dj t modifi./^Annuler43/AutoPatch for ROM03 Modification d'Autopatch pour MultiSwitch GS. (C) 1996 Vincent Hemeury pour le GS Club. /^OK64/Cette option modifie le fichier SHUFFLE du programme Shufflepuck Cafe de Broderbund afin que ce dernier fonctionne sur un Apple IIGS ROM01./^OK64/Cette option modifie le fichier BLOOD.SYS16 du programme Captain Blood de Mindscape afin que ce dernier fonctionne sur un Apple IIGS ROM01./^OK64/Cette option modifie le fichier SHUFFLE du programme Shufflepuck Cafe de Broderbund afin que ce dernier fonctionne sur un Apple IIGS ROM03./^OK64/Cette option modifie le fichier BLOOD.SYS16 du programme Captain Blood de Mindscape afin que ce dernier fonctionne sur un Apple IIGS ROM03./^OK ZH"hh` 1 HH0"z HHHHHZڢ" "` ""kHH"` "HH" ""` "HH"t "t"` "HH"w "w"`HH "hH" "HH"S "S"`KHHHHH "kLKIINsL6AnnulerAccepterOuvrirFermerVolumeAccepterDsignez un volume:Dsignez un fichier:Patcherr-E]= Iw 4L Xw ; %w Ba mw I+ 7w + k  "wHuH"6H4H""`-7"OYdht'4JMPSY]y #),/5:NTZ 06LUbekntwzVq|  A>1v V  &@ Q ] P/U`kA (6DR`n|  !f3 ? V  jrUxAx  mg #,BwIRh  !"#$%&'()*+,-./ 4Mc(PX`P H  (D@@ꜹ \ &az{01w~>( K4S!TЂ4UD)oR\DL!$)LRD2b$240,!)e@N TJBR(%w ^D(DD2b$R nh9{׽(ReL̒J336mNEzӜ&攴BloG̩#$i HJGA.tD*B S2$i*JTT(RUS33333LI$b*#%JB Š6 $^(DRD*"B $$HJTE"|UNILI$Bj<2Fш)*VB@D !$)DRDQ&"B0S3Ē$I*D(JD)MS333ILI$Ib$'MJ$Q c@I@#w8Fo9Ť)z31hӜw 4~lC``"` @@ p $%(+.3589=ADHLQUY]aefhkorv}  "'+047<BEGLOW]afkosv{  #)/58;@EILQUZ_dfiiqxxxxx}}}}}}}       Stuttgart   O3;f `p`n0l0fێag7 0ٶ60p ?矀~7`<y6`~0l` o|߹x0>|c0`?|?fp03 xx~`f<000<sxx<<0y00`}7m ϟ>|?>|xoó `ϳcdž ?ٟ o`߰?`xx<70ys`|>y6f 0`Ǐ<ٹǏy3yl>>c3?<??`?0 0 0`pp0 ` %'*-179?AHPT\dlt|"*3;DLTZciu} #*0:@FMQSW\\ht}$+29@DHOUUZbjnu{~"$$$$*29@HHT`iw                            Avant Garde!   C E@!QA2 ( PH$Phb &Tc`qc `9;a؈`B8B"@("M EQR *" (dbJ!EZ((]H/h)8Y#B(c`EQDRhH@BT);#<@B  "„2xL!$ C 8 Y)0 IA Dc$Qi1@ERT;sνf;[2cT|'"뮺)$*>}D%$ K}%A0b"XI 0B(sJcEDA$!@G1‘8%MHT(hqp 0Qas HB&KqD!A I%$L%"D(0@IafFJ!mc9A!'@;sμ;4OT'|'뮺BDHLPTX\`degmrx}  "'/17=CIOSY^_afgpu{ #)+-038>DJPV[`ejorv|#(.39=AHIPW^hsx #$'+.2369>ADI                  <?? ?? ???? ?DODL@<<?? ?? ?? DODL@< -7 -7N-7-7-7SSfoYS fe SjSꎙSYkajS? jS?bfjS?<<0< PS 0 < <0 ? 00 <f jS <0 0 <<? 0 0jS 00 0 < $E10190 $00057C -> $E10192 $0004FC -> $E10191 $0005FC -> $E10193 Attention: Il se peut qu'un programme dispose de plusieurs routines faisant appel aux trous dans la mmoire cran, ne vous limitez pas une seule recherche d'une squence $7C 04 00. C'est par exemple le cas de Shufflepuck Cafe. (C) 1996 Vincent HEMEURY pour le GS Club12345678 Avec ce numro de GS Infos, vous trouverez dans le dossier V.HEMEURY une application qui permet de modifier deux jeux afin qu'ils fonctionnent sur l'Apple IIGS ROM 03. Le programme fonctionne du systme 5.0 au systme 6.01, sur un GS ROM 01 ou 03. Cette application a t crite partir de l'AutoPatch de MultiSwitch, ce qui explique qu'elle est un peu plus importante qu'une application classique de patch, mais il est ensuite trs simple de rajouter le patch d'une application en quelques dizaines d'octets. J'ai apport quelques modifications MultiSwitch afin qu'il supporte Spectrum 2.0 de Seven Hills (ce qui me fera peut-tre changer de rubrique dans l'annuaire de l'Apple IIGS de Philippe Manet). L'opration se droule en deux temps: AutoPatch modifie Spectrum 2.0 et il faut ajouter la ressource Gen.Fork partir de MultiSwitch, le programme fonctionne toujours si MultiSwitch n'est pas actif. MultiSwitch prend en compte le programme Twilight II avant d'afficher l'icne d'une application dans la barre de menus. Send PostScript 1.7 peut tlcharger les fichiers binaires (en plus des fichiers ASCII et des polices de caractres) mais surtout, il est capable d'imprimer un fichier PostScript partir du disque sans qu'il soit ncessaire de disposer d'un bloc de mmoire de la taille du fichier. Cette modification tait devenue ncessaire puisqu'il n'est pas rare de trouver des documents au format PDF dont une page occupe 1,5Mo. Send PostScript dtermine automatiquement la meilleure solution de tlchargement, soit partir de la mmoire soit partir du priphrique de stockage. Ceux qui ont commis l'erreur de passer d'une configuration QEMM+Windows 3.11+PC Tools Windows 95 ou si vous tlchargez des fichiers PostScript en provenance de cet environnement, vous subirer probablement en fin d'impression l'jection d'une page blanche ainsi que d'une autre page indiquant qu'une erreur s'est produite pendant l'impression. Pour viter cette erreur, il suffit de supprimer les deux lignes comprises entre %%DocumentsSuppliedFonts: et %%Pages:, elles commencent par /PScript_Win_Driver et PScript_Win_Compat. Mise jour gratuite pour les possesseurs de la version 1.6x de Send PostScript (qui ne possdent pas MultiSwitch, SendPostcript tant un des programmes fournis avec ce dernier), 25FF pour les autres, dans les deux cas, envoyez-moi une enveloppe auto-adresse affranchie ainsi que la disquette originale. Je vous rappelle le prix des mises jour: de MultiSwitch v1.0 v1.1x v1.2x v1.3x v1.4x MultiSwitch 1.44 60FF 50FF 40FF 40FF gratuit 2 disks+enveloppe MultiSwitch 1.44 70FF 60FF 50FF 50FF 20FF sans disks Lors de la dernire runion du GS Club, Babar rappelait qu'il tait possible d'couter les pistes audio d'un CD partir d'un CD-ROM SCSI-2 connect une RamFast au moyen de l'accessoire Media Controller. L'opration tait cependant assez complique et ne permettait pas de choisir la piste, il faut couter le CD du dbut la fin ! Je signale aux programmeurs que la carte supporte la commande SCSI-2 PLAY AUDIO TRACK INDEX (via les appels READ ou WRITE) et que cette commande permet de choisir les pistes de dpart et de fin, sans avoir lire le catalogue du CD. Je l'ai teste partir du moniteur sur un Apple CD-300, ce n'est donc pas de la thorie. Enfin, SCSI Toolkit de MultiSwitch dispose de cette commande pour couter les CD audio mais SCSI Toolkit n'est compatible qu'avec les cartes Apple rev C et High-Speed. Une bote de dialogue vous demande quel piste vous dsirez couter et excute votre requte, il n'est pas ncessaire de possder un quelconque driver SCSI-2 pour CD-ROM, il suffit que le priphrique soit vu par le SCSI Manager. :;<=>?@AApple Expo 96 ------------ Lexpo change de lieu et se tiendra du 18 au 22 septembre 1996 porte de Versailles. Nous ne savons pas encore comment les Apple User Group seront reprsents, mais je serai prsent sur lexpo le samedi aprs-midi 21 et le dimanche 22. La main mise ----------- Lindustrie japonaise dominait tous les marchs de lՎlectronique grand public sauf un, celui de la micro-informatique, domaine rserv aux grandes compagnies amricaines Compaq, IBM et Apple. Ce pass est rvolu. En devenant lactionnaire principal de Packard Bell, le japonais Nec devient le numro un mondial du micro-ordinateur et pse 40 milliards de dollars de chiffre daffaires annuel. Apple ----- Aprs les pertes du premier trimestre, la socit pense rester dficitaire cette anne et ne pas verser de dividendes aux actionnaires dans un avenir prvisible. Les ventes de Mac ont baiss de 14 % au cours du 2me trimestre. Apple veut se concentrer sur ses marchs traditionnels (lՎducation, le graphisme, la PAO et le grand public haut de gamme) et investir le nouveau march que constitue Internet, cela en rduisant sa gamme de Macintosh de moiti. Internet -------- Pour fabriquer loutil idal de navigation sur Internet un prix trs conomique, cela afin dattirer les familles qui nachteraient pas dordinateur, IBM, Netscape, Sun et Apple se sont associs. Cette alliance compte deux absents de poids Microsoft et Intel Dlires de presse --------------- PC Expert n49 titre : Battu par Cyrix, bientt supplant par le Pentium Pro : Le PENTIUM CONDAMNE ? En pages intrieures, lՎditorialiste remet le couvert : Est-ce la fin dune re ? Mais dans le texte, il remet ses pendules lheure... Intel les moyens dՎliminer ses concurrents par la chute des prix ou lapparition de nouveaux processeurs... (NDLR : Attention ... notre information sera auto-dtruite par nous-mmes dans les quelques lignes qui suivent... Comment crer un non-vnement en priode creuse ? Inventer un titre ronflant concernant un problme qui nexiste pas et se contredire pour rester objectif. La presse gnraliste dans ces cas-l nous ramnent quelques gentils extra-terrestres au conditionnel.) CD ROM ou CdRom -------------- Non, ce sera Cdrom ! Lacadmie a tranch. Lorsquon nommera la petite galette de 12 cm, on devra donc crire le cdrom. Au fait, le scanner, imageur ou numriseur ? RAM --- Les prix de la mmoire vive seffondrent. On trouve 16 mo pour le prix de 4 il y a un an soit 1000 F TTC. Leffet Kobe lenvers ne durerait pas car les fabricants devant la baisse de leurs marges se seraient mis daccord pour baisser la production. Intox pour provoquer des achats massifs et ainsi tenir les cours ou vritable information ? Sauvegarde ---------- Le mme mois, les revues UniversMac 58 et Golden 43 font le point sur les sauvegardes amovibles et sont ... dj en retard ! car FUJI vient de sortir le disque optique 3.5 pouces de 640 mo compatible en lecture et criture avec ceux en cours de 128 et de 230 mo. A ne pas confondre avec le lecteur-enregistreur optique 3.5 pouces de 650 mo de Sony sorti le mois dernier et qui lui nest pas compatible avec les formats actuels . La bataille dans la jungle des sauvegardes continue... Les enregistreurs de CD Rom baissent rapidement et en un an sont passs pour ceux en quadruple vitesse de 30 000 F 10 000 F. Les mauvaises langues disent que larrive prochaine du DVD avec ces 4,7 giga de capacit ny serait pas pour rien. Annoncer la mort du Cdrom parce quil serait coinc dans ses 650 mo est peut-tre un peu htif, surtout quand on voit quel point certains diteurs ont du mal le remplir dun contenu intressant. La FNAC propose dans une publicit pour ses propres slections de mettre les trois-quarts des cdroms (Cdez Rome , cest des roms , cest du rhum, cest des rhumes, cde hre au heaume ?!!!) dits la poubelle. CDESuite larticle de Jacques Rey, plusieurs personnes nous ont crit propos des possibilits dautres crans pour le GS. Vous pouvez utiliser un cran VGA pour PC en vous procurant la carte SecondSight (voir les annuaires de Philippe Manet GS Infos N45). Vous pouvez utiliser un tlviseur en fabricant le cble de connection dont le brochage est dcrit ci-dessous. A priori, il est impossible dutiliser un cran pour Macintosh, tous nos essais avec divers crans ont chou. Pour les techniciens, Le club dispose du plan du moniteur couleur dorigine. Connexion de l'Apple IIGS la prise Pritel d'un Tlviseur -------------------------------------------------------------- Prise DB-15 Mle ct GS---------prise PERITEL mle 1,6,13------Massesignal/Blindage------4,5,9,13,17,18,21 2----------Signal.Rouge---------------15 3----------Synchronisation------------rsistance190 Ohm---20* 5----------Signal.Vert----------------11 8----------+ 12Volts.-----------------8 - rsistance 360 Ohm -16* 9----------Signal.Bleu----------------7 11---------Signal Son-----------------2;6 * La broche 3 de la prise DB-15 est relie une rsistance de 190 . L'autre extrmit de cette rsistance est connecte la broche 20 de la prise Pritel. ** Les broches 8 et 16 de la prise Pritel sont relies par une rsistance de 360 . Utilisez de prfrence des cbles blinds.GHItitre "GSInfos n46 et 46 bis (c) GS Club 1996" about2 "V.Hemeury, P.Manet, O.Zardini " about3 "J.Rey, B.Tomeno, D.Melchior " about4 Nous attendons trs impatiemment vos articles... contenu "Contenu de ce numro", 1/contenu pause 10 image 1/couv.46 menu Sommaire article Editorial, "L'ditorial du prsident", /GSINF.46/Articles/Edito article Mot de J.Rey, "Par D.Melchior...", /GSINF.46/articles/mot.J.REY article Galactica, "Par D.Melchior...", /GSINF.46/articles/galactica.46 article Runion du 8 juin, "Par D.Melchior...", /GSINF.46/articles/reunion article Infos VO, Genie lamp de mai..., /GSINF.46/articles/lamp.may.a2 article projet.CD II, "Je suis moins seul avec mes rves...", /GSINF.46/articles/cederom article Annonces, "Les petites annonces", /GSINF.46/articles/annonces menu Divers article Mac, "Par D.Melchior, /GSINF.46/articles/MAJ.MAC article Histoire A2- 17, "Par P.Manet, /GSINF.46/articles/Histoire.A2.17 menu "Le coin hard et soft" article "Cble GS Pritel", "Connecter GS et tlviseur", /GSINF.46/articles/GS.PERITEL article "Domaine Public", "Les domaines publics de GS Infos 46", /GSINF.46/articles/domaine.public article Emulateur GS,par O. Zardini, /GSINF.46/articles/emulateur.GS article AutoPatch & co, "Par V.Hemeury, /GSINF.46/articles/V.HEMEURY article Les Plus I, Les Plus, /GSINF.46/articles/les.plus.I article GS Infos 46 Bis, La 2me disquette, /GSINF.46/articles/GSinf.46bis ORCA.TNv$' '.ASM65816.NOTES`J;o>oJ,EDITOR.NOTES; ooJ,LINKER.NOTESooJM16.NOTEStooJMACGEN.NOTESooJ+SHELL.NOTES ooJ(CC.NOTESSآooJ+PRIZM.NOTES pooJ,PASCAL.NOTESI%ooJFINDER.DATA" pJLMNOPQR************************************** Matriel vendre : -carte APPLE // pour imprimante + cordon =100F -carte transwarp 9Mhz avec cache 32K = 500F -carte PC-Transporter + lecteur 3,5"+ doc + cordons cran couleur + disquettes = 800F -carte d'extension mmoire quipe 4M. = 300F -alimentation IIGS renforce = 300F -Lecteur Apple chainable 3;5" + 50 disquettes = 400F -Lecteur Apple chainable 5;25" + 100 disquettes = 300F Tel.(province) HdB : 88 67 76 97 ou le soir 88 98 59 11 (rpondeur si absent) ***************************************************************** Je vends (les logiciels sont tous des originaux accompagns de leur documentation, le matriel fonctionne impec); le port est en plus mais on peut passer prendre les articles chez moi (rgion parisienne) pour viter les frais. Matriel :  Imprimante Citizen 120D avec interfaces srie et parallle, ainsi quun ruban neuf supplmentaire (fonctionne sans problme avec le driver Epson fourni avec le systme, Pointless et Express; peut aussi tre connecte sur un compatible PC) : 300F  Carte RAMkeeper de Applied Engineering : 300F  Carte stro : 200F  Disques durs Vulcan avec contrleur : 20 MB : 200F, 40 MB : 300F Utilitaires GS :  Kangaroo (extension des botes de dialogue Standard File, en franais) : 100F  Platinum Paint (version entirement en franais) : 100F  VSCom (mulation minitel) : 50F  GSPaint et GSWrite : 50F chaque, 80F les 2. Jeux GS :  Bouncing Bluster (jeu de type casse-briques, en franais) : 50F  Life and Death (simulation dun hpital) : 50F  Tass Times in Tonetown (aventure) : 50F  World Games (simulation de sports) : 50F  The Last Ninja (simulation de karat) : 50F  Bridge 6.0 : 50F  Strip Poker II : 50F  Paperboy (arcade) : 50F  La collection des 8 jeux : 300F Logiciels 8 bits :  Arlequin (dessin double haute rsolution), Talk is Cheap (programme de tlcommunications), Prosel 8 (lanceur de programmes et utilitaires disques et fichiers), PFS: Fichier (base de donnes), Budget Familial, MAX (moniteur tendu, MicroScrabble (jeu), Copy II+ (copieur de disquettes protges et utilitaires) [programmes et documentations en franais, sauf pour ProSel 8 (doc seule en VF) et TIC] : 30F chaque, 200F les 8.  Program Writer (diteur Applesoft plein cran) : 70F  AppleWorks 1.4 Franais : 100F  Publish It ! v2 et v3 : 100F lensemble Livres et revues :  Clefs pour Apple IIGS : 50F  Systme ProDOS de lApple IIGS : 50F  BASIC Computer Games et More BASIC Computer Games (environ 200 programmes de jeux programmer en BASIC, ou pourquoi ne pas sinspirer des ides pour faire des jeux GS en mode graphique !) : 50F les deux  La pratique de lApple II : 10F  Apple Pascal sur le bout des doigts : 10F  Apple II Users Guide : 10F  Guide Pratique de VisiCalc : 10F  Les 4 livres ci-dessus pour 30F Anciennes revues Apple II; je prfre vendre les collections compltes plutt que les numros individuellement, mais cela est quand mme possible; dans ce cas, je vends chaque numro pour 5F :  Nibble (27 numros : fvrier, avril, mai, aot dcembre 88, janvier 89 aot 90 sauf juin 90) : 100F la collection.  A+ (25 numros de juillet 89 septembre 91 sauf octobre et novembre 89, ainsi que dcembre 1990, mais avec novembre 92) : 100F la collection.  Poms (28 numros de 14 50) avec les disquettes des numros 41 50 : 120F la collection. Philippe Manet 40 rue Victor Hugo 94700 Maisons Alfort (1) 43.76.61.08 aprs 19h manet_p@decus.frTUVWXYZ  !"#$%&'()*+,hoMAIN@ tDf  ` Df wA,p߄̌wA,p߄̌wA,p߄̌wA,p߄̌wA,p߄̌wA,p߄̌wA,p߄̌wA,p߄̌wA,p߄̌wA,p߄̌wA,p߄̌wA,p߄̌wA,p߄̌Dffww   Rl~lR m}VzU~{}p|lsY}}bFUUU@ FE@TFUfPU FUffeDBfBBfPDVff`BffeDBfBBfPDVff`f`UFUffVfBffff` Bff`BffB"!ffff`Bff`Bf`ff`U FUf`VeBf`ffBBBfff`BBBfBBEBBBf`"ffBBBfff`BDBffPFf`UF UfEwfPVff`fffff`BBBfDBf`"fffff`BB ffdWvTf`U F UfwfPFff`EffDfff`BBBfBBBf`EffDffEf`BB ff`guf`UFUfff`" ffB ff "!f`BBBfDBf `" ffBBB ff "!f`BB ff`fPe@f`U FUffePFff`30ffDff 3!f`BBBf BBf`30ffD ff 3!f`BB ff`UUf`UF UfPUU@Vff`B32ffff#B3 f`BBBf D Bf`B3 2ffDff#B3 f`DB ffeUTf`U FUfdDBf`D ffBBBfff`BBBfBBBBBf`DffBffDf`DBBf@D@Ff`UFUffPVfBffff` Bff`BffB"!ffff`Bff`Bfeff`U FUffeDBfBBfPDVff`BffeDBfBBfPDVff`f`UFUfPU FE@TFUUU@ FE?2^e3!fP2!fP2!e3!fP2!fP2!e3!fP2!fP2?!e3!fP2!fP2!e3!fP2!fP2!e3!fP2!fP2!e3!fP2!fP!EE?"Vfe"!ffP"!ffP"!fe"!ffP"!ffP"!fe"!ffP"!ffP"?!fe"!ffP"!ffP"!fe"!ffP"!ffP"!fe"!ffP"!ffP"!fe"!ffP"!ffP! EEBUUUPBUUPB UUUUPBUUPB UUUUPBUUPB UUUUPBUUPB UUUUPBUUPB UUUUPBUUPB UUUUPBUUP EE EEDDDDDDDDDDDDD E;D33;D33;D33;D33;D33;D33;D33;D33;D33;D33;D33;D33;D33;33; DDDDDDDDDDDDDDD\]^_ Dossier SoundAce 2.2 ------------------ Un diteur et digitaliseur de sons de C.Turley qui peut remplacer celui de votre carte dacquisition. Dossier PuyoPuyo --------------- PuyoPuyo est un jeu de type ttris rigolo de Triangle production adapt au GS par Slixter. Dossier CDROM.STACK ------------------ Un appel au peuple pour la ralisation dun CD Rom compos de piles HyperStudio : Hello people! One of these days I will put a new file on several FTP sites that is called "cdromstack.shk". This file is a HyperStudio 3.x Stack and is just a simple beginning of a something real big. The goal is to reach as much as possible people around, so please put the file on any BBS that supports the Apple II line you know. If possible also on GEnie - I don't have an account there myself. What you have to do, is download this file and read the info in it. Then add your own cards and return it to me. "But what cards?", you may ask... Well, the cards you're going to make, must tell about yourself, your GS and experiences and interests about this great computer! When I have received enough stacks, I will put them together into one stack on a CD and distribute this one widely! Of course, this CD-Rom cannot be free, but depending on the amount of people willing to buy this CD, the price will be higher or lower. If you have any comments about this, please let me know! My email addresses are: dboomsma@sci.kun.nl dark_dude@darkcastle.euro.fnet.org For more 'up-to-date' information, you can access my home page: http://www.wco.com/~gbmaidsf/db/ and klick on the GS UserList Icon. Sincerely yours, Doede Boomsma a.k.a. Dark Dude ----------- This project has been set up by Doede Boomsma and Dark Castle Magazine & BBS --------------------------------------------------------------abcdefghijklmnopqrstuvwxyz{|}~Asm65816 2.1.0 Copyright 1996, Byte Works Inc. -- Change List -------------------------------------------------------------- 2.1.0 1. Bugs squashed. See bug notes, below. 2. The assembler supports the extended character set. See "Extended Characters," below. 2.0.4 1. In the 2.0.4 disk release, the shell and run-time libraries underwent a significant change that forces text-based assembly language programs to call initialization and shutdown subroutines. These subroutines, and some related utility routines you may want to use, are described in "System Functions," below. 2.0.2 1. Bugs squashed. See bug notes, below. 2.0.1 1. Bugs squashed. See bug notes, below. -- A Special Thanks... ------------------------------------------------------ ORCA/M 2.0 has been a very long project, mostly because the necessities of running a business kept interfering with getting the programming done. Along the way, I got lots of help and encouragement from a number of sources, and I'd like to mention a couple here. First, Zip Technologies provided a Zip GSX board for compatibility testing. It works great, made development a lot quicker, and unlike my old accelerator, it gets along with my FPE card. Thanks, Zip! Several people helped beta test ORCA/M 2.0; some have been at it for a year. Beta testing is hard work, and occasionally dangerous to your sanity and the contents of your disks, so they deserve a lot of credit for sticking with the system. They are, in no particular order, Mark Wolfgram, Mike Hackett, Rao Parik, Mike Morrison, Tim Swihart, Paul Elseth, Scott Gentry, Bryan Pietrzak, Gary Jacobson, Jim Moricondo, Jim Corbin, Steve Peterson, Niel Rosen, Matt Deatherage, Andy Nicholas, Morgan Davis and Jawaid Bazyar. Finally, over the entire course of the project, one person stands out. Tim Swihart from Apple computer has been a constant help on ORCA/M 2.0. He did so much for ORCA/M 2.0 that I can literally say that if it weren't for Tim, you would not be using this program today. From start to finish, he provided input, encouragement, and a lot of internal help from Apple Computer to make the program possible. -- Manual Errata ------------------------------------------------------------ Extended Keypad Support ----------------------- At the insistence of one of our beta testers (he's bigger than me!) we added support in the editor for the extended keypad. This was done after the manuals were printed, so you will not find any information about this feature in the manual. Basically, if you are using the extended keypad, several of the keys map to existing editor commands. These key equivalents are shown in the table below. Extended Key Equivalent Command ------------ ---------- ------- F1 command-Z undo F2 command-X cut F3 command-C copy F4 command-V paste help command-E toggle insert/over strike command-help command-? help home command-< go to beginning of line page up command-[ move up one page del command-F delete character right end command-> go to end of line page down command-] move down one page Miscellaneous ------------- p. 177 The command "Set and Clear Tabs" is shown as open-apple TAB; it should be closed-apple TAB. p. 410, 2nd para. Reads, "... the file names will be separated by a single space." Should read, "... the file names will be separated by a single newline character. The character code for newline is 10." -- Assembler changes introduced in Asm65816 2.1.0 --------------------------- Extended Characters ------------------- Bear with me. This is an ASCII file, and it describes non-ASCII material. Beginning with version 2.1, the PRIZM desktop editor supports the full Apple extended character set. A file called FontTest on the samples disk shows the complete character set, and also contains a table that shows how to type each character from a U.S. English keyboard. ORCA/M supports the use of extended characters in strings, comments and labels. Any character you can type from PRIZM (or for that matter, any character with an ordinal value in [1..12, 14..255]) can appear in a DC S, character constant or comment. The ordinal value of the character matches the values shown in FontTest, as well as several official Apple publications. Keep in mind that many output devices, including Apple's text console driver, do not support all of these characters. ORCA/M will properly send extended characters to whatever output device you choose, but what happens when the output device tries to handle the character varies from device to device. Many of the characters in the extended character set are used in languages other than English, and are now allowed in label names. There are two ways to think about which characters will work in a label. The simple way is to remember that all characters that look like a graphically modified ASCII alphabetic character or a Greek alphabetic character are allowed in labels. For example, an a with two dots above it is now legal in a label. The more exact, and naturally more complicated way to think about which characters are allowed in a label is to list all of them. Since this is an ASCII file, I'll list the ordinal values--you can cross reference the values in FontTest. The ordinal values of the extended characters that are allowed in labels are [$80..$9F, $A7, $AE, $AF, $B4..$B9, $BB..$BF, $C4, $C6, $CB..$CF, $D8, $DE, $DF]. The non-breaking space, sometimes called the sticky space (ordinal value $CA), is allowed in comments, strings and character constants, but not elsewhere. -- Changes introduced in the 2.0.4 release of ORCA/M ------------------------ System Functions ================ The run-time library for ORCA/M contains a number of functions that can be manipulated directly from ORCA/M. Most of these are designed for ORCA/C and ORCA/Pascal, but a few are required to make assembly language programs work correctly with the new text input and output mechanism, which must initialize Apple's .CONSOLE driver. As a minimum, assembly language programs that use text input or output should make these calls: jsl SystemEnvironmentInit jsl SysIOStartup Before exiting, be sure and shut down the I/O system with this call: jsl SysIOShutDown If you will be calling subroutines written in a high-level ORCA language, and you will start from assembly language, add these calls to completely set up the environment expected by the ORCA high-level languages: pha phx phy jsl SystemUserID jsl SystemMinStack jsl SystemSANEInit jsl SystemEnvironmentInit jsl SysIOStartup These calls should be made right after you enter the program, and before the X, Y, and A registers are disturbed. When you exit, make these calls: jsl SysIOShutDown jsl SystemSANEShutDown jsl SystemMMShutDown Source code for all of these subroutines can be found in ORCA Sublib Source, a separate package containing the source code for the ORCA subroutine libraries. SysCharErrout ------------- lda char pha jsl SysCharErrout Writes a character to error out. SysCharOut ---------- lda char pha jsl SysCharOut Writes a character to standard out. SysIOShutDown ------------- jsl SysIOShutDown Closes any files opened by SysIOStartup. SysIOStartup ------------ jsl SysIOStartup Starts the I/O system using the files in prefixes 10, 11 and 12. If the files have already been opened, the existing open file is used, and the file is not closed when the program exits. If prefix 10 is .CONSOLE, DRead calls are used to read lines of text, allowing editing. In this case, you can use RETURN to finish a line, or ctrl@ or command. to signal an end of file. SysKeyAvail ----------- jsl SysKeyAvail Returns 1 (TRUE) in the accumulator if there is an input character available, and 0 (FALSE) if there is not. If a character has been put back with a call to SysPutback, and has not been read by a subsequent call to SysKeyin, the result is TRUE. The rest of the discussion assumes there is no character in the putback buffer. If input is redirected from a file, this function is equivalent to a test for end of file, returning the opposite result. For input from .CONSOLE, if there is remaining input in the line buffer, TRUE is returned. If not, and if the Event Manager is active, the result is TRUE if there is a keypress or auto key event available, and FALSE if not. If the Event Manager is not active, the result is TRUE if bit 7 of $00C000 is set, and FALSE if not. ($00C000 is the hardware keyboard input location.) Note: If input is from .CONSOLE, the fact that this function returns TRUE is not a guarantee that a call to SysKeyin will return immediately, since SysKeyin would wait for an entire line to be typed. SysKeyin -------- jsl SysKeyin Reads a character from standard in, returning the character in the accumulator. If an end of file condition occurs, (char) 0 is returned. If input is from .CONSOLE, an entire line is read on the first call to this subroutine, and remaining characters are returned on subsequent calls until the line is exhausted; another call will then read in a new line. SysPutback ---------- lda char pha jsl SysPutback Places a character in a one-character putback buffer. This character will be the next character returned by SysKeyin, and SysKeyAvail will return TRUE until the buffer is emptied. If another call is made to SysPutback before the first character is used, the original character is lost. SystemEnvironmentInit --------------------- jsl SystemEnvironmentInit This subroutine initializes global variables used by the compilers and their libraries. It should be called by programs that are not started in the normal way as one step in initializing the run-time environment. SystemError ----------- lda error pha jsl SystemError When a run-time error occurs, libraries call SystemError. By defining your own version of SystemError, you can intercept and handle run-time errors within your own program. You can also call SystemError from within your own program if your own program needs to report an error. By default, SystemError calls two other library subroutines, SystemPrintError and SystemErrorLocation, to actually handle the error. If you write your own version of SystemError, you may want to call one or both of these subroutines for some or all of the errors. The table below shows the various error numbers currently reported by the run-time libraries. Error Number Error ------------ ----- 1 Subrange exceeded 2 File not open 3 Read while at end of file 4 I/O error 5 Out of memory 6 EOLN while at end of file 7 Set overflow 8 Jump to undefined case statement label This error cannot be recovered from! 9 Integer math error 10 Real math error 11 Underflow 12 Overflow 13 Divide by zero 14 Inexact 15 Stack overflow 16 Stack error SystemErrorLocation ------------------- jsl SystemErrorLocation This subroutine is called by SystemError when a run-time error is reported. Normally, this subroutine prints any traceback information recorded due to the debug pragma, then shuts down the program. This subroutine can be called from within a program to print traceback information during the debug cycle, or replaced with a different subroutine that either handles an error and recovers from it, or shuts down the system in a different way. Traceback information is created by compiled C and Pascal programs when certain flags are set. SystemMinStack -------------- jsl SystemMinStack This subroutine finds the start of the segment containing the return address, setting the variable ~MinStack to this value. ~MinStack must be set before calling SystemSANEInit or before using any debug options that check for stack overflows. SystemMMShutDown ---------------- jsl SystemMMShutDown This subroutine shuts down the memory manager used by the run time libraries. It should be called just before a program exits for the last time. The memory manager is left in a restartable state after this call. SystemPrintError ---------------- lda error pha jsl SystemPrintError Writes a text error message to standard out. See SystemError for a list of the errors that SystemPrintError can handle, as well as the strings it will print. SystemQuitFlags --------------- lda flags pha jsl SystemQuitFlags This subroutine sets the quit flags field for the GS/OS Quit call that is made to exit from a program written in a high-level language. See Apple IIGS GS/OS Reference for the allowed values for this parameter. Note: If you set this parameter in a restartable program, be sure and reset it when the program starts. To reset the value to the one normally used, pass 0. The libraries do not normally initialize this value. SystemQuitPath -------------- ph4 pathAddr jsl SysCharErrout This subroutine sets the quit pathname field for the GS/OS Quit call that is made to exit from a program written in a high-level language. See Apple IIGS GS/OS Reference for the allowed values for the parameter. Note: In restartable programs, be sure to initialize this variable to NULL manually. The libraries do not normally initialize this value. SystemSANEInit -------------- jsl SystemSANEInit This subroutine is called to start SANE. This subroutine keeps track of whether SANE was initially started, starting SANE only if needed. SystemSANEShutDown will only shut down SANE if it was started by this subroutine. SystemSANEShutDown ------------------ jsl SystemSANEShutDown If SANE was started by an earlier call to SystemSANEInit, this subroutine shuts down the tool. SystemUserID ph4 cline ph2 userID jsl SystemUserID This subroutine should be called right after SystemMinStack by programs that are not started in the normal way. userID is the user ID for the program. cline can either be a pointer to a command line string or NULL. If the string is a pointer to a command line string, the command line should start with an 8 character identifier naming the launcher, and be followed by the command line as a null terminated string. --- Bugs in Asm65816 2.0.2 that were fixed in Asm65816 2.1.0 ------------------ 1. Segments that were longer than 64K on disk had the high word of the segment length trashed, causing the linker and utilities that work on object files to choke on the object file. (Jawaid Bazyar) --- Bugs in Asm65816 2.0.1 that were fixed in Asm65816 2.0.2 ------------------ 1. The code to create the macro hash table trashed one byte of memory the assembler did not own. (Nathan Mates) --- Bugs in Asm65816 2.0.0 that were fixed in Asm65816 2.0.1 ------------------ 1. The macro files now use &SYSCNT and &SYSNAME rather than &syscnt and &sysname. This prevents errors when the case on directive is used. (Soenke Behrens, Bryan Pietrzak) 2. The GetMouse macro has a single parameter, now. (Johnathan Salz) 3. The COPY command placed the copied file name in an unpredictable location. (Jay Krell, Jawaid Bazyar) 4. The byte past the end of a symbol table buffer was occasionally wiped out. 5. Apple's M16.HyperXCMD did not end in a return. (Jack Burke) Editor 2.1.0 Copyright 1996, Byte Works Inc. Thanks to all of you who took the time to report the bugs you found. I've tried to give credit by listing the people who first reported the bug. I've used screen names if that's what you used to report the bug. I'd also like to single out David Wallis, who volunteered to wade through all of the online editor bug reports. His work in creating a comprehensive list of bugs was an immense help in fixing bugs for this release. -- Change List -------------------------------------------------------------- 2.1.0 1. Bugs squashed. See bug notes, below. 2. The editor now saves the cursor position, selection, insert mode, return mode, tab fill mode, and tab line in a resource fork, loading the information when a file is opened. 2.0.1 1. Bugs squashed. See bug notes, below. -- Bugs from Editor 2.0.1 that are fixed in 2.0.2 --------------------------- 1. When in insert mode and auto-indent mode, pressing return at the top of a blank file hung the editor. (Jay Krell, AFC SteveB; special thanks to Jay who first found a way to reproduce this bug reliably.) 2. Attempting to use the mouse to select a dialog "button" in the Replace command's dialog hung the editor. The same underlying problem was found in a few other places, too. The editor only supports the mouse in certain limited places; it now ignores mouse actions while the Replace dialog is visible. (David Wallis) 3. In some cases, an out of memory error would occur while saving a file, and the editor would infinite loop, continuously displaying the same error message. The infinite loop has been corrected, but keep in mind that if an out of memory error occurs during a save, the file has not been saved to disk. You are left in the editor, though, so you can take other actions (like closing windows) and try again. (Peter Watson) 4. A nasty memory leak has been corrected. This leak would frequently reserve file-size blocks of memory when editing caused a file buffer to grow. 5. A crash bug in the mouse routines has been corrected. This bug would cause crashes when the mouse and keyboard were used at nearly the same time. -- Bugs from Editor 2.0.0 that are fixed in 2.0.1 --------------------------- 1. The keypad no longer acts like the open-apple key is pressed down. (DavidW271, et. al.) ORCA/Linker 2.0.3 Copyright 1996, Byte Works Inc. -- Change List -------------------------------------------------------------- 2.0.3 1. Fixed bug that caused programs with more than one dynamic segment to link improperly. (Ian Brumby) 2. Fixed bug that caused approximately one in 65536 load segments to be trashed with a random word placed every 14 bytes through the segment. 2.0.2 1. Fixed bug that caused the linker to step on memory that did not belong to it when the +m flag was used. The most common symptom of this bug was crashing during the second or subsequent compile when using PRIZM. (Kurtis Carter) 2.0.1 1. Fixed bug that caused the current location counter (* in assembly language parlance) to be evaluated incorrectly in some expressions. -- Documentation Update ----------------------------------------------------- No changes. m16.Tools Copyright 1995, Byte Works Inc. -- Change List -------------------------------------------------------------- Jul 95 1. Corrected bugs in ~GetCtlParamPtr, ~FindDItem, ~GetControlDItem, ~SendRequest, ~SetContentOrigin2. (Ian Brumby) -- Documentation Update ----------------------------------------------------- No changes. MacGen 2.0.3 Copyright 1996, Byte Works Inc. -- Change List -------------------------------------------------------------- 2.0.3 1. Fixed the bug that caused command line input to fail. (Roger Schmorenberg) 2.0.2 1. Fixed the bug that caused some output not to be printed under the new I/O system. 2.0.1 1. Fixed the bug that trashed memory when MacGen was paused with a keypress. (Jawaid Bazyar) ORCA/Shell 2.0.4 Copyright 1994, Byte Works Inc. -- Change List -------------------------------------------------------------- 2.0.4 1. The version number is 2.0.4. This affects the shell's version call. 2. Setting a variable to a value that was a multiple of 256 characters deleted the variable. 2.0.3 1. The version number is 2.0.3. This affects the shell's version call. 2. The NextWildcard command no longer fails when GS/OS returns a null for the options field in a GetFileInfo. (The major symptom of this bug was an intermittent failure of the shell's COPY command.) 2.0.2 1. The version number is 2.0.2. This affects the shell's version call. 2. Single-character commands are recorded in the command history buffer. (Bryan Pietrzak) 3. Modification dates are set correctly when a directory is copied. 2.0.1 1. There are two new shell calls, KeyPress and ReadKey, described below. 2. The shell now has an rVersion resource. 3. ChangeVector works for vector 1, again. 4. Spinner characters are sent to the shell call ConsoleOut, rather than being written directly to the output file. 5. The version number is now 2.0.1. This affects the shell's Version call. 6. Quit calls to a named file are intercepted correctly. 7. SetStdRefnum is called whenever the shell opens prefixes 10-12, so applications can do GetStdRefnum. -- Changes ------------------------------------------------------------------ KeyPress -------- KeyPress (call number $011E for ProDOS style calls, $015E for GS/OS style calls) is used to see if a key has been pressed. It should be used by all programs designed to run under a shell. It is safe for use by programs that do not run under a shell, where the program can check to see if there is an error to decide whether to use the result of the call. The parameter block has four integer fields (pCount is missing for ProDOS calls): pCount Parameter count. Must be 3. key Key pressed. Undefined if available is 0. modifiers Key modifiers, using the same format as EventAvail. Undefined if available is 0. available Set to 1 if a keypress is available, and 0 if there is no key available. If there is a key available, the key must be read using the shell call ReadKey. In the 2.0.1 version of the shell, KeyPress checks first to see if the Event Manager is active. If so, available is set to 1 if there is a keypress or autokey event available, and 0 if not. If the Event Manager is not active, KeyPress returns true if bit 7 of $00C000 is set, and 0 otherwise. In either case, if a key is available, key is set to the ASCII value of the key (the most significant byte is 0) and modifiers is set to the value that would be returned by a GetNextEvent call that read the key. ReadKey ------- KeyPress (call number $011F for ProDOS style calls, $015F for GS/OS style calls) is used to read a key. This call waits for a keypress if none is available. If the Event Manager is active, ReadKey waits for a keypress event or autokey event, returning the key and modifier fields. (The most significant byte of the key code is set to 0.) If the Event Manager is not active, ReadKey waits until the most significant bit of $00C000 is 1, returns the key code and a modifier field (formed from $00C025, but in the same format as the modifier field returned by the Event Manager), and clears the keyboard strobe with a store to $00C010. The parameter block has three integer fields (pCount is missing for ProDOS calls): pCount Parameter count. Must be 3. key Key pressed. modifiers Key modifiers, using the same format as EventAvail. ORCA/C 2.1.0 Copyright 1996, Byte Works Inc. Thanks to all of the people who took the time to report the bugs they found. You will see many of your names enshrined next to bug reports. In general, if you used a screen name to report the bug, I've used the same name to give credit. I'd like to especially thank Soenke Behrens, who went out of his way to collect bug reports from various people, then verified them, cataloged them, and in many cases created test files. I'd also like to thank Michael Hackett, who waded through dozens of e-mail messages to create a list of bugs. These two people did an amazing amount of work to make sure bugs got fixed in this release of ORCA/C. Mike Westerfield -- Change List -------------------------------------------------------------- 2.1.0 1. Bugs squashed. See bug notes, below. 2. New bit added for vararg stack repair removal. See #pragma optimize, below. 3. There have been several changes to assert(). See the Manual Errata for page 343 for details. 4. C supports the extended character set. See "Extended Characters." 5. You can create defaults that are used in all of your C programs using the new defaults.h file. See "The Default .h File." 6. ORCA/C supports // comments. See "// Comments." 2.0.3 1. Bugs squashed. See bug notes, below. 2.0.2 1. Bugs squashed. See bug notes, below. 2.0.1 1. Bugs squashed. See bug notes, below. -- Manual Errata ----------------------------------------------------------- p. 40 The description of the action function says it takes a single integer parameter. Actually, it takes two parameters, as shown in the example on page 41. Both the description and the sample on page 41 indicate that the action procedure for an NDA should return void. Actually, the action routine should return int, returning 0 if it handled the action and 1 if it did not. The correct function looks like this: int Action (long param, int code) { int handledEvent = 0; <<>> return handledEvent; } The description of the init function doesn't point out some important limitations. When this call is made at shutdown time, your NDA has already been placed in a dormant state, and all RAM has been deallocated. (This happened when the close function was called.) If you need dynamic memory for any purpose, be sure you obtain a valid user ID, and that you dispose of the memory after you are finished with it. Do not rely on C memory management functions at shutdown time. Static variables are safe, though, and can be used to pass information to the init function for use at shutdown time. p. 67 Delete the paragraph starting "One important point is that you should never reinitialize the Text Tool Set. ..." ORCA/C no longer uses the Text Tool Set for routine input and output, and definitely does not use it for I/O redirection. p. 100 The text does not mention the sixth default character. It is not used by PRIZM, though. For details on the 6th default character (as well as the 5th) see page 193, where their use by the text based editor is described. p. 101 The sample SYSTABS line at the top of the page should start 8 100110 p. 107 The table shows the language number for C as 7. It should be 8. p. 240 The discussion of escape sequences states that numeric escape sequences can contain from one to three digits. This was true until ORCA/C 2.1, when the compiler was changed to respect the ANSI C standard. The compiler will now scan an octal numeric escape sequence until no more octal characters are found, and it will scan a hexadecimal numeric escape sequence until no more hexadecimal characters are found. In both cases, the result is then anded with 0x00FF to yield a single character. The discussion concerning floating-point constants is misleading. While constants are indeed handled as extended values in the executable program, the compiler itself uses double values for the constants internally, so you need to adhere to the valid exponent range for double values, and you should expect to see accuracy in constants that is in line with double values. p. 241 ORCA/C now supports // comments. See "// Comments," below. p. 250 Several things are listed that will cause a .sym file to stop or not be built at all. Add to this list a #append, which does not work like a #include. It's worth keeping in mind that #append in included in ORCA/C solely for the purpose of appending files of a different language. There are several advantages to using #append to tack assembly language source to the end of a C source file, but there is no other place in ORCA/C where a #append is more useful than a #include. p.258 #pragma float ------------- If you are using the FPE version of the floating-point libraries, you must make a call to setfpeslot before any floating-point operations are performed. The call looks like this: #include setfpeslot(3); /* the FPE card is in slot 3 */ You can also make this call from a program that uses the SANE floating-point library, although the call doesn't actually do anything in this case. #pragma ignore -------------- The #pragma ignore directive supports a new bit. Bit 3 controls whether // comments are allowed. If bit 3 is set, as in #pragma ignore 0x0008 ORCA/C supports // comments. If bit 3 is clear, ORCA/C does not support // comments, which are not actually allowed in ANSI C programs. See "// Comments," below, for a complete description of // comments. p. 261 #pragma nba ----------- The documentation for the NBA pragma says that you can create multiple copies of the parameter block passed to the NBA by HyperStudio. This is incorrect. You must pass the original parameter block back to HyperStudio when you make callbacks. While the documentation points out that the executable file you create for an NBA must have a single segment, you have to dig to discover that this implies you must use the -x flag when you link the program. Be sure you do this! p. 263 1. The discussion of NDAs is on page 40, not page 58. 2. There is a new optimization bit for #pragma optimize. See #pragma optimize, below. p. 266 #pragma rtl ----------- When you use the rtl pragma, SANE and the I/O system are not started. If you intend to do any floating-point routines, you must start SANE. If you intend to read or write through standard input or output channels, you must start the I/O system. There are library routines, documented in the reference manual, to start SANE and the I/O system. p. 267 #pragma xcmd ------------ While the documentation points out that the executable file you create for an NBA must have a single segment, you have to dig to discover that this implies you must use the -x flag when you link the program. Be sure you do this! p. 337 The ORCA/C compiler is intended as a faithful implementation of ANSI C with some extensions, but there have always been some library functions from ANSI C that were missing in ORCA/C. Chapter 19 should start with a summary of these omissions. They are: locale.h This header file is missing completely, along with all of its functions. stdlib.h The functions mblen(), mbstowcs(), mbtowc(), wcstombs() and wctomb() are missing. These are related to locale.h. string.h strcoll() and strxfrm() are missing. These are related to locale.h. time.h The function strftime() is missing. p. 343 The documentation states that assert() uses exit(-1) to exit a program. Actually, it uses abort(). Beginning with ORCA/C 2.1, assert() prints a string that includes the assertion itself, not just the line number and file name. The assertion has the form Assertion failed: file :hd:foo.cc, line 47; assertion: bar==1 The documentation states assert() writes to stdout. Beginning with ORCA/C 2.1, it writes to stderr. p. 353 The discussion of _exit() should note that the _exit() function is an extension to ANSI C. p. 375 The discussion of isascii() should note that isascii() is an extension to ANSI C. p. 376 The discussions of iscsym() and iscsymf() should note that these functions are extensions to ANSI C. p. 377 The discussion of isodigit() should note that isodigit() is an extension to ANSI C. p. 394 Using Standard I/O With QuickDraw II ------------------------------------ When you use startdesk() or startgraph(), the libraries do some magic behind your back that causes the C standard I/O system to use the current font and window for text I/O. You can use the following library routines to do the same thing in a program that uses StartupTools. Place the declarations you see here in your program and call the functions as you start up and shut down your program. extern pascal void SysGraphTextShutdown (void); Reverses the effect of SysGraphTextStartup. extern pascal void SysGraphTextStartup (void); All text that would normally be sent to .CONSOLE from C's standard output routines is drawn to the graphics screen. This effects the standard output stream only; text written to a .CONSOLE file will still show up on the text screen. p. 396 The discussion of strpos() and strrpos() should note that the these functions are an extension to ANSI C. p. 398 The discussion of strrpbrk() should note that the strrpbrk() function is an extension to ANSI C. p. 404 The discussions of toascii() and _tolower should note that they are extensions to ANSI C. p. 405 The discussion of _toupper should note that _toupper is an extension to ANSI C. p. 444,445 The control codes to turn the cursor on and off are no longer used in the .CONSOLE driver, which is what the current version of ORCA/C uses for all text output. In the .CONSOLE driver, the cursor is always off unless it is waiting for a character. -- Compiler changes introduced in C 2.1.0 ----------------------------------- The Default .h File ------------------- The default .h file is a new way for you to set up compiler options that you want to use on every C source file you compile. Here's how it works: When ORCA/C starts, it begins by processing any command line parameters. Next, it looks for a file called defaults.h in the library folder. Finally, it compiles your source file. When ORCA/C looks for the defaults.h file, it behaves almost as if your program had started with the line #include The only differences are that the file doesn't have to exist (and if it doesn't no error is generated), the line is never shown in your source file, and the line number counter is not incremented. You can put absolutely anything you like in this file. The intent is to use it for pragmas or other preprocessor directives that you would like to become defaults for all of your programs, but there is no restriction that prevents you from putting other things in the file. WARNING: If you add a defaults.h file, be sure and delete all .sym files. .sym files are created by the compiler to make recompiling programs faster. They need to be recreated with the new information from the defaults.h file, but the compiler will not notice the prSWv7' '&EQUS.S *IFD.EQUS.S4K'&'IFD.LIB A- $- (IFDLIB.SY0 $IMGS 7&INIT.S++|{LINK.ST4&MACS.S wXT6'SCORE.S7"C${&SHAPES0  SNDSA 8$SW.S/Z${- 荪 𡍪 ͍堽 򍍠 Р󠤳 Р󠤱 Р󠤱 󠻣 䍠䍍 󠽠 MAKEv)' '&EQUS.S # )FATBITS.SLLINK.S# J3&MACS.S IE &MAIN.S,')$MAKE,O&MENU.S =+&RTNS.S,]U &UTIL.SB5.  XMAKE.DOXP^%$ET{WREAD.MEP{ET{ 퍍 獍堽 堽İ堽Ű堽ű 堽űİ堽űŰ砽Űð砽Űð 󠽠 󠽠堽 󍍠 Р󠤳Р󠤱Р󠤱Р󠤱Р󠤱Р󠤱Р󠤱Р󠤱䍍 󠲍󠲠 󠲍󠲍󠲍󠲍堻 占䍍 󍍠󠴠 󠴠 󠴠 󠴍󠴠 󠴍󠴠 󠴠 卍󠴠 䩍󠴠 䍍󠴠󠴠㍍󠲍󠲠 󠲍󠲍󠲠 塍󠲍󠲍󠲠 󠲠 󠲍󠲍󠲠 󠲍󠴍󠴍󠲠 덍Ġ󠲠 čIJ󠲠 ij󠲠 Ĵ󠲠 ㍍ 栽󠲍󠲍󠲍󠲍󠲍󠲍򲠻 硭岠󠲍󠲍岠󠲍岠󠲍岠󠲍岠󠲍󠲠 󠲠 獍󠲠 󠲠 俍¢󠲠 ᅪ󠲠 롍󠲠 󠲠 󠲠 婿󠲠 俍󠲠 婍󠲍󠲠 俍󠲠 俍󠲠 俍󠲠 󠲠 卍󠲠 󠲠 䍍󠴠 󠴍󠴍󠴍󠲠 󠲍򠪯 ፠፠썠፠㍠ᠽ𠸍젤젤ᠽ᫱ލ捪 덠ᠺ덠썠썠ݬٱٍ̠ر؍ ̠𠤲 占۰ݬᠻ 荠ᠠ 𠤲䠣ƍ썠؍ٍ썍䠣؍፠䠣Ơ 占썠؍ٍ썍䠣؍㠴ᠴ荠̍㠶젺덍䴠軰䠣ٍ젺̍ؠ٠ᬤ⍠㬤䬤嬤 荪 򠤰Ӡ 塍󍍠󍍠占Ġ占卍ӱ°卍䍍Ġ 󍍪 Ԡà젤Šàв̠ݱ젤͠à젤°ˠà젤ð͠à젤İ͠à젤ưŠà̠ݱݲ젤İŠÍ젤čÍ젤čÍ젤ð㍠ݳݲ젤䠣ݴ젤򍍠䠣ݵ젤򍍠ݱ젤獠Ǡ㠍򠍠ݱÍбנݱ̠ݲݳ젤ōÍ젤ƍŠ㠍ݱݲ堍Š㠍ݱݲ堍Š㠍ݱݲ堍Š㠍ݱݲ堍Рà젤Πà젤Рà젤Πà젤ՠà젤ŰРà젤Πà젤̠àӱݱԠàӱݱӱà̠űݱ̠ݲРà젤Πà젤Πà젤ŰРà젤Πà젤Πà젤àРà젤Πà젤Ӡà젤ŰŠà젤Рà젤Πà젤Šà젤̠à젤Рà젤ƠΠà젤Ơՠà젤İƠҠà젤Ơՠà젤ðƠՠà젤İƠРà젤Πà젤Ҡà젤Рà젤Πà젤Ԡà̠ݱ젤°Ԡà젤°ԠàӠ젤ðԠà̠ݱ젤Ԡà̠ݱݲ젤ư̠à̠ݱ젤Ҡà젤Ҡà젤Рà젤Πà젤Ҡà젤Рà젤Πà젤Рà젤Πà젤Рà젤Πà젤Рà젤ŠΠà젤ŠҠà젤İŠԠà젤Ԡà젤±Šàӱݱ٠àӱݱؠàӱݱΠàӱݱŠàӱݱĠàӱݱŠàӱݱŠàӱݱƠÍӱݱƠàӱݱԠà젤 Ҡà젤ƠҠà젤Ԡà̠ݱݲנݳݴݵ젤ĶĠà젤ŰĠà젤ưŠà젤Šà젤נàв̠ݱ젤Šנà̠ݱ젤°ŠȠà젤ŠȠ㠍ݱ蠍ԠĠàݱݲϠàӱݱ٠à젤 Šàв̠ݱנݲݳ̠ݴ젤Šà̠ݱ젤Šà젤Šà젤Šà젤ˠà̠ݱˠà젤 àנݱݲ젤 àбנݱ젤Πàв̠ݱ젤ŰŠˠà젤Ġà젤Šà젤°Ӡà젤Ҡ㠍ݱݠݲݱݬݲؠ㠍ݱ栣ݱݱ堍ݱؠ㠍ݱݱҠ㠍̠㠍ݱݱ̠㠍ݱҠ㠍ݱԠ㠍᠍᠍̠àϠݰ̠ݱϠݰ̠ݲϠݰ̠ݳϠݰ̠ݴΠΠΠΠ̠àƠݱݱŠנݱΠנݱӠàϠݰРݱޠŠΠ̠àؠݱ̠űǠàƠݱ䠣ݱŠݱΠݱĠàƠݱݱŠݱΠǠàؠؠݱؠؠݱǠàݱݲݱݲàƠئРΠàƠئŠРΠנàϠݰנݱϠݰנݲϠݰנݳϠݰנݴΠΠΠΠбנÍנÍƠݱݱōƠدݱ΍ݱ΍в̠àƠݱݱŠנݱΠנݱؠàƠؠРΠؠàƠءРΠ捠̠ Ҡ΍РƍԠ 󮍪 󍍪 荪 쭹 箮 򭹰 ί 筸 𡍪 쭸 Ů 卪 ⭸ 㭸 獪 㭸 󿍪 硍 䡍 筸 썍 󍍠捠ԠԠԠ썠Ԡ岍 렻 ፠⍍ō ݍ 썍፠ 썠፠Ġ čᠣIJ 򠣤ij򠣤Ĵ 썍砣󠻣 䍠IJ䠣ð 䍠砣 占썍젻 占ݍ 򍍠ᠻ占䠣 䠣 占IJ ģ ɍ썍 덠㍠㠣Ѝ፠䠣 占䠣䠣 䠣䠣IJ 䣍 썍砣젻 占㠺 ˿𠣤堺 俍덠𠣱 占񠺳 塍翍썍 荠򍍠IJ ģ썍IJģ㍠㠣Р ፠፠썍IJ㍠㠣Р ፠፠썍IJ㍠㠣Ѝ፠ 썍IJ썍㍠㠣Р ፠፠썍IJ㍠㠣Ѝ፠ 占썍 썍 ㍪ 썪 ፪ 썍 砣䠻 䠣砣 䠣砣堻 䠣砣 䠣砣堻 䠣砣젻 󩍠䠣䠣 ፠ ፍ 󡍍ԍ젻 㮮卍ᠣ㫱젻 獠占 卍 砻 忍卍 󡩍젣젣 졍፠䠣Ơ 砣㍠ᠻ 􍍠𠣤 񠺱𠣤 堺 堻۲ ᫲ ᠻ ㍠᫲ 占䠣 ᫲ 򠺶占堻 獠獠젺 䡍堻۲ 忍򠺳𠣤 堺 堻 䍺  ԍ Ԡ č젻 獠čԠ ㍠Ԡ򡍍 獠砻 翍占占젺 ㍍ᠻ 򠺱 占󍺱 򿍠젺󡍠䠻 򿍠򠺴堻 젺堻 ᠺ堻 忍占򠺵¢ 獠ᠺ 砻 젺砻 忍򠺶 򍺶  󍍠 橍 卍ԍ 񠺱堻忍젺 󿍠젺 堻 占䠻 忍젺¢ 獠堻 䠣썠岠 ҡ󍍠 䍍ԍ堻 堻 􍺱占䠻 姍 󍍪 ㍠㠻 堺򿍺ᠣ 荍㠻 荠㍠堺 忍ᠣ젻 󡍠썠堺ᠣ 䡍荠㠻 䡍󍍪 砻 翍젺堻 忍젺򠺰 占卺堻 翍젺򠺰 獠퍺㫱 䠣񠺹 塍፺󍺲砻󿍠򠺳砻 忍占 硍 獠砻 ڍᅪ 㮮 占 翍򠺰𠣳󿍠堺堻翍젺堻 썠䠣ƍ𠣧ȧƠ 򿍠񠺲𠣧էƠ 򿍠堺ᠻ ㍠ 塍󍺱 젺፠䠣 ᠻ 򠺰砻 堻 占 占㍠堻 젤Űð 򡍠젤Űð 򡍠堻 卍  󡍠򠺰 䍠堺󫲍䍠젺¢ 젺¢ 占堻 젺 卺㍠ 󍺱󍍠 덠̠ 卍፠䠣䠣砣 獠砣占砣ˍ砣堻 ፠ 􍍠 򡍍ԍᠻ 򣍠 獠񠺱ᠺ 獠砣 衍򍍺⠺㠧 ԍ󠶍󠱸 ԍ젰젰젰Ԡ덍 썠 䍍 占 䬰 䍍 뺧ˠ  塧 箮 㠧짬Ԡ㠧ԧ捠,' ,@make make 'Kt"LH"LhT VIXIZ"LHH VH "L,.,(HVH"L(iH?VH"L2Z:""""W"E 䂩"L" "VH"LVH(iH"LVH(iH"LVH(iH"LVH"L(iH"LVH(iH"L"L"LHH -" "HH-" "HH4-" "HH -" "HH? -" "HH" -" ","H"h D M vHH"HH" """"H?"hKx "~QݘO8QQH,"x)"Q~ B  9""""""""""""""TH"TH""")#8L- I4K6HIO"h"xIFKH`x "dxz lۥ| [Υ  LRL>^ Ɩ  z |, `^dzF`84B>68DJJ @B4D6` L L; M)dRh` 4B6D^`x xdƂƄ4B6D|@x%!A) e`H"hƆd #BFDHx xB4D6 z 0 0L)!x IEFKEHz|d|LF4H6L[`"()H2}-"h`H  " fatality - Help! I need this disk: Here ya go! No way aye!Image Maker loading...ToolQUIT%HM)"h`H ; h L`:| K A HHZHHH ":HH ZHHH "(* (ƀF mem:] WM)K 8 [, ' *#ƂƆ[HH """ƌ`: td~:K A؂:% i H"h: "`:( *> #%v` v``5^H"Y"h`\I\)H2"d~`\I\)HᤌHY"h`H ; h ƀd~`:d~L%$:ƈd:Ɗdd~dFL"H ; hC  ?  $  "d`Ǝ9"` ,"d~`:d~VXN `:Ʃ> AӐ pic`H ; h% N$ @Ɛ` ,"d~`:d~V$ `: A֐ snd`:d~:d~d~$LHH&$"`hJhL$i ($i*&$ "*(&$LJ(""LJ&$"&$""$L FxSndHH&$"JL#$($* (I(JJ ` EORt H "h::  `8` "#V[, dt.,"(` dd.," I4K6x` anmHHHH"JLHHJ *"ACHHL *"=?HHHH"hNeJJhPeLLHHJ *"npHHL *"jlHHN *"WYHHP *"SUHH"JLHHJ *"HHL *"HH"JLHHJ *"HHL *"HH/"JLHHJ *"HHL *"HH"JLHHJ *"HHL *"HH^ *"MOHHb *"dfHH` *"{}`$$@\XN300--About...\N300V>$$ File \N255--Close\N255*WwV--New\N256*Nn--Open...\N257*Oo--Save\N258*Ss--Save As...\N259V--Info...\N260*Ii--Transfer...\N261*TtV--Quit\N262*Qq>$$ Edit \N250--Undo\N250*ZzV--Cut\N251*Xx--Copy\N252*Cc--Paste\N253*Vv--Clear\N254>$$ Frame \N400--Add\N400*Aa--Remove\N401*RrV--Display\N402*Dd--Animate\N403*YyV--Brush Mode\N404*Bb--Masking Off\N405*Mm>$$ Picture \N500--Load...\N500*Ll--Save\N501--Save As...\N502V--reFresh\N503*Ff>$$ Sound \N600--Get...\N600*Gg--Save\N601--Place As...\N602V*Pp--Kill Mac Hdr\N603*Kk--XOR $80\N604V--Hear Sound\N605*Hh>mn ,X@2(_SHR Animation Image Maker v2.98 Lane Roath, Programmer _AtLarge (c) 1988-90 Ideas From the Deep! 309 Oak Ridge Lane Haughton / LA / 71037 -Delphi- -GEnie- LRoath L.RoathNZ^ Thanks2( P$Completed on 13-JUL-90. Thanks to my neighbors who put up with LOUD music long into the night! Special thanks to those of you who will never see this dialog. "She was buns up & kneelin." -FZPF`  Crank it up!2(x- _E=This image has not been saved! What should I do with it now?2BU Save it!2\B Nothing2B Cancel#,# nn)gImg File... Pic File... Snd File... Header... Data... Total... Total Mem... Free Mem... Main Block...x Compact Memoryx  Outa Here!sKss#)sn;n$FFFFFFFF Frames FFFF $FFFFFFFF XSize FFFF $FFFFFFFF YSize FFFF $FFFFFFFF $FFFFFFFF ($FFFFFFFF) $FFFFFFFFOpen image fileSave image as... Load pictureSave Picture As... Load SoundSave Sound As... Launch...12/No Image!/^#022/Image must have no frames!/^#0{ HH "9"*""HHb "2XH""d dRHH@XHHH ",.,, dd~d\d\ZH"ddvdtdddddxdddddzd|dd^`D@B" >` J "")/ ")hHH-H+HZHHH "Jz,z.A,1(,3*"/" "`H.,"hH"h( LNPR,.HH.,"hC+hE-s., ",?,A """V*""L"PS"=)>"=2")#H.,""""h(` K  LHHH *":<9 HH"H"h8~` g2H " ` g2HZ " `HڌGi(I0((/:80  path failure(0 ԬGh`K [IH H "    6"H H""d~+k ( *J~( J` "j""HHHH>"h=i}HH"h)J()JJHJH"ʹ`GI0[K0`46NhH,.,(,* (hN: i (e(*iȷ(e(*i4:$84lr:l8:l: d:d4:en4el NlNFDlNlLn<860JJn(P eLL8:0 2:6 04h6 h4`.H,H "F,(,*HH.,"h)""`  Playing Sound)NK/@; /@2}1 2-"System Error ^0! Hint: ^1 2xA 1RestartLane1/ img.untitled0/Lane0/Roath0/ Lane.Roath0/ wrote.this0/dHHHZHHH ",.  Making Frame,(,*4:`NbJd89JJe9e6J $2H)hH) hH) h) (Jм:NЦ$0\0`HH"JL-JeH" "., "  Adding Frame,,Je(Le**(Ԕ+"᰸^^ i JH"ᰜ(* FJ(eȗ(e^"".,"t` "X "KHH"JL6HH"NP!HHJeNHZHHH ",.  Make Image,(,* \*(LJ+"ᰰ(eJ(*eL**(PN+"ᰏ"""".,""`>`d@fJJbd^^eb \0 `., "HH.,"JLr,(,* (\\)H2"\)H2" (e(d*eHHJ8LHPZNZHHH "WPN("B.,"1,.""`>eb \0 b @`  Chop Image(*^a:^ i J(8JH">J",(* FJ(eȗ(e^t`  Remove Frame 7%}, oHHXH "0 m%.H,H"ᥚ `H.H,H"ᥜHH"h8`"( i'`8`i'M`(`s'u'w'y'H*H(H9Hs'w''"he((w'` '`i}ii (q'(i(*i*q'e'(e'HHq'H "he((he**(HHHH(i(*i* "he({'he*}'hg'k'm' g'm'(Ȍm'k'k' w'y'o's'u'H}'H{'Ho'(Hs'w''"hm{'{'}'i}'o'io'iiw'g'С`9e(\';e*^'0(`'ȷ(a' `'0`((e((e**(\'*^'8`MAIN=%K! [  } N5 Z[[_" F? - 4 F%(FIil03ILbe{~ (TZ] */JWd} )i >If!/ 04CGeix| Fz 47:MQt~ 69ilo+1;>BWadjt:IVy Dbmu gn$`fru{",2OT&w'&s'%w'%s'%1fKSF7TM.(9)y=dXPNLD/#/D)/>Dwb/;)  #9E%-!$     $ "L)- -}) I#?W0Ib"gj\v!& FORW]`'*28=twz 1'BV[cňlwDG  捠̠ 󢍠Ҡ΍Рƍ 򍍪 荪 򭹰 宮 ӡ 쭸 󮍪 卪 򭸹 ⭸  ⭸ 㭸 󡍪 㭸 獪 ᩬ 獪 󡍪 塍 筸 占썍捠Ԡ㍠ԠԠ荠ԠԠ占ԠԠ責岬岬貍 ԍ堺፠㫱 俍䠣፠砣 獠ᠺ⍺砣 獺砣 ፺󍍪 ԍ፠ ፠堺 忍󠺹 䡍󍺹󍺰㠻 忍񠺵젺 䍠󠺹ᠣƱ 占堻 占젺砣占Ĵ䠣堻 썠󠺱 뿍砣占Ĵ䠣堻 썠󠺱 뿍捠ᠣݬ 󡍠砻۲ 塍ᠺ 卺砧㠻 忍堺 󠺸㫱 俍䠣፠Ʊ 卺፠堻 占젺۲ݍ堣젻 쩍󠺸堻 獠砻 󍺱堣젻 덠덠砻 䍺󍺲㠻 忍堺 ᅪ젺占堻 㠻 忍堺砻 俍젺Ʊ 占堻 젺卺㠻ᅪ堺፠ 䍠፠砣 砣፠㍠񠺴⠻ 俍퍠ᠺ፺⍠󍺱㠻򿍠堺 忍󠺶ᠣ³ӱ 衍岠 占젺荠砻뮮 󍺱 占󠺶砻 󍍪 Ԡ 硍󍍪 ԍ𠣵۲ 翍堺 䡍፠捠򠣤 덠捠䠣፠ᠣ 򮍺퍠퍠堻 塍󍺸𠣴 翍堺堻 ͍򠣲堻 䍠䠣ƍ፠ᠣᠺ۲ 򮍺砻 󿍠򠺵堻 占፠󍺵፠ ፠堺 忍獠砻 忍򠺷砻 󍺷堻 塍󍺰砻 忍젺㠻 忍堺堻 硍卺㠻 忍堺堻 占ᠺ㠻 積堺堻 卺占堻 占占堻 卍 ԍ፠ 󡍠፠堺ᠣñ ð 堻 荠젺򠺱 荠 㠺 젻 占占砻 䍺󍺳砻 ㍺砣蠻 󍺴砻 硭 䡍占㠻忍堺堻 塍ᠣñ 占占嫲堣費젻 덠󍺷㠻 󿍠堺ᠣñ 䩍岠 󬍠򠺸㠺砧㧍󍍠 ԍ፠ 󡍠፠㍠堺俍ᠣ 占堻 占젺堣젻 󠺹砻 䍠󍺱砻 忭۲ 占㠻忍堺⍠卺ᠣ 占占堣費젻 塍⍠㠻 󿍠堺ᠣ 占岠 占򠺸㠺砧䧍󍺳㠻 㩍堺占䠻 㠻 俍堺占䠻 󍺷占젠 䍍 󡍍䍠젻 䍠占󠺹ᠻ 㠣፠㠣 俩𫲍㍠ݠ 㠣 ݬ㠣򫲍젻 덍썠䠻 󠺹썠堻 占󠺹젻덠덍젻 䍠䍺砧䧍 卪 򡍍䍠젻 䍠占 占󠺹 멍 ݬ򠣤 ݬ 䍠忍ᠣ ݬ 󍺹砧ҧ 䮍 ۲ ㍠젺 忍፠砣 砣 ፠㠻 썠㍠񠺷 忍젺堻 󠺹۲ 㠻 䡍󍍠 롍占堻 占󠺹ᠣƱ 占占堣젻 占󠺱 獺젻 獠占󍍠 獪 ԍ堻 쿍占젺 占堻 썠堻 塍󠺲㠻 占󍺲砧 ᠣ젻 򫵍𫲍 򫱍ᠣ젻 򍍠፠𲠻 ㍠ 占፠𲫲𫲍𫲍 쫵𫲍 쫱𲍠 ᫵𲫲 ᫱ 쫵𫲍 쫱 嫵𫲍 嫱젤ư 쫵𫲍 쫱렻 𫲍 󫸍占 嫹占 嫹󍍠 ԍ㠧γ㠧γ֧㠧ԍ㠧 β㠧β֧䡍㠧β㠧β溺㠧β󧬰㠧 󮮮β֧㠧ﮮβ駬㠧򮮮β֧㠧β񧬰㠧ԍ㠧 β㠧β֧㠧β㠧β㧬㠧β㠧β㠧ԍ㠧 δ㠧δ᧬㠧δ֧㠧δ䧬㠧δ֧㠧 δ⧬㠧 δ㠧ԍ㠧 ε㠧䮮ε짬㠧ε㠧 󮮮ε֧㠧ε槬㠧ԍ㠧 ζ㠧ζ秬㠧ζ㠧 󮮮ζ֪𧬰㠧 ζ맬㠧 ζ֧㠧 ζ觬㠧 ԍ썠占占䍍Ԡ 젺젺젰ƍ젺젰⠺㠧 䍠㠧 姬䍠㠧 𡧬䍠㠧 姬䍠㠧 䍠㠧 孧䍠㠧 ̮觍젺젰󧍍 󮮮젺젺젰ƍ젺젰⠺㠧 堵㠧 󧬰䍠㠧 觬䍠㠧 䍠㠧 䍠㠧 箧䍠㠯 گ젺젰 𡧍 젺젺젺젺젰ƍ젺젰⠺㠧 䡧䍠㠧 젺젰 젺젰种젺젰짍 젺젺젺젺젺젺젺젰ƍ젺젰⠺㠧 宮䍠㠧 宮䍠㠧 宮䍠㠧򮮮䍠㠧ᮮ䍠㠧쮮䍠㠧 䍠㠧 䍠㠧 뮮젺젰 젺젰 塧ƍ占젰ƍ占젰ƍ占젰ƍ젺젰䭪㠧Ƨ㠧 Ƨ㠧Ƨ㠧 Ƨ㠧Ƨ㠧 Ƨ㠧Ƨ㠧 㠧Ʃ㠧Ƨ䍍 姍 󮮮 姍 󮮮 䧍 󮮮议占㠧㠧 塯㠧ޣ㠧㠧 󡯧㠧ޣ捠 !"#$%&'()*+,-./0123456789:;<=>?@A捠̠ 󢍠Ҡ΍Рƍ 󍍪 荪 򭹰 졍 獪 쭸 卪 򭸹 㭸 獪 쮮 졍 筸 占썍捠Ԡ􍍠 퍍ԍ㠻 Ѝ򫲠젺 롍砣蠻 򍍠栻 󠺹ij ፠썍ᠣű򫲠 䍠 砣占ij䠣ᠻ 䩍፠堻 썠㠺 򿍺 獠占捠卍ԍĴ۲ 썍ᠣ 䍠砻 䡍獠獠獠獠占占占䍠ᅪ砻 󍍠 卍ԍ蠻 荍ԍ󫲍󫴠 ؠ󍍠 卪 ᩬ 卍ԍ󫲠 占󫴍 Π 卍 󠺰Ơ 荺󠺰󫲠占Ĵ䠣䍠堻 䍠젻 쫲󠺰 뿍ݠ 占󫲍 占ݬ󫴍򫲍Ġ󠺱 Š󠺱 󠠻 򍺱፠젻 䍠占፺፠ 󡍠፠ 򍍠 箍 ۲ 󡡡ԍ󫲠 占  占 占ᠰ젻 ᠲ쫲젻 占占፠󫶠 󫲍ᠠ۲ 󡩍󫸍󫴍󠺷젻 덠󫲠 ፍ 􍍠Π 占󠺰Ϡ 忍󠺰󫶍堻 ᡍ㍠񠺱Š ٠ 占Š󠺹Π 卺 󍺷󠺹Š ፠󠺹Ơ۲ 塍󠺹፠젻 썠덠Š 䡍፠󍺹򠺸 򍍠 ԍ 󫲠 덠󫴠 퍍ԍᠻ፠ᠻ 򣍠򫱠 獍砣󫲍砣 砣 ፠砣 砣፠ ㍠堻 占󍍠 荪 卍Ԡ 荠䠣䠣 ፠砣 砣砣㠻 䍠占荠㠻 ҍԠ 荠䠣䠣፠ᠣ㍠ 占䠣砣㍠占荠㠻 󍍠 ٧ 䡩 荪 卍荠ᠻ 塍፠㠻 占㠣؍ᠨ򩠻 占ᠨ 𠣧񠺱 迍𠣧񠺱۲ ǯ  塩㍺؍砧 姍ؠ 塩蠻 ᠨ 占 占؍蠻 占荠 ፠󍍪 卪 󡍍ԍ⠻ 덠덠⠻ 䍠Р 䍍 砻 젺젻 ፍ㠻 卍堻 §󍍠뻣 ㍍썠렻 썺堻 䠻 덠⍠젻 硍 ԍ 卍ᠣ𠻣 堻 ݬ 忍󍍪 ˭ 󮮮 占占젣젣 ᠻ 占㠣堻 ፠  占፠䠣ư 獠ݬ 占䠣ƍ   獠 忍占󍍠 䍍ԍᠺ嫱 ᠺ嫱؍蠻 堻 ؠ 󍍠̠ 󢍍 Ǯ 宍 ӫ غ 卪 ٺ 卪  ፪ ፪ ㍪ 󩍪 󩍪 𲫲 ԍ㠻 ㍍岠ԍ𲠻 ፠ 썠፠ᠰ젻 占ᠲ쫲 卍孲 ݬ Ѝ ፍ𲠻 ㍠젻 썠㠣堻 ݬ 占򫲍㠣 獠򫲍 ݬ 򮍠򫲍㠣 獠򫲍 ㍠ 젺ᠻ 䍠㍠㠻 占岍堺 岠 ㍠岍 썠 Ӭ 㠻 祉岠 덠 󩍠㠻 ㍠岠 㠣󭱍 퍠𲍠岠 俍𲍠񠺹 ᠺ岍𲠻 祉岍𫲠 岠 忍 ᠣ ㍠㠻 忍頺 ㍠岠 堺𲫲 ꮩ썠𫲠 占𫲍㍠ 󩍠𲫲㍺㠻 롍 卪 ㍠㠣󭲠 𲫲 捠𲫲 占񠺹堺 󍺵 󡍍占䠣Ơ 卍 ԍ獠ᠣ 桍獠ԍ 獠䠣 獠砻 ̍젺󍍠 塍 ƍԍ ̍񠺹 ᅪ頺 ፠ݬ㍠ ݬ㍠ݬ岍 덠ݬ岍㠻 𡍠㍠岍 岍岠 썪 썪 婍 ㍪ 婍 ㍪ 卍卍𭱍򠠻 𭱍㠻 ㍠岍岠 󩍠 덠頺 占ݬ 썠堺 忍𲍠 忍ᠺ 卺󍺸砧种 卍𫲠 𲫲 썪 썪 婍 ㍪ 婍 ㍪ 卍卍𭱍򠠻 𭱍㠻 占ݬ 𫲍栻۲ 忍젺ᠣ ݬ 󬍠ݬ  𫲍堺 忍岍젻 占𲫲𫲠 𲠻 忍 ݬ 岍ݬ 㠻 ݬ㍠ݬ 塍 卍𫲠 𲫲 썪 썪 婍 ㍪ 婍 ㍪ 卍卍𭱍򠠻 𭱍㠻 􍺰 卍栻۲ 忍젺ᠣ ݬ 󬍠ݬ  堺 忍岍젻 占𲫲 𲠻 忍 􍍠  ԍ䠻 덠頺㠻 썠𠣱 󿍠ᠣ 썪 婍 ㍪ 婍 ㍪ 卍占𭱍򠠻 𭱍㠻 㠻 䍠򠣤ƍ 䠻忍䠻 썺󍍠  ԍư㠻 俍㠺Ơ 򡍺䫱䠻 󿍠𠣱ᠣ 􍺰㠠 덠䍠㠻 堻 썪 썪 婍 ㍪ 婍 ㍪ 卍𭱍򠠻 𭱍㠻 䍺򠣤ư 䠻忍䠻 썠󍍠 ԍᠣ 䍠堻 卍㠻 䍠㍠ᠣ䠻 占卍 ۲ ԍ㠻 ፠㍠젠 ㍠፠㍠蠻 󡍠䍠堻 ㍠㍠蠻 ㍠䍠堻 䍠㍠㠻 占䠻 ㍠፠㠻 占占፠㠻 󍍠 򮍪 卍ԍᠲ쫲፠ᠰ 占썠፠렻 󠺹ݍ ፠ݬ򫲍󫲍젻 占占ᠻ 䠣ư፠󫴍󠺹䠣Ơ 捠䍠䠣 砣䍠󠺹 򿍠󍺹砧 䧍  젰 ፠󠲠 ÷ᠰ 占젰 卍 ԍ󠱰ԍ󠤱ԍ󠶍ԍ젰젤Ơ 젰ԍ󠱵 ԍ󠴠 ԍ젰荠ó ԍƱ 占젰 占獠 卍 䡍捠栻 䍍 󍍠占젰 젰۲ 젰젰젰㠻 ԍ젭젰 󠸍덠젰Р 󍍠 젺젺젰ƍ젺젰⠺㠧 ް䍠㠧 ޱ 젺젰姍 荠젰䡍򠧱 荍󠲍󠲠 ԍ䧍󠱶ԍ򠧰󠶵ԍ姍󠱶ԍ򠧰󠶵ԍ觍󠱶ԍ򠧰󠶵岠ԍ觍󠱶負ԍ򠧰󠶵岠ԍ󧍠󠱶負ԍ򠧰󠶵 򩍍ԍ⠰Ʊð ԍ󠲠 獠󠲠占󠲠 󠱶󠱲卍Ԡ荍  䡍 塍 硭 ԍ 䍪 ލ捠CDEFGHIJKLMNOPQRSTUVWXYZ[\]Ԡ捠̠ 󢍠Ҡ΍Рƍ 퍪 捍 荪 򭹰 卪 ð 塍 䍪 筸 썍捠Ԡ占Ԡ󍍠  쩍ԍ 硍ᠣ堻 덠፠Ĵ䠣썠፠፠堻 덠썠㠺砧 姍  ㍠ 占堻 썪 썪 婍 ㍪ 婍 ㍪ 卍卍𭱍򠠻 𭱍㠻 占젺 뿍ᠻ 䠣Ơ 堺Ơ 𡍺፠፠䠣ư 堺፠ᠣư 𡍠፠፠䠣ư 쿍堺፠ᠣư 𡍠፠䠣ư 쿍堺፠ᠣư 𡍠ᠻ 덠ݬ 占 堺 忍𲠻 忍 뿍頺栻۲ 忍頺 ᠺ㠻 򡍠󍍠 卍ԍ젻 占占󠺹 占占ᠣ 占፠젻 占󠺹젻 덠썠덠㠺砧 姍 占𫲍򫲍򫲍 ᠣ堻 占占󠺹 卍ᠣ 젻 占썠㠣堻 占፠젻 占󠺹 󍍠堻 占占 ݬ㍠堻 ݬ堻 占 忍堻 졍젻𬍠덠젻 占占 占󍍠 ፍԍ젻 덠󠺹젻 ፠덠󠺹젻 占󠺹젻 ፠占𲍠󠺹 獠ᠣ 𲍠፠Ĵ䠣䍠占썠㠺 뿍砧 姠 獺 獠򍍠孲 ݬ 占󠺹 򫲍𫲍򫲍 ፠𲍠占󠺹젻 덠젻 ፠덠젻 䍠덠󍍠 宍 捍ԍ蠻 捠占占荠占 占 孭堻 占 썠捠頺 濍썺堻 덠󍍠 덪 卪 ԍ젻 덠縍젻 占占縠󠺸 䡩孲ݬ Ѝ占䠣Ơ ፠ᠣ 퍠捠䠣ᠠ 捠ᠣ퍍占ݬ ፠㍠򫲠 򫲍򫲍򫲍 彍㍠ ፠𫲍򫲍፠𲫲 ፠𲍠Ĵ䠣䍠堻 ፠썺󠺹젻 占𲍠䍠󠺹 썠堻 󠺹젻 卍젻 덠󠺹堻 荠荠ᠣ 占堻 占 썠捠頺 濍썺堻 덍占젻 塩썠蠻 荍 塍砧 姍 宍 㮮ԍ ㍠ 忍񠺹㠻 썠젻 占㠣占 ፠ݬ㠻 ᩍ㠣 ᠣᠻ 塍썠堻 䍠򍍠ᠣ 썠堻 塍򍍠 塍堻 占占 ݬ㍠堻 ݬ堻 占 忍堻 졍۸ݍ塍砧 姍 塍堽ԍ 占썠堻 堣ijðݬ 򫲍ݍ򍍠占ᠣݬ 󩍠占젻 썠፠썠 䡍፺㠻 獠󍍠 宍 󮍍Ϡ 占占󫶠 占𠣤㰠 忍𠣤㱠 忍堺卪 忍 占ᠺ卺 占卺占 俍堺卺占占㠻 占占㠻 占󍍪 獪 򮍍占占堺߰ 卺𠣱堺߰ 卺𠣲堺߰ 䍺󍍪 宍߰孲ݬ 占ݬ󍍪 宍߰砣卺፠󫱰砣砣占፠㍠占堺󍍪 宍߰덠㠺 덺㍠㠣占 占㠣 占򫲍㠣򫲍򫲍 ݬ󍍠㍠㠣򫲍㠣򫲍 卍䠣򍺲 占ݬݬ堺堺 䠣፠㍠፠򫲍򫲍ݍᠻ ፠፠ᠻ 򍍠㍠㠣 򫲍㠣򫲍䠣፠㍠ ፠፠򫲍򫲍፠ 󮮮 ᠣ󍺱 덍 卍䠣󍺱ݬݬ堺 ᮍ፠砣占ᠻ 占 퍠ݬᠻ 덠砣 砣堻 占፠㍠򫲍㠣 ፠򫲍㠣 占㍠㠣򫲍㠣򫲍占占堺卻 󍍠 ή 򮍍덠󫱰㍠ 󫱲򫲍򫲍؍ݬ占堺 荠ݬ嫱堺 荠占㠺؍㠻 ؍ݬݍ㠻 ㍠፠򫲍򫲍򫲍򫲍㠺 䍠㠻 䍠󍍠 󠲍󠴍Χ 󠲍󠲍󠲠 䍍󠲍󠲍󠲍󠲍󠴍󠴍󠴍捠aX8pPTEpdos~ 18-Jan-90 v1.10 Image Maker Documentation Ideas From the Deep, Ltd. 115 Le Point St. Copyright (c) 1989-93 Lane Roathe Arroyo Grande, CA 93401 All rights reserved worldwide lroathe@ifd.com Apple, Macintosh, and any other of Apple's trademarks, are trademarks of Apple Computer, Inc. The Image Maker (Hereafter refered to as MAKE) and the corresponding documentation is copyright (c) 1988-89 by Lane Roath. All rights are reserved. Ideas From the Deep and the program author make no warranti>t>t   !Wff,ȃp P~X@l!_bcdefghijklmnopqrstuvwxyz{|}es on this product or it's fitness to any task, nor do they warrant that the program will function as described, be free of small insecti, or that such will be killed. All other neccessary or cool legal statements are hereby implied, so watch your butt! :-) INTRODUCTION Believe it or not, Make was created with purpose, foresight, and desperation. As you have no doubt noticed, there are no utilities on the Apple IIgs for creating good animation. In fact, the only one I know of is a paint program from Synergistics, and while it's not a bad program, it isn't flexible enough to fit my needs and source code was too much! So I created Make for the specific purpose of capturing sequences of frames (called Images) from a super hires screen. Not having the time, I decided to have the user create the frame screens outside of Make in whatever their favorite paint program happened to be, and later use Make to capture the images from the picture. Make works by allowing the user to capture frames off of a SHR picture one frame at a time. When the first frame is captured a rectangle is defined that should be as large at the largest frame in the image. While this method might take more disk and memory space in some circumstances it is faster when drawing and allows the programmer an easy method to align moving shapes. This document is a preliminary release, and has not been thouroughly thought out and may contain some basic ommisions! Therefore, feel free to contact Ideas From the Deep for specifics on how to use the Image Maker. Information which will change in the future is designated by the markers << and >>. _________________________________________________________________________ General Use The steps required to create an image are really quite simple. First, use any good drawing program (I won't recommend any on the market at this time for many different reasons, but the shareware program Paint256 is at least usable :) and draw whatever shapes you wish to have animated or just plain drawn in your program (which I will from now on assume is a cool GS game). Now, save the picture in any standard format (other than Deluxe Paint... I forgot to implement it!) and run MAKE. Select NEW from the FILE menu and enter the name under which you wish to save the image, as well as selecting the directory it should be in. Next select LOAD under the PICTURE menu and load the picture you drew your images on. Don't worry, MAKE supports 256 color pictures! As you move the mouse around you will note two lines on the screen. These are the top left marking lines for the image box you need to define. To define this box, move the lines so that their intersection is on the top left pixel of the largest frame you wish to capture. Remember, if your image has right/left animations you need to make sure the image box is large enough to capture both (or you could use two images to save space...) Click and hold down the mouse button while dragging the selection box so the bottom right corner is on the bottom right pixel (pixels on the lines of the box are included when the image is captured!). Release the botton. Now, if this frame is not the first frame in the image, press OA-R to remove it (or select REMOVE from the FRAME menu) and position the capture box over the first frame. Repeat the box/click to capture for each frame of the image and then choose SAVE from the FILE menu (or SAVE AS to save the same image to another file). HINTS: o Always leave color 0 = black and color 15 = white or you might not be able to read your menus or see the window outine! o Color 0 is the mask color... ie, anything on the screen that is this color (usually black) will be seen thru when drawn! o When drawing frames in the paint program, try to line them up on so the left side is on even pixels. If this is not done, you will have to adjust the positioning of the picture in MAKE using the bottom scroll bar arrows which move by 1 pixel. o Images always have a width with a multiple of 4 pixels (one word) because of drawing speed considerations, so take this into account when designing & drawing your image frames. _____________ | Apple Menu | |____________| ABOUT... This simply brings up a dialog which informs the user which version of Make they are using, as well as providing some basic copyright and credit info. ____________ | File Menu | |___________| CLOSE This option only works with desk accessories, and can be used to close one if it is the active window. Should be deselected when not active NEW This is the way to create a new image file. The program will first ask you to save anything that isn't already saved, and then bring up the Standard File dialog for saves. This allows you to select where you want the file located and to name it. Not UNTITLED documents here! CANCEL will abort the operation (saving any current image) while SAVE will only select the images location and filename, but doesn't actually write anything to disk. OPEN... Presents the standard file selection dialog. Only image files are shown (File type $F1 -- NOTE: ROSS, this needs to be changed, and we should get a filetype assigned to use by AIIDTS. I'll look into this soon). OPEN will select the file (overwriting the currently opened image) and load it into memory, selecting the ADD FRAME mode by default. Pressing the option key before and holding it during the selection of OPEN will allow the opening of any type of file! This was added to allow opening IMG files which had been converted to BIN type in order to link with Merlin 16+. DANGEROUS SAVE Saves the current image to disk, using it's default filename. This option will do nothing if the file has already been saved. Should be dimmed when it will do nothing SAVE AS... Presents the standard file selection routine for saving files. The default name for the image will be in the line edit field, and the selector will open into the last directory used to access an image to, or the last accessed directory if no image has been accessed yet. INFORMATION The dialog this option brings up shows some more specific information about the current image, and other system statistics. Please note that all information is presented in HEXIDECIMAL, just like you'd expect it to be! First, the filenames for the current image, picture and sound are shown. The HEADER SIZE is the size of the image's data header and address offset table. The DATA SIZE is the size of all current frames and their masks if present. Obviously, the TOTAL SIZE is just the addition of these two numbers. The FRAMES lets you know how many frames are in the image, while X and Y SIZE let you know the size of the image (NOTE: X is in WORDS and Y is in scan lines!) The TOTAL MEMORY is how much RAM the system reports your computer has, FREE MEMORY is how much is available and the number in perenthesis is the amount free if some memory squashing were done. LARGEST BLOCK is simply the size of the largest contiguous chunk of memory. The button COMPACT MEMORY forces the system to do just that, and then redisplays all the information above. Mainly for debugging purposes. The TOO MUCH button simply closes the dialog and let's you go on your merry way. TRANSFER Instead of forcing you to quit back to the finder to relaunch your paint program, Make will allow you to locate and launch it using the standard file selection dialog. CANCEL will return you to your regularly scheduled program. QUIT Returns to the program which launched Make in a safe manner. _______ | EDIT | |______| UNDO is not implemented & should really be greyed out! CUT COPY PASTE CLEAR These only work with DA's at this time, and should be dimmed! I haven't figured out what is cutable, etc... at this time ________ | Frame | |_______| ADD FRAME If there is no image this item will do nothing, & should be dimmed If there is an image, but no frames in it, half of a cross hair will appear and follow the mouse movement. In order to properly define the capture box for the current image, position the intersection of these lines at the top left of the largest frame in the image (the lines should overlay the top left pixels.) If you can't get the leftmost pixel under the vertical line, try clicking the right scroll arrow once (which will move the view port one pixel to the right.) Once you have the lines positioned, press and HOLD the mouse button while dragging the size box to the bottom right of the frame, and again the box's lines should overlay the bottom and right pixels of the image (which could obviously be blank if you so desire.) Finally, release the mouse button! The first frame of the image has been captured, and the image's size rectangle (and thus it's capture box) has been defined. If the largest frame was NOT the first frame of the image, simple type oa-R to remove the frame and capture the actual first frame. If the image in memory already has at least one frame and/or it's size rectangle and capture box have been defined, you can move the capture box around on the picture (aligned to even pixel positions only!) and so position it over whichever frame you wish to add to the image, which is accomplished by clicking the button. REMOVE FRAME Use after defining the capture rectangle and/or whenever you capture a frame improperly. This will _always_ remove the last frame of the image! DISPLAY FRAMES As long as there are any frames in the image, this causes the capture rectange to be replaced with the first frame of the image, which will follow the movement of the mouse. Clicking the mouse button will advance to the next frame in the image, and wraps back to the first on a click at the last frame. Holding the OPTION key while clicking the mouse button will cause the current frame to be drawn on the actual screen but NOT on the picture itself which is useful for re-capturing images but not as useful as if the image was drawn into the picture ... so you could open a new file, save the picture, etc ANIMATE FRAMES Assuming an image with frames present, this option will display the first frame of the image, and automatically cycle through the rest of the frames, wrapping back to the first. To adjust the cycling speed, press the > key to put a greater delay (and thus slower speed) and the < key to lessen the delay (and thus speed the cycling up.) DRAW W/O UNDO Draws frames onto the screen with masking, but does NOT erase the frame from the screen before drawing the next one! MUCH faster, but not as usable. The default drawing masks onto the screen and is undrawn before the next draw, leaving the picture exactly as it was before. MASKING OFF Turns the drawing and generation of masks on or off, a check mark before the item designates that no masks are used. Without the masks the images appear as solid squares and black areas are allowed within frames. Normally black areas (assuming that black is color 0) are translated into the mask used to draw the frame so it draws cleanly and can have holes in it to give the illusion of being 3D. This option can only be selected if there are no frames in the current image. __________ | PICTURE | |_________| LOAD PICTURE... Uses the standard file dialog to allow the user to select a picture to load into memory for use in capturing frames. Allows the picture formats Apple Prefered, Packbytes, and unpacked screens ($C0, $C1-01&02). Need to add Paintworks The unpacking routines and the window update routines support normal 16 color and extended 256 color pictures. When someone tells me the format of the 32,000 color pictures I'll add support for them as well. SAVE PICTURE Saves the picture in memory back to disk using the same name. Picture will always be written as an unpacked screen image ($C0)! Need to save it back to disk in the same format as it was read in! SAVE PICTURE AS... Allows saving the picture under a different name using the standard file dialog. Again, saves the picture as an unpacked screen image ($C0). Need to modify SFDialog to allow picking choice of file formats FRESH SCREEN Forces the entire screen to be redrawn, thus insuring that the picture in the window is the actual picture in memory. Mostly used after drawing frames into the window, but I used it as well during the debugging process... ________ | SOUND | |_______| GET SOUND... Uses the standard file dialog to allow the user to load in a sound. Can be of any filetype since there isn't enough of a standard at this time. We should support the ACE and Apple formats, as well as the HyperStudio format PLACE SOUND Saves the current sound back to disk to the same file it was loaded from, or last saved to if the user used 'Place As...' PLACE SOUND AS... Allows saving the sound to disk under a different filename. ACE COMPRESS ACE EXPAND These options are not implemented yet, and a dialog informs the user! KILL MAC HEADER Many of the sounds converted from the Macintosh (especially those I had for the Dark Castle conversion) have a 32 byte header on them, which usually causes the sound to have an audible 'click' in it. This option removes this header. It will also remove the first 32 bytes of any file! So, to shorten a sound, just repeatedly use this option. need a sound utility! XOR $80 Goes though the entire file and changes the high bit of every byte! This option was implemented because the programmer who did the Amiga Dark Castle said it was needed. It wasn't, but can produce some very interesting effects so I left it in. HEAR SOUND Obviously, this allows you to hear (and hopefully you will also listen) to the current sound. Only one generator is used, so each activation cancels the last! Need to allow for better use of generators, and the Recording/Playing of stereo! `   "        DD UU 33    DD  DD    DD       DD     DD DD     DD   UU  ff   DD   DD       DDj<d: UI$0<-H +HkTR `   AH7H  gT &H M`v H  |>  Js ~ Please Note! This code is Copyright (c) 1988-1996 Ideas From the Deep, Ltd. All Rights are Reserved, Worldwide! This is FreeWare! There is no charge for this product or it's sources. However, the following conditions must be followed in order to legally use or distribute: 1. You agree to credit Ideas From the Deep, Ltd. and Lane Roathe for any and all source code you use, or make available for use, in any product. 2. You agree to distribute this release in whole, without modification of any type! >Py>t  Iff,pp ]@TBecause of the time frame in which this product was written, it is likely that the contact information is not correct! The correct contact information is as follows: Ideas From the Deep, Ltd. P.O.Box F-42222, Freeport, Grand Bahama, BAHAMAS www.ifd.com Lane Roathe lroathe@ifd.comDDDDDDDDHb$ :sesence of the defaults.h file if it is compiling a .sym file created with a previous version of the compiler. // Comments ----------- ORCA/C supports // comments. These comments begin with the characters //, and continue to the end of the physical line. // comments are a flagrant violation of the ANSI C standard. This is legal ANSI C, and it should print 4: a = 8//* yes, this is legal */ 2 ; printf("All ANSI C compilers should now print 4! %d\n", a); To restore ANSI conformance, use the #pragma ignore directive. Setting bit 3 (a value of 8) tells ORCA/C to allow // comments. This is the default. Clearing bit 3 tells ORCA/C not to look for // comments. To restore ANSI conformance for all programs, use this directive in the defaults.h file. (see "The Default .h File," above.) Extended Characters ------------------- Bear with me. This is an ASCII file, and it describes non-ASCII material. Beginning with version 2.1, the PRIZM desktop editor supports the full Apple extended character set. A file called FontTest on the samples disk shows the complete character set, and also contains a table that shows how to type each character from a U.S. English keyboard. C supports the use of extended characters in strings, comments, identifiers, and for a few mathematical operations. Any character you can type from PRIZM (or for that matter, any character with an ordinal value in [1..12, 14..255]) can appear in a string or comment. The ordinal value of the character matches the values shown in FontTest, as well as several official Apple publications. Keep in mind that many output devices, including Apple's text console driver, do not support all of these characters. ORCA/C will properly send extended characters to whatever output device you choose, but what happens when the output device tries to handle the character varies from device to device. Many of the characters in the extended character set are used in languages other than English, and are now allowed in identifiers. There are two ways to think about which characters will work in an identifier. The simple way is to remember that all characters that look like a graphically modified ASCII alphabetic character or a Greek alphabetic character are allowed in identifiers. For example, an a with two dots above it is now legal in an identifier. The more exact, and naturally more complicated way to think about which characters are allowed in an identifier is to list all of them. Since this is an ASCII file, I'll list the ordinal values--you can cross reference the values in FontTest. The ordinal values of the extended characters that are allowed in identifiers are [$80..$9F, $A7, $AE, $AF, $B4..$B9, $BB..$BF, $C4, $C6, $CB..$CF, $D8, $DE, $DF]. In addition, ORCA/C supports several extended characters as shortcuts for multi-character mathematical operations. These are: ordinal value description substitutes for ------------- ----------- --------------- $C7 two < << $C8 two > >> $AD not equal != $B2 less than or equal <= $B3 greater than or equal >= $D6 division (- with dots) / Finally, the non-breaking space, sometimes called the sticky space (ordinal value $CA), is treated exactly like a standard space character. #pragma optimize ---------------- In brief, there is a new optimization bit. Setting bit 6 (a value of 64) turns off stack repair code around variable argument function calls. The rest of this section describes when the stack repair code is generated, why, and the side effects of using this optimization--or not 󠽠 ˡ󠽠Ơ ˡ 䡍堽 堽 堽 堽 Ѝ󠴠 卍󠲍󠲠 ˿󠲠 뿍Ѝ󠴠 卍󠲠 󠲠 󠲍󠲠 󠲠 󠲠 󠲍󠲠 󠲠 󠲠 󠲍󠲠 󠲍󠲍󠲍󠲍󠲍󠲍󠲍󠲍堽󠲠 󠲠 󠲠 󠲠 󠲠 󠲠 Ѝ򠪯 占䍍󠴍󠴍ɠ󠴍Ӡ󠴍󠴍󠴍󠴍󠴍󠴍󠴍󠴍󠴍󠴍䍍󠴍󠴍󠴍󠴍󠴍󠴍󠴍䍍堽Ʊð䠽ĸ󠽠ō 荪 󠽠   򠽠 ̠ ̠ 翍砽  堽 󡩍 멍 ҧ  멍 堽 堽 卍 塍堽 堽 卍 塍ՠ ՠ ՠҧ ՠҧ 멍 󍍪 卍󠽠 ҧ󠽠 󠽠 󠽠 󠽠 󠽠 󍍪 젽 򠽠 젽 䠽 򿍍 ɯ 獍蠽 䠽 堽   婍蠽 렽 덍 卍򠽠 򠽠 祉 砽 󠽠 栽 栽 栽  栽 砽 󠽠 卍Ϡ堠 ϠծծծՍ堠 堽堻 堽堠  롍堠 䠽堻 䠽 议󠴠󠴠㍍Ġ󠲠 ħ IJ󠲍ij󠲍󠴍󠴠 󠴍 󠲠 󠲍󠲠 󠲍堽䠽㠽𲫲 򠽠𳫲㠽򠽠 š󠴠 󠴠 덍󠲠 󠴠 䠻 󠲠 Р 򍍠䍍 卍 󠲍󠲍󠲍󠲍󠲍󠲍堽 占䍍 Ġ󠴍󠴍Ġ󠴍Ġ󠴍負󠲍岠󠲍岠󠲍ﲠ󠲍󠲍󠲍󠲍󠲍󠲍󠲍󠲍󠲍󠴍󠴍󠱶ᠽ ፠䍍 蠽 󠽠 󠽠 􍍠堽 塍堽İ堽Ű堽ű 塍堽űİ堽űŰ堽 堽卍砽Űð 󠽠ŰðŠ 䩍砽Űð 砽Űð 䍍䠽Űð 򠽠Űð ̩𿠽 Űð Űð 렽Űð 󠽠Űð 젽űðà ᠽűðĠ 󠽠űðŠ űà 󠽠ű 󠽠űà Ƹ̭ Ҡͧƍà ύ Ӯ Ϯٍ 󮍍 堽 堽 䠽 堽 堽 󠽠 󠽠 󠽠 󠽠 􍍪 堽 堽 卍 ӯ 젽 堽ӯ 䠽 񠽠 堽   젽 㠽 򠽠ɯ 堽   à 렽Ġ 蠽Š 堽Ơ 䠽 䠽 䠽 堽 젽 젽 堽  䠽à 堽Ġ 󠽠Š 젽Ơ 򠽠 젽 򠽠 堽 젽 𠽠 󠽠  堽à 䠽Ġ Ơ 젽 򠽠 󠽠 䠽 卍 ħӠӯӍ󳳠 󳲠 󳱠 젽 󠽠 󠽠 ᠽ ͠ Я͍Ԡ ԍӠӯӍᠽ  ፍ ĠӯӍĠ Ġ Ġ Ġ Ġ Ġ Ġ Ġ Я͍Ġ ԍĠӯӍĠ  ϹĠà 堽Ġ卍 Ԡ ԍԠ 卻 ԍ 렽 獻 堽 獻 卍砽 堽 멍砽 堽  堽 멍堽Ġ 卍 Ơ ư 젽 卍䠽 󍍪 󱠽󠽠ű̠ű°堽 忍堽 蠽堽𠽠®󠽠à 젽Ġ 蠽Š 󠽠Ơ 堽䠽堽堽蠽렽렽ƠƠ젽젽®îĠ Š 󠽠Ơ 򠽠렽 렽 렽堽 堽젽  î󠽠Ġ 젽Š 䠽Ơ 堽 б ӯ б ӯ 㠽 㠽 堽    " `1/  ^Á" }@HHɁˁH HH "zzŁǁ" H" oh(`HHH"h8`HHH"y{MHH " ^uͣ"" o" " Ͱ" " sHHH""" oh(``" q` {}cegOi`Ƃ˂`8{ӄ  7&"eeX`  "eeX`  &1eeX`  eeX`zhHZh` oq` i e"i$ȷe&i(dd c80%#sXs8smu cmsg s\Zsu8e80JJ4 e8eJJe8i e8h` e""e&&dJJeeJm{z }H Zx` 0.  JI` JU JI`LaneKHHH *"hh턢 " "ބ "HH "䄢 "R 庠 "\ 箮HH"hH T "h`HH%"hHZ ʣʣ" hhhZڮy""z`"  6KCRa\!"L H"L   I "L HH "L LΈLocatorMemoryMToolsStartup HH""H"" `Shutdown,58``*`RW8`iw~i먈 8iemi 4H(h(8`JJJ)Fh)(d@ Ƚ(dnv>? `n=}>v=ډ>=>-=὜>᭎=>= F=    (`4((`(<὜>=>=(8`4x,l0" ,.- /l (`4,l l ,.(`x K0[0)> V0>?<==+(k      0(8$4,<"2*:&6.>!1)9%5-=#3+;'7/@PHXDTL\BRJZFVN^AQIYEUM]CSK[GWO`phxdtl|brjzfvn~aqiyeum}csk{gwo     J7<(>?=RR`  H+==򯢊+`>? `<=>? <6=;:(<>?="=`> @`//!*^/2/:}CFIɏLˏhŏr/|/oy{^u/o///)/5s/No/dilq///{}cegiƏˏ{ 9\oqc s(s.s5u>cFsIgPs[s`uoeei{}3U돜ބބ   DTTGT%4;IL Z] vy  Ώ ,#5(8B`~qiei(F(d (dnv  ^'n.}5v<ڏCJW^etF{    ((ll l l' 7 VY 7f (i / / / 6 (EXSizeuEYSizesHShutdownIDrawFrame4FTClickpfVoicesIPathParmsETMaskhDTypeoGSetPathFTaskRcTHStopSIRQJBlankFrameWHRndArrayFImgHdroIStartSIRQΈhStartCntPEsBase{HFF_Parms~FActive(EETypeVFbottomgIPlayTable+HLastSpdHvgMaxSize DlefteIRandomizeHtheErrorGOldVectCpm14JMaskFrame2JMaskFramezErightiIPlaySound:HEOFParmssCpm27GKillIRQCtopcETTicklIZapFrame2CModbITextErrorEOSC40EOSC60EOSC80ډIEraseInitEOSC00^FStereoFEOSCA0EOSC20}EOSCC0Drts1JStartSoundmyDPISetImgTblFFramesqDSSIDHDriverOnlETDatadHWaveBufsHOpenFile^JHandle1IRQVJCloseParmsoFTBLENDdEs0ModEs1ModłEs2ModʂHZapFrameIReadParmsIWriteFileKInitEnsoniqEwidthkEEventTgStopCntRExhModExvModKIOpenParmsJWriteParmsEdepthmKBlankFrame2[IWaveFormsdGAppPathGStartupCIRQeBanksHMoveXRAMHLastSpdLnIMaskFrame IGEOFParms}FXHSizeyFYHSizewFXHLineGEnsoniq6ESSRtnHSetAPathIStopSoundIWaitEvent0IActiveOSC7JFatalError FTPoint~DTimeZIDestParmsDvmodTFTData2rKCreateParmsGRndIdx1DxPos`DyPos^Az FTData3vHLastWave JDrawFrame28JDrawFramez;INewRandomƅKInitPlayTblGXVLine2'ESetupGXHLine2JWaitEventz?HDrawInitсHReadFile FTData4zFXVLine!IOldAudioLIOldAudioHIEraseBaseGRndIdx2MResetClipping捠젢 捠卍젻 荪 򭹰 󡍪 􍪽捠堳􍍠Ԡ΍덠㍠䍍ԠƍIMGSv7' 'BULLIT<44#COP22&ENEXPL 99#FBI77#IRSp8/JUG8 +LEVEL#'PALETTESCORE)4$SHIPL 11(SHIPEXPL$66SHIPS)4$*06`{i v pX8 DDK OKK O OwwqKwqKqKK O OK KDDK  DDK OKK O OKKwKwwqK Oww OK KDDK  DDK OKK O O~wKwKyKK O OK KDDK  $h< ""bpp`imifgififivf` fif` pppifif`f`pp``iiffff``f")iifirpp,&ffffbg'ww)fffyfi.wp)lfffg&ygpw,fiffiffiwivw&lfffffifyppbffffiryvr fifffvyp `ivf`iyy`fi fgpwfw"")vpyfigfwyykpwpf`i"y)wppp y fp pwy  y wpp pwwppp  `` p i  ` p ki f pifk` i`g`` i ` i if pw ff`ifvp `ff `p wy`f `ppvpp`pp pwp``pwpp``ppppwppwpwppppppwpppppppp `` pp``pp y` ``w fp`v` pppip `i wwpggw`ppypyppppppp yppppp``ppwwpv ppppppppppljp1$""!"3"DDB4NND"B4DD21r"4DD2"p2$NND2A"DDC"33""""$#!2!p1$""!#32DDB4LLD"B4DD21"4DD2"2$LLD2A#DDC"33""""$#!2!`1$""!#32DDB4KKD"B4DD21b"4DD2"`24KKD2A#DDC"33""""$#!2!`UUUUUUUPUUUUUUZPUZPUZYPZYUPUUYYUZUUUUZYPZYUUYPZUUUUYUUYUYPUUYUPZUPUUPZUUUZPUUUUUPUUUUUUUUUUPUUUUUZPUZPPZYPZYUUPUUYYPZUUUZUZYUUUPZUUUYUYUPUZUPPZYUZYPZUUUUPUPUZPUUUUPUPUUUUPUPUUUUZYPUUZYPUZUPZYUPUUYYPZUUUPZYUZUPUYUUUUUPUUYYUPUZUYUPZUUZYPUUUUZUPZUZPUUUUUPU  $`""1"!"!B"/!B""!""!""! H PP P P P P P P P P P P P Uw p foOUw p foOUw p foOUw p foOUw p foOUw p foOUw p foOUw p foOUw p foOUw p foOUw p foOUw p foOUw p foOUw p foOUw p foOUw p foO (V Bh&"""""""""""" )""" + JB- + )UT - + )TU - + )UT - + JB- "" )""" """""""""""""""""""""" *""" . EUUB, . *TZ , . *YZ , . *TZ , . EUUB, "" *""" """""""""""""""""""""" %UU""" - IB+ - % + - % + - % + - IB+ "" %UU""" """""""""""""""""""""" )""" , IB. , ) . , ) . , ) . , IB. "" )""" """""""""" ($$$ $$$""""p|&b""ppgfg"&p""w&v"p"" + pgzjfBf' + fvy``- + )Vgy p- +g`fgVf & + jjwB- "' &fy&"" "g`` ``r&"r"~`"""b &""`````k``b&"f&` ff`` if`b&`""&f*z"i" )n IWeg`.&f&y) . WiiY',f.&fgg , .nvbfiur`)`""`gjjyr"" `"bi`pppp``b"&" y&"""`p""""bvpbip`"bgb`i``p`ig `bb&`vv"" %ifb" -& biv``&&-fie&p'v -&'fg&i+p-`ffwg)yk -&gfFf&pf""w fyfggw"v`f `br'ggfffvwgf`yp`g`vpffppw`rw"&ffv `vlfp pƜy&"rff wi``yg py p  pwpppp``` g`""bpp`imifgififivf` fif` pppifif`f`pp``iiffff``f")iifirpp,&ffffbg'ww)fffyfi.wp)lfffg&ygpw,fiffiffiwivw&lfffffifyppbffffiryvr fifffvyp` `ivf`iyy`fi fgpwvfw"")vpyfigfwyyykpwpf`i"y)wppp y fp pwy  y wpp pwwppppppppppp pp  ` p  ``p p i  ` p ki f pifk` i`g`` i ` i if pw ff`ifvp `ff `p wwy`f `ppvpp`pp pwp``pwpp``ppppwppwpwppppppwppppppppppp  `` pp``pp `y` ``w fp`v` pppip `i wwpggw`ppypypppppppp yppppp``ppwwpv ppppppppppp H P P P P P P P P P P P P P P P p p p p p p p p p p pSHOTH90%TITLE)4 (08@f p`iyv `yyww `py)Nwwwwwwwpwwwpwwwwwwwwwwwwwwwwwwwwwwwwwwpwwwwwwwpwwwwwwwwpwwwwwwwp~ww~www~wwwwwww~pwwwwwwwwwwwww~~wwpww~wwww~w~ww~w~wwwwpww~w~w}~}~w~w~wwwwww~~~p~w}~~wwvwwwwww~pwwp~wwwwwwwwwwwwww~wvwwww}~pww`ww}~wpww~www~p~w~wvww~wwwpww~~wwww`wwwwww~p~vwwww~wvww~~ww~wwp~pww`www`wwwwgww~ww~wwwpvw~~p~pww~vw~~www~wp~pw~wp~vwwgfww`ww~`~wp~`www~~w~ww~pww~w~wwpwwww~wv~p~pwpwwww~~w~ww~pww~wp~wwwpww`www~v`www~w~wwpwww~~pw~wwp~wpwwww~wp~p~pw~vw~wwp~w~www}p~www~w~w`wwpwwpw~wwpwww}p~wp~wv~p}wp}ww~wpv}w}wwwwp~p~wvww}p~wp}vwwwv`www`wwvwwvwwwv`wwwww`wwwwwvww`ww`www`wwwv`wywwywwwwywwwvv`wvv`vv`vv`wwg`wwwgfwv`vv`wfvvwwfwvv`iiiii 捠젢 捠占 ӫ ӫ 塍 卪 𡍪 荪 򭹲 򭹲 㮮 򭹲 塍 򭹲 ⹭ 󡍪 򭹲 ⵭ 䡍 򭹲 Ɑ 󶮰 卪 䱭 ㍪ 筹 䱭 󍪽썍砽 硍䠽󍍠ԠԠ岬獠Ԡ벬ԠэԠэԠԠ䍠Ԡ占Ԡ岬岬Ԡ占ԠԠ󍍠ԠԠ䍍Ԡ卍 塍렻 ፠⍍㍠Р 􍍠ō 塍ᠣÍ젤Ƹ ᠣč젤ƹ 婍ᠣč젤㻣Ļ 󍍠绣󠣱 占፠䫱䫱 ፠͍䫳 占䫳͍堣ð 占썠蠣㍍ݬ 鍠堻 덠獠 鍍 蠣󍍠堻 ㍠󍍠젣堻 占卍ԍ堻 󿍠堣 􍍠 􍍠 򠺰 멍򠺰占堣 􍍠 卍 덠򠺰廣 堣 􍍠 󍍠 덺ЭЭ Ь 򩍠ᠣ썠㠻 ԍ 硍􍍠  塍썠 󍍠퍠䠣㠣 썠썠 󍍠堣 􍍠 덍ԍᠣ ԍ 򠺱ᠣ 䍍硍󍍪 퍠䠣ƍ썠 썠썍퍠䠣ƍ젻 썠썠󍍪 Ġ ݍ덠⍠㠻 占占𠣤ԍР 占䍍ij ፠ Ӡ 려 卍ᠣ堻 􍍠 ፠፠ᠣ堻䍠ᠣ堻 占썠򍍠 젻 ፠㍠젻 占썠嫲 占򫲍嫴ᠺ䠻 䍠ᠣ堻 􍍠 ፠፠ᠣ䠻䍠ᠣ堻 占썠򍍠󍍠젻 ፠㍠젻 占썠嫲 占򫲍嫴 󍍪 塍 卪 卍ԍ󪲭ᠣ 塍 占󍍪 衍 卪 卍렻 䡍ᠣ덠 ፠㍠㠣占忍 卍 忍󍍪  썪 卍𠣤̡㠣  忍덠ᠣ덠썠 󪲭ᠣ 䠣 ㍍퍠䠣 ㍍퍠䠣 獠썠 󍍪 塩 卪 卍󪲭 䠣ƍ 䠣ƍ㠣 󍍠 䠣Ơ 퍠䠣ƍ 㠣 󍍠 󡍠󍍪 塍 ᠣ㠻 ᠣ 젺󍺲㍍͍砻 ̍젺썠͍廣 卺 󍍠㍠𠣳 堣􍍠ᠣ㠻 젺󍺳岠廣 卍 󍍠㍠㍠𠣵忍堣􍍠绣绣绣绣绣ᠣ 廣 䠣 젺젺ױ绣ײ绣׳绣״绣׵绣׶绣ᠣ󍺹绣绣绣绣绣ᠣ 獠廣 廣󻣰컣堣 堣󍍪 󮮮 姍 𺯯ѽ ʽ ҽױ򠧽 ݽײ ﺧ׳κ ״ 䮧׵ЮϮ ƭ ׶ ӧ  姍  塧 姍 썍㍠ 占젰 占孪 󍍠卍󧍍 ӯ 󠶠 Рԍ󠲍捠 卪  򠤰Ӎ占卍⍠썠썠썍󠤳ӱ° 卍ĠĠÍנݱ젤ıōàбנݱ̠ݲݳ젤Šà젤±ŠԠàӱݱӱà̠űݱ̠ݲà젤à젤à젤 à젤 Íвנݱà젤 à젤à젤à젤àנݱ젤àв̠ݱנݲݳ̠ݴ젤àנݱ젤à̠ݱ젤à̠ݱݲݳ젤°à젤à젤àנݱݲ젤Űà젤à젤ÍбנݱÍ젤İÍנݱ젤ưÍÍ젤àвנݱ젤à젤à젤àà젤ààנݱ젤Šà젤Šàݱàݱàݱ젍àݱݲݳ𠍠à젤Šà蠍à̠ݱݲ젤à젤ÍӠÍ젤à젤à젤Í젤ÍÍݱݰݲÍ򍠼ÍݱݲÍ占Íݰݳ󫸍ݱݲÍ占Íנݱ젤ÍݱÍ占Í獠ÍݱݲݳÍ占ÍנݱݲݳݴÍ占ÍנݱݲÍ岍ÍנݱݲݳݴÍ占岠Íנݱݲ岠Í岍ÍנݱݲݳݴÍ占岠Íנݱݲ岠Í岍㍠᠍᠍àƠݱ䠣ݱŠݱΠݱàݰݴݰݵݳݲ̠ݱ젤àנݱݲ젤àנݱ젤àנݱ젤̠àנݱ̠ݲ㠍ݱؠà 占Ơؠ Р΍٠àƠئŠРΠؠà 占Ơء Р΍Íנݱݲ̠ݳ젤ōà̠ݱݲ젤Šà̠ݱ젤àנݱݲ̠ݳݴ젤ñŠנà̠ݱנݲÍ젤à젤à젤à젤àݱݲݱݲàݱݲƠدݱݲΠàݱݱӠà堍󠍠ݱݲ堍젣ݲݱ̠㠍栣ݱݱݱ堍栺ݱݱ᠍ݱ᠍堍ݱ᠍ݱ᠍ӠàϠݰРݱޠŠΠбנàƠݱݱŠƠدݱΠݱΠנàϠݰנݱϠݰנݲϠݰנݳϠݰנݴΠΠΠΠ̠àϠݰ̠ݱϠݰ̠ݲϠݰ̠ݳϠݰ̠ݴΠΠΠΠв̠àƠݱݱŠנݱΠנݱ̠àƠݱݱŠנݱΠנݱвנàƠݱݱŠƠدݱΠݱΠנàƠݱݱŠƠدݱΠݱΠàƠݱݱŠƠدݱΠݱΠàϠݰݱݱŠ䠍䠍ΠàϠݰݱΠƠدϠݰݱΠΠ㠍ݱ͠àƠئРΠ͠àƠئŠРΠàؠݱ̠ű㠍ݱàݱݠݲݱݬݲ㠍ݱ栣ݱݱ堍ݱàвנݱ̠ݲà젤űŠ !"#$%&'()*+,-./捠젢 򢍠捠卪 󍍪 卪 𡍪  롍 򭹲 塍 䱭 卪썍󍍠ԠԠ岬獠Ԡ벬ԠэԠэԠԠ䍠Ԡ占Ԡ岬岬Ԡ󍍠Ԡ占Ԡ 덍󠱱 󠴠堽䍍 宍ԍ堻 嫲󫲬 忍堺堻 占堺 塍፠㠻 占㠣占 忍占 婍 堣 䡍堻 忍寲 䍠 忍젺 䍺占ᠻ ㍠㠣 䍠堻 占占 占嫲󫲫 卍ԍ ፍݬ 占堻 䍍堣컣Ӡ 덠󍍪 卍ԍ堣廣 占썠㠺덠䠻 􍍠堣ij 占썠􍍠捍孲ᠣݬ 덠 ፍݬ 󍍪 ԍӻ 獠򠣱ᠣ ㍍堻 󫲬 翍 ፠㠣 占ᠣᠻ ᠣ㠻 獠ᠣ 占㍠󫲬 占𫲍𫲍 󩍠 祉㍠㠣 占㍠፠㠻 占㠣占 忍󍍪  ٺ 󭱬 ٬ Ժ 卍ԍ 썠 忍頺 ᠺᅪ堺𫲠 󿍠頺򠺵 򠺶ᠣ𫲍 ㍠㍠㠣 ㍍ 忍󍍪 捪 ٺ Ժ 獍占 獍Ժ廣ᠣ㍠ᠣ ㍍ 𳫲û㠻 ፠젺덠 𠣳堺덠㫲 䠣ƍ𠣱 忍𠣸𠣱忍𠣧 렻 򿍠𠣧堺덠𳫲 堺렻 쩍 𳫲፠堻 ፠ ㍠㍠㠣 ㍺덠 뿍ᠣ 𲍠򠣭 𲍠頺ⲍᠣߧ Ⲡ 롍占𳫲 忍𳫲ᠣ 孱堻 ㍠㍠㠣 𡍠㍠ ፠𳫲塍 占ᠣ 占ᠣ ㍠㠻 Ƭưưư 􍍪 ٠ؠٍ٠ؠٍ 덍ԍ˿ 뿍젺덠͍獠䠣Ơ 獍 󍍠͍ 󡍠鍍٠ 󍍠 ㍠렻 䠣堻 占젺 􍺱䠣񠺰 ͍ 썠獠͍㍠ 덺占͍ 썠獍 ፪ ㍪ 卪 ፪ ㍪ 卪 𫱍͍ 占ᠣٍ㍠͍ 𿍠͍󠺱䠣ƍ٠ 獠㠣ٍ򠺳 積썺፠ ᠣ؍㍠͍ 𿍠͍󠺳䠣ƍؠ 獠㠣؍ 堺፠򠣭㍺፠썺㍠󍍪 젧׮󧍍Ӡ 󧍍Ժ 座卍捠123456789:;<=>?@""""BBBBBBBB""""   BDDKEDDKEDDK OK OK OK""B""""B""BEKEKEK "" )""" "" *""" B "" %UU""" "" )"""  OE OE OEB + JB- . EUUB, B - IB+ , IB. ! Ow O O~B + )UT - . *TZ , B - % + , ) . !wqKKwKB + )TU - . *YZ , B - % + , ) . !wqKKwKB + )UT - . *TZ , B - % + , ) . !qKwKyKB + JB- . EUUB, B - IB+ , IB. !KwwqKKB "" )""" "" *""" B "" %UU""" "" )""" ! O Oww O""B""""B"" OE OE OEBDKDKDK BK BK BK""""BDDKEDDKEDDKBBBB   BBBB""""`B``pEpEB`B`pp`` B g`"p &""``F"""bpp B |`BbvpEB`im B BB ``k``FbiBpBifg` pD &b""b&"f&D`D"bgb`Bififivf`E  Dp p ff` i``p fif` ppp``EpDBpgfB` if`ig E ifif`f`pp pF g"&Bp`b&`D`bb&`vvD``iif`` iB  ""w&v"p"" ""&f*z"i" B!"" %ifb" f")iifirpp ` p + pgzjfBf' )n IWeg`B-& biv``&&,&fBfbg'ww ki f p + fvy``- .&f&y) B -fie&p'v )fffyfi.wp ifk` i`g``B+ )Vgy p- . WiiY',f-&'fg&i+pB)lBf g&ygpw ` i ` p+g`fgVf & .&fgg , B!-`ffwg)yk ,fiffiffiwivw `B i p``pB + jjwB- .nvbfiur`)`B-&gfFf&pfB&lDf ifypp if pwp "' &fy&"" ""`gjjyr"" B""w fyfggw"vbfBf iryvr ff`ifvp B"g`F `"biE`f `br'ggBfB fiBfvyp `ff `Bp`Ey` `B` `F`Bpvwgf`yp` `ivf`iyy wwB`Dw`Bp`E"g`vpffppw``fi fgpwy`f  fp r&"r" `b"&" F!rw"&ffv `vfw"")vpyB`p`v` ppp~ylfp figfwyyvpEip B`BE pƜByBkpwppB`pp`Bi wwpBB"b&B" &"rff Bf`i"y)wppp y pwBpBB ggw`pwi``yg fp pwy ``ppypyppBpyB  By Bwpp``ppppB pppBpD pB D wpp p wppBB yppB F F wwppwpwppppppwpD pppBE ``ppwpFpBpp pwppFpBwpFvpBpppBppp pBppp pppppBFppEpBpDFBDpp BppBFpBpBBpDpppDpDppBUUUUUUUDUUUBUBUPBUBUPBUPUPUUUZPBUUZPB UUUUZYP ` UZPBUZPB UUZYP {ivUZDYPBPZBYPBUZDUP pZYBUPZYBUUPBZYBUPBUUYYUDUUYYPDUUYYPBZBUUDZBUEZBUPBZYPDZUEZYUZYUEZYUEZUPBpB` UYPDUBUPDUYU111ZUYUZBUYUDUP$$$B UYUYPB YUP UUYYUPB""!F""!""!BUUYBUPB UZUPB UZUYUPByvB"3"E#32F#32ZUPB PZYUZYPB ZUUZYP f `w DDBDDDBEDDBUUP ZUUUUPB UUUUZUP p`y`p4NND"4LLD"D4KKD"ZBUZP UPUZPB ZUZP iywyB4DD21BB4DD21B4DD21UUBUUDUBUUDUUBUUr"4DD2"p"4DD2"Bb"4DD2"`UPBUEUPBUPDUPBUB2$NND2AB2$LLD2A24KKD2A"DDC"#DDC"D#DDC"33"D33"E33"B"EB"FB"$#!F$#!$#!222!!!pB`BwwwwpBwpwEwBwBwwwpwwwwpwpwwBwwwBwwp~ww~BwB!ww~wwwwwww~pwwwwwwwwwwwB ww~~wwB pww~wwww~w~ww~w~Bwwpww~w~w}~}~w~wB~Bw3www~~~p~w}~~wwvwwwwww~pwwp~Bw wwwwwBwwwwB1~wvwwww}~pww`ww}~wpww~www~p~wvww~wwwpww~~wwBww`wwwwww~p~vw~wvB.ww~~ww~wwp~pww`www`wwwwgww~ww~wwwpvw~~p~pBww~vBw~~Bw~Bwp~pw~wp~vwwgfww`vpBww~`~wp~`BwD~~w~ww~pww~wB ~wwpwwBww~wv~p~pwpw"~~w~ww~pww~wp~Bwpww`   !www~v`www~w~wwpwww*~~pw~wwp~wpwwww~wp~p~pw~vD DBw~wwp~w~www}p~www*~w~w`wwpwwpw~wwpwww}p~wpyD`B~wv~p}wp}ww~wpv }w}wwwwp~p~wvww}p~Bwp}vBgi gp BBwv`Bw`wwvBwv`Dw`Dwvww`Bw`Bw v`wywwywywwBDyB B pB wvv`wvv`vv`wwg`BwgfD(wv`vv`wfvvwwfwvv`iiiiiB   BBBw p ""!` ""!AADAA""1B ""!"/"!"/""  PP P P P P B"!B //$""""B   P P P P PF P P P "!B""32" P P P P P PBB//$""DB"" B  PP P P P PB"/!B 1"!"/!/""   p p p BB 0"!""B   P p p P p ""!B ""13B pB B""!0""!0?Uw p foOUw p foO?Uw p foOUw p foO?Uw p foOUw p foO?Uw p foOUw p foO?Uw p foOUw p foO?Uw p foOUw p foO?Uw p foOUw p foO>Uw p foOUw p foOSNDSv7'  '%EEXPLB@A%EFIREQ@$9A%FREESV@ a.A$KGOTg@-1A$NEWEx @;;A%SFIRE؃@ 77A$SHIT؊ @* A%SONARؓ@66ACDEFGHIJKLMNOPSSHS8RWP SSDKD EExploz~ujcfov}{tgV@*$?˒ppy|sebr]C8=GLMNXp|nkszzwplr}{n^VZfs}upnmnpppqolnrwzphfmz~skfb`^ZWYcu|unlnqurmhgo{{pcXY\aiqyzoaQHN`uqeagptrmls~|zz{|{{{{{{xskggktm^VUW\do{~vohb_`djqw{|~~}zrmmqv{~|ywtuz~~zupjgkq|zhbhqwz~n\RLIJNXgxypgdehmu|zurqroighp{}oebeoy~xqns|~n`VRUZbkuyohddinu}ylb]\ajt|~z[IM\fbVKHUqcK@BLZhr{m`\\]`flsztrqnjhlu~~tliinruwwx}}{zxvuupjhimu~~qecnuqtwvpg^aly{tngccgmu}vohccdglrx~~mbafq~{wwvsmd`dn~o_SS[gpux|~upmmljjnt|sjfdeipw}|vtpifehov}~ytqpqv|õeL9-).9Jaxrgfjpwzyxz~|xvsqonory}}{xwrjdbfnw~tjfjrxysi\MJgطqliZ91e`A7E[nxyz~gYYbnvwuu{ye\^gsz||wlbZYamz|qigjpw{|~}umhhnwtigjrz}tkgjqz{tln{rZG<;AKXcswl`WSWbp|wokhhgdbdir~ztfXPTbs|toqx}{z{zuokjms|{uqqsstwx{|ywxyz{yvvwx}|obWRTZbju~|vqmmrx~{vsrqnnopuyz{z{~{w|~zn\OMTao{xplkllijmpw{wsolihlt}umgghjns{~xsojeabirzyoigjqvz|~~xvx}~~{vnf`_dmv}{yzytnfaahw~|{zy{}~zzØqUC6+""9_¹wdN<7CYrmc\\bejpv~zslgb[UT]lyk[QR[gt|zsqty||{{{{{{wrnmr{|xrkbXQP^{q`exqoy~m_[`n{~~}qjmx|}shdgpz}yplifcbemytjcaadhlr{}rib_`fq{uf\VXbox}{od`dks|śjI==?@EUrȨiXK>2,2Hg{rkkpuy{zz|~xqnnoquy~zri_SHAFYuƝqR7$!'AoƽgO?;ALW_eoywuqi`ZZcqzx{~~xrmihjkiku{nebdhkmouz}wngdeglry~{tnkknsvxwy~toh^SHGSgwbQFFMU`lzynga][[dr{qf\Zanyypmprqollqx~urtutnhdhrukinv~vpmkijklt||wtqpqty~{uojigeefhp~ʵj[PD:6>Pju_K<9AObv}riecbbbfmx{qf^]ckrwy{zurpprtxwojhhhjoty~}z{~~umghmtyzz{ywx{|zwtuy}zvqnmmrvz~{vtsstrqpot|yoid__gr~nkS01FUO;+,FDZrP2'+@ioXOUds|xojgfefip|}n`YZbny|wvx{~~yvv{|tolhgegnvzvspoppruz~yuqomlmqvz{|{ywuttw}rgdkyyaN<.)*5QszbNDERbrukfefffjr{|uokjloqqqtƴrf]P@46Jfp^UU^lx~zstz~|uonry}zuomt}{}~ugXT]qƳuX?/**,5Mqt`NDEO^nyyoieeffhoy~|zulc\]h{p`NCFWwĺq[B0,.9StydSIKVbmu|zsqqqnighp|{qgchqz||{{~}ytpmlkjmv~{wpkilqx}~|yuqjc^WUcȾgG2--19LnòzZB64:ETfzvg\UQSXds{qidcgow|~xsu{m^WUVX^dn}ysokggkqx~zy|zsnmrxzvohekyvZGBJU^djr}si^Y\dnwxpjeddelwyolmptwxwy~}xttvuqkfden~xk_XYet}yttsme__gtwmdbejpyyurqokikqy}umihkpw}~rlmsyzwtrw}ywyzwqkgiq{ulkotxwvy|tqpqpnmqxtkbZVXd¶{iXD735=R{pZIEN`s~wojjpy}{wogcemyysnjgdcelvzurqsw||{{{{zxutw|{vqpqswz}{wvuuvx~rf]UQRZgwxmd_bku~}qhdchow~|usstusqpquy}}wvx{zumjlt~uja^agntx|~|zxwvtuxz{|}xtrrtuvw{xtssttttuy~{wsplihkryiZNJMXhw}tlfejr{zusswyzyxyyz||yursv{tjb_\YY`nym`URU_ky{oe^YX]gvr\LFKZqpP=:ARslXNR]lw}pc_bgmt|~ytolhgks|}yvutuy}~wrrtvy{|}~{vtsux{~~{vpjiryrsup`J@MvnsjL>=C]vYLSexwszyonu{|xsrw|vvyzywuy~{z{{yvrpqv|}uqswyxsmkmqw{vjc]YWY`iv{rljkoty~|xvtvy{}~{ursvyyvqmlnsz{i[QICAH\vre\Z`luz||}zsrtwwtpnqzztrrv||xvvy~~{{zyvutv|~|}|ywwxz}~}|}~}{z|~~}||{ywvw{~}zwsqrtvx{~~|{}~zvqooptx{~zvttuuwz~~{xvqi^X^olXMUr{hTGDGM\zjVJIR^iszwmhgilnqw~|vplknsx||{{|zwuuy~{wurollpv~xrqu||qjhjnswxz~zursvz~wkea_][_iwyoe__fq{~sjb^_ckt||w]VY\WNJTpyplh\OHKXqsgbeny}wux}}zy{zxy|~}xvwy|{vqqx}piu~vwysbPILWpsd_cmvxutx~}zvsrruy}zurqrtvy|umijow|~}{z}{rnkfa_aky|skeeir{xroqvz~{xvttstvy}}zwuvy{vrnnrz|uqqswz{|}}{yxyz{|~}ywxy{~~{wurqrv|wolnty}{tqmkhefjs~}xsnlmqv|ysommpty~~sjfju~zz|}xrlhkrz~|upprsuwy}~{ywwwxy{~}xtstvy{||~|vqoqtvzrf^ZWVZds|siccis|{uqpqsvy{}~~~yvw}ucWUZcjpsx~yskcafp}zsnlnu|zurty~~zvttuy||yuty~yspqstuuvy}|zyz{~~|zz{~~zvtstwyz|~xrsx}|~zvutuy|sib^^birz}|{zxutuy~}|zxvttux|~yurrtwz|{uqoopruy~{uqmklosx~yusstsstw|~|zwtrrtx{|||}ykb^^adhoyypjea`ahsyrkghnw~xpkjlouy}yuuzxpmotz~~{{~{{{yuqnpw{vuw{~|zz|~}zxwy|}|~~{yyz|}~~}}~~zxxxwwy{~}{zyz|}yxyzzywvwz~}zyyyzz{|~~{xusqqsw}ytqpqsv|zuojgipz|upptx}~zxxz|}}}}~~}{{}~~|xuv|xsnib]^eq~~volmpu{|xutvz|~|wuuwwvtsv|yohfjqx~{rlkmpsux|}ywxz{|{{}zwxz|~~~~~zxwwxy||wuw{|yy{xsqtwz{zz|||}~}{wvy~}xvvx{}}}}|{|~{yz|~}}}}|zxxz}~|||||}}}}~~~~~~}{zz{}}{zzywxy{|ywutuy}}{yxxz||zyz{|}~}wttw|{urqsuwz{xuronpt{~{xuuw{|xutvx{~zvvyzrllryzutw{~zvuuwyz{}}ywwyRSTUSSHS8RWP SSDKEFiretqk]WYXTQG&  u,#KG^zV#}ng?  >yCv |Rśo$ 0ܺP4z J#NNv7Oѫe8":{C }I BD|fHz &-tď&/-Чn6 Uz O=}E|oD칏I^kH¤_C. PKK-E{A+eYmxw9sennQV6 AU~O^TBGfe言cQxVureT/ AG~OT{hӞ+MHyɇyjvYx|ro]RG BO~_Я=7n+ы-kׇ8͙lr][~vxsba^; ~v*GCE]5ZOlncOssojd\C:^иEH&L<,fDg8l9rUov]d{j|qmfRYMHf7BEL*z?_>}3qSَcul~_psgV`qMMFH/J8;]HCQa9Qaʁh|ws]vsl^dv\6nY.sɗ3gA3l|Ly{gn{ogmvo^R/ I^H5HJFcYÞ;^\=Qgx{tj}}xslpxtii^;)EN?SJQpC}l[rsom}rpuw{ndvkO8_иEM^-d[ovAP^Tzgpx{lpwx{{lp|m]M,,F%L?{aG^bOeegrqzokx~ywsr{xlh_M7Ex>'H;]rvAUd[zudo~znr|wpt}uknngX@Je<*FBbsu{M|Zm_|ths{sx{|xswupsrpk\JRt8ܗ4DH\vwU}\qctvi|sxz{zyuv|ystrtsh_V]rG҈8TNevx}[w`vh|umyt}z{zxyxw{~zvxttxpic[o]lkD~}T~togkjulnvu{|z|{y{zy||xxxvxysqpgg[Tg]mu{jyi{}o}tpwu~}{}|{zy{}zy{yvxyvspji}fbhgjx{m{mxsxyqxu||~}{zz{|{z{zwxywxwvWXYZ[\]^_`abcdefSSHS8RWP SSDKbFreeS~}|zzxxxxxyzz|~|yusponnnorux||yuspnkjihhikmptwz~ypi_VMGCCHTapƼzhWKC>>CHPU[afksz}zzudR>.-AZt˼ucQC;76;BHQW\chnu}zwx}ueTC1" "7QnǼ~jVC944;BKR[afjouzxrsxzk\L9'  1LimWG<769BLU\aeffjoyztsxrcR>*  )CaƷp\J9/-3=GRZ^__ahs}upszykYH6$ #=[yɾzhTC736>HRZ`dhjknrzzpmouwiYG2*HhùwaM9/-4AMZaeea^^er}kadn|~ufUA* >`ü|jU@1-4@P_hkjfaaemwsifmy~tdQ;%/PrƿweQ>22GP[erzmikuyrkfcdhkmkfa`fsļ}fQ9#/MoǺ}^;8Vs˼pWF=<>EHKMRZep|oijt}od\ZZ\acc`ZW_mu\C-<_xW3 ,FazƼfOCELU\__\\_dozwfckzpaUMMRWYUMKRdy¼t\< )Mp¸mJ( 4MhȼrUHKUaijiaVQT\kzoeiwm\QKKPUULCH^wÿx^>>cfC*#%().;PifOO\ku}}wm\LEK\rn^fzs^LEGMTM@>Rna44Vw¾}T;=@@932>TkfT_p~zjUCYm|zRUiw}^BQfxwOQfukQd}zUWjuo4,OfyuQVhhO9MctoHMcr}`EYntKL\iu~kUiuTZnzG CayuPVkupRAUkzoKOfu~WH`upLQfs}`Tn}fLWn|O 1RofHVjwxeB@\p`CThxjEJhjOZkxuU\onWJ^uV$'Mk\GVjz}aCMfzYCPdudFPkhMWjwoTUWH>Rm^9%3VraJUjz|`CMdxaHRfx~aGRmmV\kykH@7/EazcC;1';[seJM`s}aGK_snML\o~iMRkz\\kykB( 1QnkMFJ@4A\skOM_p}cHK^rpRM\o~z`KUkoY[kz|Q >`|jLHQRF;HaukQM\oz_HM`uzZR\k|zaMUhwzkWVfym9 $HjnQHR\\OAJ`upTLZkzuYEK`u}_Varw^MUch_PRdyuL7\|jPJUaicQFQf|kRO\k}mQCOdzz_WarpWJMRMEMaxuR( 'KmjOHTcnpfRHUi|sYQ\m|kRHRh~~f^ftoVE>;7@Wpz[9 6WtiOHRaourcPKWj}pWR\m}|hQLYnweakyiL6*(4Mh~cF2($.FazoWMRapz~wfTMWhz}dW[iy}kVLVfywf`hu}fF'2PnnR@9417Jczu^QR^mzzkYPWhzk\^jx|jWOWfruna\euuW2=\zpWE>>><@PezyaRR\kz|kYPUewtcajx~kYOR\dc\W_omL% #CezcMFHLLHHRexkYU\jx}kZPTauzhckxziWMMRROMVh}uW3 6Www`MJOVYWQR\niYWao}zhYRZj|uifp|udRHCB@COdzw[9,Kju^MLR[`_ZRT`pj[ZcptcVT\k}ujjrs`L>427E[szaC*'@^zu`QOWaikf^WYeuj\[drp`TU_n|xmfhr~kU>*"%6MijP9)#%4Lf~|fWRWaktsmaYYapwe_epufYV\fsxumfhp~kR7 3Omu^G7.,/9Mcyp\RU^itzypf\Z_m}mackyyj^WZaikf`aix}hM/7UskVC<99=CReyyeWW_ju~~ui^Z_kztfekyxi\UUW[ZVW`ow\> #>^zpZJBBCEHMYhzi[W^juuj`\ak|ykhozxi\URPMKMYj}fH)3RopZKFHMPPPT^k~~i\Zamyui`^co}ukip|tfWMFA>AMawoR4*Fc}u`RLQW[\ZY[crm`\dp|~rf^^ep|skks|m\M@614CYrrW<%,@ZtuaTQW`fhfa\`huja`iu}pf``fp|wnjnwziVB1(*9Qkw`F2%$*9OezucVRWainmf`\^hupdcju|pf__enuupjfkuuaK4$ ,A\u~iRA4139HYm|i\Z_fpwwskc_akxsffmxzmc\\afhe``fp|iQ7"#7QnjVF>;<@HTct}k`\aku||ukc_akzukjpzznd\[\\\YZcpu_C**B\xr^MFCFHJOWetna_dmu~uja_akyxmkp|xkaZVROMQ[k~}hM3 %9Rkt`TOPRUVVY`kznccis}tjc`enzunnttf[QHB@FRdymT;( %4KdzuaWTW\`a^\^dp~ofekw~tjcahp|}topxrdUG<8=K_ur[C1'(3CWoudYW[afhe`[^ep}sihnw}sjccfnx}|wpmowp`M<2179EWk}n\OHHMT\emw}ma^`fowz|zxuuwzujfir|zxurmf_[\epraQE@EPapxh\TRW\ciou}ukfhkrx}~}||}ypmotzzxtnhc`afpzuj^VRT[doyzphcacfkosuz~zupptx|~~}}}zutuy}|ytokjknuzzsjeaaekpw~~xrnkmnprtuyz~~ywuxz|}~~~}}}}~~~|yxxz}~|yusppswzytpnmorux|}zwuuuuwxyzz}}}}~~~}}}}~~~||}~}|zxwuuuxz}|yutssuwyz|~}|zzzzzzzz|}~~~}}}~~~~~~||zzzz}~}|zyxxyzz|}}~}|||z|zzzyzz||}~~~}}}||}}~~~~~~~~}||||}~~}|zzzz|}}~~~~~~~~~~~~~~~~~}~}~~~~~}hijklmnopqrstuvwSSHS8RWP SSDKKGot~{{|{{||}~}}}||||~~~}|zxxwusqnjgeca`_^^^]]^__`acefgijjjjjkkjihggikmnprsvx|zuqnkihijjjjklmoprrpppnlkihggghklnqu{}yurolifb^YUSRRQQSVXZ]`cefhhhhgghgfeddcbabcejmoqrtwy{||zxvsqnjfb`\WVWXYZ[\]_``_]]bjwƺ|xuohb[TPLGB:0*&&+3;CJPSVY\`ejpuz~Ľ|tnkkkjhda`]YVRNKHHJMNMKJKOTY_elruy}~~}{zyy{|||zxxxxxyz{{zyxvtogb]XSOJC>:50,)'$#$%',15;G_wȰt\J<.$'7CHJHEB@@CJRZguļxjb\TLD<5/+)'%&+08BKS[^`cefghiknrux{}~~}uld\TMGA>=:752,$ !0DIMNLKMQW\`dhlnpsvusrnjgda^ZUQNIECA>82.(##%+3:?BFPc֤Լ~khpzpP4 '3:=:0$ 5UitskcaiwĻ~nd][[UMHIKLMJD<5359<<>BHMT\^^^^`bbbbbcgnrrqnjfb\XUOKJLOPOLGB<8:>DMPPONScԺϾxX81EVbfcT<(!/APUSNJINYgwſzl^UQNKIJMQTURME<524:AHOU[cikjhjns{xmlnpx~zrlfdbaccbeigb`\UNHFJNQUWYewʺ~}³t`PEDKT`kolbTHDEINQQLD=86;FVgv}xuu{yoic^^_bdb^\]dnqmjfa_][[\]grstxtmklmrsmjuxuyyytqv}xou|{ussqmknngdimnmlqwth_bedekw|tleacfgilprqnnopnjhjlhbaekqtx}~z{~||~~}~}}wstxzytnqtrtyxrsxwrptvrnmwzgorn}zrpv~}~}ywv{yy|z}}swxow~y|}}}xtzymuzu{{uzxqv||vu{{zxow}|~}~~{z|{uuz~}xzztwyy}{ux~}z||wx|}{z|{z}|{z{y{{}}|{y}vu|x||y{~xkxgoz~wjnwwyqu|~}yt{xos{rn{uzpg~|pxyx|qy~utuyxuvr{zwowxqysspgootgwtkw|x~|{xuyvz}||xw~zw{y~}~{wwwww{wxy}}z|{{}zyw{xs{|suuss{qh{zotvvuu|xxsnz||zyxpxwwtktgyx{{|{|{~{vy}~{{zksww|yvco|yz|qy|yzyvu{{vrruu{pwwrrwiatcsrgwupzxsrp}|tqyyiiw|qoo|syy||~w{ww}z|uumu~s~ww}~{spcxs{{{zy}usy~uuoowwvuookk|kwzs{{}xowyxxuzxzoss~aoxfr|qxvk}wvyo{xo~wwww|s{xsyxu{to{zzuw|yx|wow}z|sqjb{{{}xzytxyw{wt|aY_ftssww{y}ustgsh_tlutkw|quw{wwyx{ooo|th_|corguvsuuw{{{|yyvxllw{zxou}ypw{zoopcox|poqq{y}zypgsuu}|pgwt_ozpssoprrwtrp_k{wqm~{yn_ox_zut_cvwrzxxhWo{qkkny}|}rmvlgkkzzpeq{zowwwp_jniuxrrlkrsv}{w{{zto~riw{goxvmt{z{quwwylu}}posnyt{osth_gwssxspguzxx}ww|y||srqmlwyvphu}|d_stkwuny{qlptz~}zqpsrkjqy{tkkrtyxnr{tkw|y{y{{x}~~{z|y||y|~{vy|utxyvuz~zvtuvwz~~{z{||yvx|~~}}}~}{|~~~~~~|~~||{z{}~~~~~~~~}{{{zz{|}~~||{{|{{}~~~~~~~}|||zz{zy{|}||~~}{{{{|}~~~}~~~|{|}|{zzzzzzzz{zzzzywxz|~~~~~~~~~}|||~~}}~~~}||||~~}~~}}~}}~~}|||{{}~~~~~~~~~}}~~}}}~}}~~~~~~~~~~~}}}}||}||}~~}}}}|{}~~~||~~~~}~~~~~}}~~~~~}}|{|}}||~~}}~}~}|||||||||}~}}}{|~~~~~~~||}||}~~~~}}~~}|||||}{{|||||||||}~~}||}||~~~~||~~~~}~~~~~}}}}}|{}}||{{|||||}}}}}||}~||}}}}||~~~~||~||~~~~~~~}}~~~~}|}|{|}}}||}}~~}}}}}}}}}~~}~~~}}|{}~~~~~~}}~~~~}}}}}~}}|{|}||{{}~}}}}}}}}|}~~~}}}}||~~~~||}}}}}}}}}}}}}~~}~~}}}{{||||{{}||}|}~}}~}}~}}||~~~~|{}~~~~~~~~~}|}}}}}}~}}||~~}}||~~}}}~~}}}}}~~~~~~~|{}~~}{{|||}|||~~||||~|xyyxxxyyxyzz{{zz|~}}~~~~}}~}}}}~~~~~~~~~~~~~~~~}}~~~~~}}}}~~~~~~~~~~}}~~~~}}~~~~~~~~~~~~~~~~||}|}~~}}~}}||~~~~||~~~~~~~~~~}}~~~~}}~}}||~~~~||~~}}}}}}}}}}~~~~~~~|{}}}}{{}||~}}~~}}}~~}}}}~~}}}}}~}{{}}}}~~}}~}}|{}~~~~~~~~~}~~~~~}}~}}~}}}}|{{}}}~}}~||}||}}}}}}~~~~~~~||}}}}||~|{}}}~~~~}}|}~~~~~||~||}}~~}}}}}}~~}}}}}|{}}}}|}}~~~~}}}}}|}}}}~~}}}}}}~~}}}}~||~}}~~}}~~~}}~~||~~~~}~~||~}}}~~~~}}}|{}}}}|{}||~}}}}}}|}}}}~}}~}}||~~~~}~~||}|}~}}~}}}}}~~~~}}||}}}}}~~}}}}}}~~}~~}|}~~~}}~||~||}}}}}}}|}~~~~~}||{}~~~}|{yxxzzxxxwxyzyyyy{}}}}}~~~~~~~~~~}}~~}}~}}~~~~~~~~~~~~~~~~~~}}~~~~~~~}}~~~~~~~~~~}}~~~~}}~~~~~}}||~~~~}~~~~~}}~}}}}}}}}|{}~~}}~~}|||}}}}}|}~~~~~}}}}~~~~||~~~~}}~}}}|}~~~~~~~||}}}}}}}}}}}}~}~~}}~}}|{}~}}|{}}}~~~~}}~}}~~}}~}}}|}}}~|{}||~}}}}}}||}~~~~}}||~~~~||~~~~}}~~~~}||||}|uqqu{wpmns{zvstx|~{zz{|}~~~}|}~~~~}|{|~|{|{{}}}~~}}}~~}~~~|{||}~||~~~~}}}~~||}}}}||~}||{{}~~~}}|||}}}~}||||}}}}|||{|~~~}|||||~~~}|||{{|}~}}}|}~~~}zyz}~zxxy{}}{yxy|~{z{{|||}|{|}~}|zxy{}|zxvuuuuwxxyz{{zzxx{~~~~~~~~~~~~~}}~~}||||{}~~~}{{||~}|zz|~}}||{|~~~~}||}~~~}{{|}~~|}~~}{{}}|}}}~~|{||~}|~}{zz{}~~~~~}yx{|wx|~|xxxy{{|~}zvvx||{yy|~~{yxz~~{z|~|{z|~~{{}~}{{zz}~}|zyz|~}yyz{}~~}~}zwvx|~~~}zxwwyz{||zwvx{|~}zwvwxwx{|zyvtuy{}}{yz|}|{{{}~~}}|zwwz}|wuux|~~~}zwvvx|~~|wvw{~|wy}||}~}ywttwxxy{{yxvsqqrtwyzyxxwwyz{~||~~{yxwxyyyyywusrssstuuttsrrrqpqsvwwurqsuwxxyz{{zzz{{{zyyy{||{ywx|~~|{{||||{|~|{{yy{}}ywvuy}~~|xusrsuvussrmhfgjvlTRbw|ww|~}xopwzoheirz|tia_`fov{}|vohb_`dltz}}zuniikmsy~~yuux|}}wtstwxxwwwusqommoqsvwusqonnoqrstvvuttttuwxzzyz{|{{||}~~~}}~}{zxxyyxxwutsstsssqonmlmnoppnjgdbdgijjhda]_iwhII_Ⱥ{vx}~ukpztd^^eq{vf[RPV_jt{{wnd\URV`js|~zsiccgnw}|wvx|~usy|tmkow}|tmiilpw}xrmjjmsz~}yuqonqv|}ywtstvy|~zurrrty}~zwvvx{}~}{vsrpqrtvvvusqnkjjklnppoljihhhhhijigfgfddfjvhFF_ϼytzľ|lku|l_[]gs{zlaVMMU`ju}{tj^TNPXbmw||ysld_`fny|vssv|~|wwz}~uqpsyzrnmpw}|upmknu{|uqoorx}|vsqsvz~|wtsux|}yxwwz}~zxwvwy|~~~zwuttuwyzzzyvsqooqsuwvrnlljhhhjmmmnmjeba`aeikklw`GG_θxfju~~vkp{xjbdkvxh\VUZdqz|p`TOQZeq{~}xpf]YY_it||tlgimu|vvz~}~}}zutv{{spprv||uokkntz|vrppty|}wrpqtz|vsrtx}}ywuuwy|~zwvvx{~}zyxxy{}|ywvvxz}}zxvttsuxyzyxvsqpppqsuvurnkjjjlnopomljhhhipzpXScw}|xx}}uqqt{|riedflsz~|wofa_aejpvyyuohccdhovz}~{uqnklry}}ywwy|~}}~~{ywwy}}wtuvx||wuuw{~}yvuvx{~}ywvwy|~zwvvwz}}~}ywvwxz}~~~}zxwvwy{}~~}{xxxxz{}~~~}|zxyz{}~~~|zz{zyz{|||{ywvvwxxyyyyxwvuutstvwxxvttttttuwwvvvvtstssuwyzz|zv{~|||||||zvrpmmqsuwwuttrprssstvwxvsqqrsuwxyzzyxwttwy{}}}~}||{{}~~yz{|}~SSHS8RWP SSDK1NewExvtplkiimqrrrpmlpsz~~~|wtpnlhfhdcdefjou~||vstrtsvwxxtrrqtv{~xzstttxy|~|~thXPHIT_w¨hH0#?[wȸpZL@79;BKWco|xpf^ZW\air~xvjd`_^_djov}xqkhb^\\Y`bhnt~xl`VLGGKV_mvxpjffhlpv{vrnfcbbghnsv~ttru~zrn`XJDA@FO[mzzp`P@0(/W쨀H  _԰pH0  +?Woztihkjy{r`P@0/3?K^k{İpT@*$/EWkxfXPMR_oxld`YX\_fls|~xwttsxzz|~zrkfd^`bjsƸhT@*#3?Wk}nzx}|~~v|b^Zfntwxprlrt{pbJ8$ "3Kkt`L86*23?O_rpdXMHFJO^i²hP4 !/Kgĸm`UPORY_oxp`TTOV_gypXL80*/5?WoиlL@.*/=J_|İpT8$-?_pbTMHNZg~p`RJJPSW_it}x`JBGWsxdRPFHGWoH  /MotXB,""+7KawlbXZZbmw~|||xqjf`XX]n{xrnlflkr}`@ &Kw`@7_p@opT4$';[w¨`0';Oo`@'?oȬpQ@)$$(1G_rXD:224?L[vztillrpwxx`@0/9JR_r`A?w@(?_ĨP ;OobPBLTwдpXLBL_{r`ZXRNNNJVZ`dryyzvxdRFBEObdlbbZcdkruxkwP?ШH&7_{ȰT ?w`@ ?oаd@W谀@ Wĺzpd`\ZRNIR[o|pjtzxnkfoz|t`J0& 7_ఀT(*K{@_иpD0/[p4 ?_pP27_ȸhP8+,7WwİxhX_fkplnenopP$ 3Vcvt|znlnz`N@DN_nmt`\J[^o`@0;WwH /H/_ % (oඨxlZF@G_ojVJHN]oȺR@ #+EO_rlp{spdgh_gudPCCSgutdH65?]wxXH:WvXDEOe|xttypklhmv~przrdfwte`]o~`LHOgvz|phop\TPVo~zztxxt}jXPHUo~}|x~pjd`fs|~|xrnryphhioqrwhXJ@COZbbZU\kvy}xXJL_njkrtpbV\kw`RTX^iv`@27WҸ@/B<2(7MWnrvĴhXLO_hd`^^gwsld\TWcgjnnsy|}zrmpnjlhhjo~|}z~lclpvxtvtvjdbW_иpbP:7?M_ldZPLXfrztuz|ypddksxz|zz~x|z||w~~xtd`\Zejqzz|~tzphrp`^jvzxtv|vlomq|uprvvxzx|zvp`eop{uppllrrvxvz~uwztwxttzhP8=Sgwxpry~xlhhmrpllknuwprrvtnsvy|ppnsyxvry|ztphbhsr`TS_isİ`D?JOgp`orZPPTTPNO_ot{vlow|zz~zzrr{ztrjbbkrswzvvvzxut|xh`bo{|zvmszxntztnlfmpjkiioxttspv|~x~zxxsvvlhfflnppnnloz}~|vtvtstorvvvxttz|~vwxr{~xwwroouv{trnnwxhgzpk~}|xp`HDGKWmuuwxbVVV^\RTRU_bcnjsxvwvvut|xu|}~|{~pz~|xtu{~xqrttw}|z~}ztytt|||zrppv~~~|ztru~tsx}|||vvto~~|sppvzvv|w~~{zxtswzxzvorvvx}||xvxvpovvvzzxxzxvtursz|x~zxytnlnwvonbcrt{xsxx|~||}zttwxprqwz|zxrpnrts{|v|~||~|~vvt{xvztqtry~|tw|xzxtzz|wtrv||||xw||~{xsttx~||{~~|xpjksz~xttpplehmowvpnlpvsyxux~|~|z~|~~|yz~||~|~xtvsy|xvtnrxv||vvx|~yxxrppttvzxvvvvrstv|~zz||~|vw|~~~|zzzx{|~~}|~~~z|~~zztr||zxvutqvzvwzxxzzz||}~|zvtvx~z~~z}|vxxvxz|{vuvxyxz|xzzxxvv{|{~|zxzz{~~~||xrttvzzrqrvxxtppsz}~|x|||z|~~z}~|z~~~zz~|xrrsuxzxxxvtrtvx~|ttwx|}~||||{yxxtrrtuvz|vtxswzvrrvz~}~~|zts|~|~ztvwz|zzzxz~~|~}|~~|yyzzzzvvuxwxxtrtx|~~|xx~||||~|zzwzz|~~}~xvxttzxz|zzxvxzz|zxx|}~~zx||}~|z~~}}~~~~|vrrsw|zxvx|~~||~|}~z{|z|~zxxxz||zxvzyz|~~SSHS8RWP SSDK X SFire2}~~~~}w˴xocZW[aeushSWSXoswqY[~~@&_hGCmdYqrr{wttkwuvzxma[implc{xowiUe~~}|{woc\wnoyignr`myfbkcjks~v]Xg{sgszt~ih|xxkptwp_gwe`yqq~uoje}}cop_kgWgg2Q{XotYsL-SϷLL==xנ8?ϐ;!QS"?xgXG/gygoQKoyOGKl'cq 7otconr,7O{|qİzXv{@<_h9IĪrpC$HuU_gsH7p#('߰P*YRPu[Sor>*Nwadqi\ȱTAƐO<_pd[o_Gâ[0GVkUPW)N{ֽwH7[yGoPFN=OGGkVGUpRS__ϑq0Wɩh gt+gU3xwppYS}d##} c#π3{ݶG C֟X_{w("_?_T$| }#j˵`'}?q/춀iForyj/MX*wSCw2APCR;Wwr_"ރ;ִL#| #_BǑBаT{0yV 濯p8Pï`3 c{s}os"ּn6xwH c}UħE wՠT7@"bŶC 惉rQC]R e7ӄK즄Ԅ' ]Ȁh"LSh*iFtBcs݈LS[_K.&U͗_#0Og -LxvM(BWd [t CcCDt ~֠xoR3%h ~ |[ #BAsZ  GÙ^"C0֐3rb)H[q+'sֽS#춟x ~ E[+'g( _|CWoSt_tϸY1?;[ocn gxӛ7#2_q7t$sP  #cooKX " pϧ{L0##Ewgȇ7cc"r  &` gՈ-tO{W8 a"zՊoñ|}IL&c\ggԏCtX#Eew~X%dC֟{SUmն~ _r#}JV_Ch< $sH CŖ2QbDc*iր3cp??yy }b 'Ow`h C} %kp#6$A} +\LkDcսW_춐Z|ulAW^%GO@#{K[zʅiϬx}|tkulv~y~tr}ytw~}~vrtxyvuvy|yxxxwuuvx{||~}|{yvssuvvvx{|}~}{{zwuttttuwy{|}~~~~|z{{yvrqtwxwxz|~~~~|xutuusrtxzywy{{}~|vruxvsru{}zwy|y|{uqsxyvsty}}zy|}zxyyxvtuwxwwz}}zy||yxz|zvqrxzxvx|~~zy|~zwwy{zwuux|~|yy|}xwy{zyxwwwz{|{z{|}~}{yxy{|{xvwyzzz{}|{{{|{zyxyyyzzzyyz{|}|{|{yyzzzzyyzzz{{{|||{{|||{yy{{yyz{|~}{|}}|{zzzz{{zyy{|{z}}||||{zzzzzzzz{{{{||||||{z{{|{zzzz{|{{||||}||{z{{{zzz{|{z{|||||||||{zzzzzz{{{|||||||||||{{zzzz{|{z{|||||||||{zzzz}}{{|}|{|||{{|||{z{{|~}{||}||||~}eP`SSHS8RWP SSDK SHit; wbCWRaQ{>@܂S K뗄ʷ9Ы T~)0% PMoYend=qzƯs0#c c@ЯK:; 5~2XOk:L'5CME?ܔ %7#1<47w5DTF^f#T[-vN֟YQ{y*?c=8r3%0ߋKO$,ߦ3 \ 0[P72,IpO}tg#Რ&;3_֛%L\ aB5^cݯ?Vj1 0Nu;հ) nz_#4%0et.^J .9\s+=CDᏋ+C$K,yر ?H#.-|4vd)Rᑗ} _ʏU?=bA]Ѭ;`DתfB F fC\| G jCKږw}-i ;"%mT0|v$E|bZ1"[| yY }-ƾ >aRi:#}Q=kcRYpSԫie=MQd; tj J2Iص)Q׍u߂ 0aqmEǼ(Z8Յ8T\$x7{9+ˉgHkc+7wGy1,zMx9CJ}w1O2acBi,eD.gbKwldluHK_;3c=mȰix0mCUFcz)-RPntqs'mPRx_xua{Bhzގ]g{]ulBŪ{X?ci~Į^Cil1MiWwx}sSl„BKcZaz~[~UaĬm {oQza]Hnݩvbuyl4zvt?~Yjiy]xh35`sߚKLXahqv~{a`ox{B_oȔ=qxpSѐ}֙3$ټv[hgRZwuhCK7_|b_zIGuInyGq%_ǨEH}}wgpuixs?A|˔ARpiG*6׮idc$!pf7xM]jNrϘG[O%gyw_XbKml]Uq}uq^+ӈ3{r~z]glkHf׌]fhbq~cz~]svRPVY^\^s>t+Jձ>$\HlOS\`Dʹ2`ßHFqglssiu\qwPegz8ZqB^qyL]uoϝ7wz;~^_~moinfbt``oaj]}/oس3Y}X^>G,?bJd}iAZvJ=dlXy}vXd`_X;eو;½JC`Zpq|ts}vs/ogq]YyyBoh_J@eyAohTf{c]|V^uhvDKlB|mY_Ĕ-7Jp\iutT\sgkdu|z[eNwp;nqta{ucUhw[>HEǞ.Sf2r%xĤlWLk͐>qFUvkWvcWxem|v4eucYfw+8ؿ[ztfRW7p `\ [ϰL)p JQ ]A>(P&I]9{ZjKM~QUjj9ŢkdattW|}Ns_u~sވ=ML]/}f~mhuq}}muwskfrjIpWC|jl^^T5VqSxQqwwzx|jlVqo`ka]cQUm7sEi˘QI~dz~{{_[Sa{ci_u{kmp\lxhvsxodnRr`]Yrp{zvv|JVd>`C{bzAq~}oeZ~ohffgUa]gVicck|j~}ofN_~Grrs~lagp}hey\u[]~p@uh]l@k[hh`ifaRanSrcY{QQzoZw|^{tguvmpolZ^ikY}zqp{}szpknz}y|kjsy{wzz_sl~on|z^eohKWil_jxT[vrwyzrWL^uHr_dzus~nx}nxqrRjyVxZbbQeYIGXl/oV6sb:OYt\q{j~}|t`~nUtQQTJb=tPKVov}~t~tqa^j{uVlzefe]{m\|bxozcNnrccdc{a`tfTdhKec}A[r=gyf`cW_b}qn~kGYYppyqe^tTxebsdaob~~v{mmu{pz`t{rjrp_wveqr\Zn~x{zgw~gNXsniwpgqtjixkzfnrrbsr]zqtutsu~zj~yjtnorrMx\bbksa|nzrxqv}vqmzbvv~tdzgb|ziz|fk}uyu~~ix~z}|{mfwsszgjz`ivrtg~ve}gmv^Slttopuotx~{vwlr{dSSymq}|lpuko~zt}mmv|rlmo~~galewgow}}pvuzmf}fUGc`c~~uyu|tw}rws|xrqszyyx{i~ecuo{{o|}{yx~yxevigzusyqkjsuymoxk}||x~trivnx|x~ryqtpst{otvdtvox~sy~|}vv{||o}ttuz}pwx{zy|zz~pwSSHS8RWP SSDKSonarAT@IBjBjTBTFjDUj@uIUjJj_UTKu@jT@jAjTUdJkDUuABBUAJBjAjUUjAkUUuDUJEjJUUUOVUBjUDjBuJKEkUFjB`UC`DVHBjJVECUBVJCuBVkBBVVLkVkVLzKeVuFuKVeKaFVkDkVAKLkVGkDkVDEWkCuFWkDWFLLCkLEkDVGEWFCuFWkDEWaDLWuDWHkGWGEkElLEkLWWEkGWWDkHXWGlEluFaNkElHXaHEXMDElWHHXWEGXNFFXNGGXXJvNXlNlNXlFlXDXElNGXOlNNvGYlIlIYlIcXJlHYXE€FcXGlXYXGlNYlFlNbLmGYlGGYgVcYYbL{mYYlJmYYlOmYYLYOHlJYOZlIcgGHclLYZYOmKKYJmKZlHmKPlHYHvHmJImPZIZvHZZHmPHPIHmZHmKZmIKZZImJImImcJmU[Z[vL[ZNmLMmH[ZHmQ[Z[vZmcRQQZJQ[QSJ[mRnQRmQ[QJmK[QMmJ[MvJ[KvRe[\mPRRmImR\RNmPnVL[Un[L[JR\mJmR\[RN\OnJn\SnOnWneNMnJnKnSeeKnN\SKwKnNe\NwLnSee]eOwnO]OQO]\]i_{n\e\_eeietnwen\]jV]ON]NMo]LTTLNLTMnToe]O]w]]]e]nN]^nMP^]LnLnonLn^nR^nMwN^TMnMMoPQN^]LPVoO^^MoM^^MoNo^^oMoM^^L^U^jQwO^OQoOYgVRoV_Q_fOoVg^RoPg^_^SwVZgf_wo^o^coQ{R_QQoPP__OoR_VgoVpQSoOw__P_oP_oQwVS_Pop_`_UOg`oWwh_P_WWhoPoQp_WkSo_h_hoS`WPX``XxX\UVp`P`XxXhXRpR`TXp`pWTahXh`Q`apbp`h`YxWa`Q`Q`Rp\UpSpXa`aXTSUpRSaYRQapRpYaTRpSpWRxSaURaRaTSaR|TaaZpYxqlai\xeixap[xYapQpYVp[qVZpTaUTYTqUbbTqibbVZqTSbVSxTbTbZ\bUbVTqVUZSbVbbUqS[TbTb[VbUUbbSUbWVqSqSbbVSWbmUqWccVVc[cXcxYcqTqcc[c[XqWT[TcTcmcXcxkcWqVUcccqWq\Wc\XcXkjXcWcnVrccc_\XqdrdddgkZmdr]n]yrdddZrkdrdkdddddTYd]]]ddZd_kakddr]dkddddkkrfrddyVy`Xdk[XrYeeeeYe^YZXy^reerZeeXe\eZeZerZekWeYyZlYZrYZ^ZyXerZ^Ye^ZeYeYr[s^Ye[rsbsrYsfZyYf[\iylfff_Z_|Ysffffy[fsZf\iffs_ffZs\f]`s]sf]f[s\fsZ`fs\df|Zfff\s[cms]ggasc^saggg`gg^sg[s`gabsgm`d|sggdgymtgny^stmgs\tatg]y\ga\\ga\n]t[tg\h]_hznnh}\tt]t_n]hh\t\zhhbt[t_ht^zbbtb\ehh^zat^nnbh^nb`zhhhct_t_^t`hbnhhzbi_`cic^]iclzltnittnttotiicz^^ititcic^i`ic_}coifiadt`iio_tibz_zaiotb`jzdu_jddu`uj`uojd_u`jd`uajj`u_uuujjj}ojj`bjeau`mcoezbju`ujzeurjoepu`auakzkpkukuau`u`uc`c`k`kukcuakukkf}fzm_uavbkuaufkkgvhkphpcbubufafbucvkkkkuvpkzbddavllle{cvclldbdclcvb{vqc{vdlbn{blelcvclecvcdcgclddlc{elvclcvc{eqldvemmd{dvcmmhjdmd{dmmfthrmr}hjmvd}vmmqf{hmfe{emmivemfmvekmhewfmmmvdwmemddmnf{ewnnweinnefnhfwfnnfwgrwiwinnfwewlgwgwngwfsnnnggnjgwggnwfnjnjhwln{fniooowlwwggsoowoojfof{hoogojfhkwhwhgwh{xogkgohskholsuh{h{ohwhhswhhowhskgii|xjtnjpjpphxj|pphpipjhxgxppxhxjpxknppljptkxptttxlpxippilppixnixhxjixi|npljiqqjjqxjqjikixsqqqjkq|jkl|o~xvsqqqmqxkon~j|lqll|jqn|kqun|nqqun|mxmqqnyxuwqtrwmyo|rrrr|nuulrlrrnkrykyrrkrlylolylmmykymypoyopryrryrrnyorumrl|lyylslmv|ymyos|lssytsos|p~vlysssp|nsxysnppvvnsnvnnylymnsmnnpmnssm|nnqotnotrntmtontnnwzootzntoq}nqntqzqtwsttotqtzopwwt}ottpzootttztttpzqsuzpuqpuwr}qpu}zpzpuzupupuqzw~ozpurzruu~ptxrvquzqzuurszupqsurzuu}r}zzpus{v{vv{q{vqvqrvsq{svvr{rvvq}qqvq{vqvs{rvr{rvvrryrv{t{r{vr~v{tv}rvvr{vvw{s{ww}w}u{wwywy{w{x}xtxw~s~t~wt{ruw}tww}s}utstww}uywsty{s}tuw|tzz|xxzzvt|xyzuxx|t~wxzx~t|xx|tvy{u~u|uu|wxvxxuvuxt~|xu|u~v|xt|uz{vvywuvyvu|uyyv|vuvuyuyyu|uywv~v|yv|v|wy~vw|{yyy{w|w|wyyy|xw{|v~yy{y{ww{~w}z~zz}w}yz}wxz{w~wzww}wzww~~~~~~~捠젢 捠卪 퍍 卪 䮍 ὸ 󿿿 衩 荪 򭹲 򭹲 塍 򭹲 ⹭ Ⳮ 𭹱 Ɑ 硍 筹 䱭 󍪽썍砽 硍䠽󍍠Ԡ벬ԠԠ덠Ԡ占Ԡ岍Ԡ占Ԡ岬岬򍍠Ԡ占ԠԠ덍Ԡ卍 ԍᠣ 占堻 獠썠젻 塍􍍠ᠣ 占 捠썍젻 󡍠ᠣ㠻 ㍺㍠ᠣ 󍍠 䍍 䍠 獍 卍堻 獠 䍍 獠젺덠 婍덠 􍍠䠻 忍ᠺ 卺𠣧ۧƠ 占堺፠䍠䠻 ፠䠻 ˍ𠣧 𠣧堺䠣Ơ 썠㫱 䡍䠣𠣤堺 󩍠썠 ᠣ􍺴𠣧ҧ 堺򍺴𠣧ʧ 뿍堺˿򠣱 獠˿ 獠 䍠屻 􍍠堻 卍堻 卍 䍪 䍍ԍð㠻 䍠፠򠺰䠣 󍺰𠣳󿍠堺㫲䠣ƍ𠣧ৠ 忍Í䠣ߧ Í𠣧ѧ堺 塍󍍪 렻 婍󠺷ᠠ 占占ᠻ ᠠ 堺젻㍠젺𠣭堺 ᠣᠺ 젻 󡍠㍠頺 ᠣ􍺵젻 ᠺ፠ 堺젻 ㍠젺𠣭堺 ᠣᠺ 𿍠젻 󡍠㍠頺 ᠣ􍺶젻 䍺堣 􍺷ᠣ 㠺 占 堺 俍፠򠺸ፍ䠣 젺ᠣ˿ 덺፠ 𿍠堺ᠣ堻 占젻 婍𫲍 ᠣ ᠣ ԩᠣ 堣堻 塍󍍪 䩍 ٺ 卪 Ժ 卍廣占堻 占占卍 忍젺덠ᠣ堻 堻 占㍠䠣堻 덠󍍪  䮍 ٺ ٬ Ժ 堻 젺㍠㍠占 堺㍠占 ㍠占 堺㍠占 堺􍺹ᠣ 卺󍍪 ᠣ占 占ᠣ 占ᠣ 󡍠堣󍍪 卍占 翍頺𠣵 堺젻 硍썠堻 卺堣廣񠺲 쮍 俍፠򠺸䠣 젺 򠺷 󡍠򠺱 䠣 忍堺占㍠䠣 卺廣 荺󍺱 𡍠䍠㍠㠣䍠頺 塍򍍪 ԍ 俍񠺰፠㍠㠣堻 占㫱 ᠣ 򍍠퍠䠣㍍퍠䠣㍍ 䠣ƍ썠 䍠젻 썍ᠣ 䍠썠􍍠 占䠣ƍ㠣Ơ 쩍卍 󡩍䠣젻 썠堻 䍠卍 䍪 ٺ Ժ 卍㍠ ㍠ ㍠ 䍠堻忍󍍪 卍 젺 占占㠻 ㍠㫱 占 塍፠㠻 荠㠣占 󍍪 占堻 占岍ᠣ 󠺱፺堻 婍젺 𿍠젺 ፠占 堻 𿍠堺⍠堻 䍠ᠺ㍺⍠堻 􍺱㍠ᠣ荠 占ᠣ占ᠣ젻 占占占젻 䍠썠堣 젺堻 𿍠񠺲 젺 占堺 򡍍썠 썠썠𫲠 썠 ᠣ􍍠 􍍠퍠䠣ƍ堻 􍍠㍠ 堺㠻 䡍堺堣堻 􍺲堻 젺 򿍠䠣ƍ젻 占젺堻 忍젺 塍ᠺ 䠣ƍ썠 젻 썠젻 썍 占䠣ƍ㠣Ơ 썠썠堻 占㠻 젺ᠣ 卺堻 占卍㠻 󍍪 ㍠젻 ㍠젻 젺ᠣ 䍠ᠣ㍠젻 ㍠썠젺ᠣᠣ󍍪 荠占堻 占岍堻忍頺占䠣 򠺹፠䠣 堺㠻 썺卍 ㍍占堻 占占ᠺ 􍺹㍍ ٺ ٬ Ժ ㍠ 𿍠 𿍠 ㍠ 𿍠堺 頺 쿍頺 ᠺ 𿍠 頺 쿍頺 ᠺ 頺 쿍頺 󍍪 ԍ獠󠻣 󡍠 獠頺ᠣ獠ᠣ堻  󿍠젺堣 ᠣ占堻 ㍠㠻 獠ᠺ砻 卍 ㍠㍠ 獠㍠젻 䠣㍍㍠㍠ 獠㍠젻 䠣㍍绣 㮍砻 獍㍠ ㍠ 砻 􍍠䍠젻 𡍠㍠㠣썠 ̍㠣䍠󍪭獠㍠𠣭堺 𿍠𠣳堺卺㍠𠣭堺 𠣲堺卺 젺卍ᠣ占堣 占󍍪 ԍ󪲭獠 獍፠ 䠣𲍍㍠젻 젺㍠𲍠㠻 𲍠 ㍠썠젺㍠𲠻 ㍺𲍠𲍍썠񠺵 ㍠ 頺堺ᠣ 쿍 忍ᠣ썠񠺸 󿍠㍠𲠻 頺堺ᠣ 쿍 忍ᠣ፠䠣 ㍠ 򿍠堺ᠣ   頺 獠젺ᠣ 􍺰󍍪 䡍 ٺ 䩍 Ժ 卍Ԡᠻ 젻 占ᠻ 䍠孤 占䠣ƍ𠣴 򿍠堺孤 占䠣ư獠젺 򿍠孤 󍍪 䍪 ٺ ج č Ժ 卍 ፍ󪲭 忍頺 ፠ᠻ 󡍠፠󍺰፠Ĭ 퍠䠣ƍ㠣Ơ 𫲍 ፠ ፠󍍪  󡍍󪲭 頺 忍䠣ᠣ ㍠Ĭ 獠 堻 卍 ㍠젺Ĭ堺 󍺲젺렸ݍᠺ 􍺱䠣ᠣ㍠ 塍㍠㍠ ㍠썠 ㍠㍠ ㍠썠 占獠堻 ㍠ 뿍󍍪 ٺ 䍪 卪 Ժ 𳠻 č󪲭 頺Ĭ뿍𳍠堺㠻 㠣㠻 ㍠堻 퍠㍠堺 퍍㠻 㠣㠻 ㍠堻 忍㍠堺 퍍𳍠 堺 䍺젺령ݍ䠣 ᠣ㍠ᠣ 􍍠ԡ 㠻 ㍠𳠻 卍፠㍠ᠻ ㍠㍠塍 㠻 塍󍍪  ٺ 卪 Ժ 卍占堻 嫲񠺰䠻 ㍠占占嫲㠣 嫲䠻 𿍺占䠻 ㍠占占嫲㠣 嫲 𿍠 ̍㠣䠻 堣 󍍠䍠㍠젻 䠻卪 ԍᠣ㍠ᠣ ㍠𫲠 󍍠򠣱嫲 占 󩍠占򍍪 ԍ썠卍ԍ占㍠㍍㍠㍠𫲍򍍠፠㍠፠㍠󍍪 ٺ ԍ렻 占፠ 󍍪 󍍠Ԡ썍 屠 塧  퍍Ԡ͠󠲠 󠲠 󠲠 󠲠 宮 ᡍ 󪲠 󪲍堻 卍󪲠 󪲍󪲍󪲠 󪲍󪲍󪲍󪲍Ġ󪲍堽č捠]S.WHISKEY.DOXP3܏ET{_SW.RELEASENOTESP ET'WREAD.MEP{ET{\SPACEWHISKEY{5 pPTEpdos Space Whiskey GS v1.04 This is a FreeeWare product! In order to legally use this program you don't do anthing! However, Ideas From the Deep, Ltd retains Copyright ownership! >q>t   ff,p $x^@D ATTN: Space Whiskey Ideas From the Deep, Ltd. 115 Le Point St. Arroyo Grande, CA 93420 Questions and bug reports (none, hopefully :-) can be sent to the above address. The latest version of Space Whiskey GS can also be found on these and other services and most likely on your local BBS as well. Distribution is limited to online services, non-profit organizations, and private parties. User groups may charge a maximum of $5 for the disk & handling fee, etc. Space Whiskeys Story Space exploration has always been treachorous. During your journey, you've lost most of your companion ships to the aliens who rampage thru this sector of space. Now, after waking from your cryogenic sleep, you find yourself alone in your ship. The controls of your ship are on automatic, and the smell of whiskey is strong. It seems that your companions have all gotten drunk and are off galavanting around with those pesky aliens! It's your job to rescue the poor suckers! To do this, you must race around and pick up all of the available whiskey jugs that have escaped the hold, thus preventing your companions from aquiring them and remaining drunk so long that their systems fail. Of course, since this is exactly what the aliens want, they will not be too happy with you and will most likely attack you on sight. Shoot them back, but BEWARE! Your ship's targeting computer has had whiskey spilled on it, causing erratic and uncontrollable firing patterns! Shooting enemy ships will gain you points, as will picking up whiskey jugs and clearing a wave. Shooting your own ships will decrease your score! Whiskey jugs can be located visually, and your ship's passive nasal sensor will sound an audible alarm when it detects a whiskey jug in your proximity. Good Luck, Dude! Instructions & Stuff Starting the Game: Space Whiskey GS is a GS/OS application, and requires GS/OS 5.0.4 or higher, including the new 6.0 release. It also requires at least a megabyte of RAM. Objective: Clear out each wave of Whiskey Jugs before you loose all your ships! Controlling your ship: You can control your ship with either the mouse or joystick. Control with the mouse is simple, just move the mouse in the direction you wish to move, and your velocity will be adjusted in that direction. This can be used to speed you up and/or slow you down as well as changing direction. HINT: learn how to move the mouse, pick it up, move it (in the air) and set it back down ready to move again. To fire a shot, press the mouse button. Hold the button down for rapid firing. Control with the joystick is somewhat simpler, but more touchy. To move in a direction, simply move the stick to that position. Because of my rather tight timing loops, you may have to be slightly off center to move straight in a direction. To fire a shot, press a joystick button. Hold the button down for rapid firing. Keys active during play: J = Joystick toggle (you can also start joystick play w/a joystick button) Q = Quit the game. No asking, no saving of the current score, just quit R = Restart the current game, just as if you ran out of ships. Score is saved. ESC = Pause game play (toggle) Now, where is that hidden about box? and how can I jump to level 9? Space Whiskey GS Copyright 1992 Lane Roathe, All Rights Reserved Ideas From the Deep and Space Whiskey are trademarks of Lane Roathe Apple, IIGS, and GS/OS are registered trademarks of Apple Computer, Inc.DDDDUUUUUUUUUUUUUUUUDDDDDDDDDDffDDDD3333ffffwwww  DDDDDDDDDDUUUUUUDDDD5D\. xD  a G8 D2dp9dpD4 <  G%KHPbpPTEpdos Release Notes for Space Whiskey GS v1.04 v1.04 Fixed a bug which caused a crash on machines without a joystick! If either apple key was pressed, the joystick was turned on, and it's failure exit left X&Y in 8 bits! (NOTE: v1.04 never 'released', instead I wrote & distributed a patch program) v1.03 Fixed a display bug in the hi scores. Fixed a few decimal vs. hex bugs. (the obvious effect of no design!) Most noticeable is the fact that you don't get free ships with every whiskey jug after level 10 :-) T>>t  eop @zdy]@<DDiming didn't work thruought the game, allowing some sections to fly by while others crawled. Especially noticable w/o my ZIP chip running. Fixed. Higher levels are now tougher, with the frame rate going from 20 frames a second to 30 at level 10, and to 60 at level 20. Obviously, a ZIP or AE card is recommended! Added the ability to skip the long and tedious death watch. Just press your mouse or joystick button to skip to your next ship. This is what found the decimal bugs :-) v1.02 (never released) Fixed bugs dealing with levels 10 and above, some just stupid stuff really... sigh. v1.01 Fixed a bug w/5.0.x that occured if I read the score files before my resources. Fix- just read the resources first, then the resources. Why is this? v1.00 Initial release )0   V   Please Note! This code is Copyright (c) 1988-1996 Ideas From the Deep, Ltd. All Rights are Reserved, Worldwide! This is FreeWare! There is no charge for this product or it's sources. However, the following conditions must be followed in order to legally use or distribute: 1. You agree to credit Ideas From the Deep, Ltd. and Lane Roathe for any and all source code you use, or make available for use, in any product. 2. You agree to distribute this release in whole, without modification of any type! >Py>t  Iff,pp ]@TBecause of the time frame in which this product was written, it is likely that the contact information is not correct! The correct contact information is as follows: Ideas From the Deep, Ltd. P.O.Box F-42222, Freeport, Grand Bahama, BAHAMAS www.ifd.com Lane Roathe lroathe@ifd.comDDDDDDDDHb$ :s& 2b&% ,@SpaceWhiskSpaceWhisk" " `1/  ^" }@HHH HH "zz" H" oh(`HHH"h8`HHH"y{MHH " ^uͣ"" o" " Ͱ"  " sHHH""" oh(``" q` (08@f p`iyv `yyww `pyUw p foO (V Bh&""""""""  {}cegOi``8{ӄ  7&"eeX`  "eeX`   &1eeX`   eeX`zhHZh` oq` i e"i$ȷe&i(dd c80%#sXs8smu cmsg s\Zsu8e80JJ4 e8eJJe8i e8h` e""e&&dJJeeJm{z }H Zx` 0.  JI` JU JI`LaneKHHH *"hh " " "HH " "R 庠   "\ 箮HH"hH T "h`HH%"hHZ ʣʣ" hhhZڮy""z`"  6KCRa\!"L H"L   I "L HH "L LLocatorMemoryMToolsStartup HH""H""  `Shutdown,58``*` RW8`iw~ i 먈  8iemi 4H( h(8`JJJ)F h)( d @ Ƚ( d n v > ? `n =} >v = > = >-=὜ >᭎ = >= F =    (`4( (`( <὜ >= >=(8`4x,l 0" , .  - /l (`4,l  l ,.(`x K0[0)> V 0>?<==+(k      0(8$4,<"2*:&6.>!1)9%5-=#3+;'7/@PHXDTL\BRJZFVN^AQIYEUM]CSK[GWO`phxdtl|brjzfvn~aqiyeum}csk{gwo     J7 <( >?=RR`  H+==  +`>? `<=>? <6 =;:( <>?="=`> @`K{t\:`: " ""Fd:""HH "hh  HH"tL ለx    X axL    \" &" 6! +  : 5 +  '" "G 4 +  6t6jlh  9 l = )iel dd"L>   j!>` ) !D ) !F`K0[ H"  ") i4&" HHڢ"0 HH ": ("*"й`\"HHڢ"/ HH ": ^"`"й``&j'dbdd`$iZ z` <p& )& )p& ) &`* ) )ei# ) )?eiz"`"᩹ G `  8  #۠ + `   0 +"0:"""7F:""7Z:""7x:"""7:"'"`" "G 4a) "PF:"C" "F_:"V" "Px:"v"P:""P:""P:""`"AF:""AU:""Ad:""As:"""":"<"`"   4$ 4( 4,  4@ @ `Busy Loading Resources...v1.04 Programming & Art by Lane Roathe$Copyright 1992 Ideas From the Deep%lroathe@ifd.com Q=Quit J=Joystick R=Restart===[ FREEWARE ]===Just send an acknowledgment to:ATTN: Space WhiskeyIdeas From the Deep, Ltd.P.O.Box F-42222, FreeportGrand Bahama, BAHAMASNow the GS is on the wainApple is the one to blameSuch power down the drainAnd it really is a shame!#Shame, Copyright 1992 Lane RoatheRezTables