2IMGCdrP@@@ 8L2C)pJJJJ IH(ȱH:=IH[H`@HcH  $ +   I/H`JLNGȄBȄF aK  haaFF  mJm# KKJ UJ )J ۈ) ;J3ȱJFȱJGJKaȄM  aaNNJFLGJL L? &PRODOS `DaElH$?EGvѶK+`L HHLy XP LM ŠϠĠӠS)*+,+`F)) (*=GJFjJJA QE'+ '== `@ STSP8QSS8 m P o R(8RLnSOS BOOT 1.1 SOS.KERNEL SOS KRNLI/O ERRORFILE 'SOS.KERNEL' NOT FOUND%INVALID KERNEL FILE: xةw,@  ȱlmi8#)!) >dLԡm#i㰼m#iЕOLԡȱfg hi !dLԡ憦  Ljmkm l y`2 Lԡ8(Je稽)ʈ@LGS.INFOS;' @ARTICLES;\-,COUVERTURE.2A$)Z%EXERCICESF,K FONTESEDFF UTILITAIRESF3\JEUXF2Z2'GSINFOS@~**Y# FINDER.DATAɿF\POLYEDRESY Y PROGRAMMESK Y FINDER.ROOTjZ2\DESSINS.SHOWsY \ANGERS.SHOWK@ۮ(IARTICLESu' ;' '(ART.GSOS -WZ Z (ART.ASS26/Z\-\-,ART.AWORKSGS|2 Z Z +ART.ASTUCESe%G\9\9-ART.DERNIERES [[/ART.DICTIONNAI2}Z8Z8-ART.DOMPUBLICo3\\-ART.EDITORIAL$ Z)Z)&ART.LQZ Z *ART.MACROS;Z Z *ART.PASCAL!d>ZZART.REALISATIONCL,L,Art.GS/OS: Le nouveau systme d'exploitation GS/OS -------------------------------------------------- Apple France doit sortir,au moment o j'cris ces lignes,le nouveau systme d'exploitation GS/OS,systme d'exploitation rserv l'Apple IIGS, La version franaise est annonce dans Apple le Magazine de Janvier 1989. La version qui sert de base mes commentaires est celle que j'ai obtenue auprs d'Apple,lors d'Apple Expo. Il s'agit de la version amricaine, la version franaise devrait prsenter peu  !"#$%&'()*+,-./01234 de changements et je pense que tout ce qui est crit ci-dessous restera valable. 1- Considrations Gnrales --------------------------- GS/OS a t crit en fonction du processeur 16 bits qui quipe la machine. Prodos 2.0 ne sortira pas,c'est lui le nouveau systme et il porte le numro 4.0. Tout ce qui est crit au standart Prodos fonctionne sous GS/OS,sans transfert ni adaptation particulire.il s'agit de compatibilit ascendante,il n'est absolument pas ncessaire de convertir les fichiers comme ce fut le cas lors du passage du DOS 3.3 Prodos. GS/OS utilise les disques sous Prodos directement. Le problme de fontionnement de certains logiciels du commerce,je pense des produits comme ceux de Version Soft et spcialement VS/COM 1.12,vient essentiellement de la protection contre la copie ou alors d'une programmation ne respectant pas les rgles dictes par Apple. GS/OS apporte deux innovations majeures par rapport ses prdcesseurs. La gestion de volume trs important et la capacit de reconnatre et de lire plusieurs formats venant d'autres systmes d'exploitation grce aux FST (File System Translator). GS/OS peut grer des volumes d'un peu plus de 4 milliards de caractres. de quoi contenir quelques encyclopdies...Un trs net plus compar aux 32 millions de caractres de Prodos. La gestion de disques durs dpassant 20 mga est dsormais la porte de l'Apple IIGS. A condition que votre carte SCSI de gestion de disque dur contienne bien une ROM rvision C. La mise niveau devrait tre faite en mme temps que l'introduction du systme d'exploitation. GS/OS a un systme de transfert de fichier qui lui ouvre les portes du monde extrieur. Toutes les possibilits avances ne sont pas encore disponibles sur la version dont je dispose. Actuellement,il lit les disques Prodos et le format High Sierra des CD ROM. La lecture du CD ROM ne se fait qu'avec une carte SCSI mise niveau comme pour le disque dur.Il est prvu,en outre,la lecture des disques Macincosh et MSDOS dans un deuxime temps,puis ceux sous DOS 3.3, CP/M Apple,Pascal USCD et enfin,pourquoi pas DOS 3.2,LISA,MAC 400K et SOS. Dans la guerre que se livrent les systmes actuellement,l'Apple II tiendrait plus que jamais son rle de machine ouverte,rle qui est la cl de son succs. Une autre amlioration par rapport Prodos 16 est l'installation la carte. C'est un systme d'exploitation capable de grer tout priphrique prsent ou futur,pour Apple IIGS,mais par le choix des drivers appropris,il peut tre adapt votre configuration personnelle et devient votre propre systme.Cela est intressant pour viter l'appel du disque 5p1/4 lorsqu'on ne s'en sert pas. Il suffit de se configurer deux systmes diffrents. 2- Le contenu des 2 disques --------------------------- Lors d'Apple Expo,pour GS/OS,on m'a remis 2 disquettes dont voici le catalogue. 2.a) La disquette systme ------------------------- Directory: /SYSTEM.DISK/ Filename Blocks Type Modified Created Length Subtype PRODOS________________________ 4 SYS 18-AUG-88 18-AUG-88 $5AC $2000 SYSTEM________________________ 2 DIR 30-DEC-88 18-AUG-88 $400 $0000 START.GS.OS_________________ 23 $F9 18-AUG-88 18-AUG-88 $2B87 $0007 GS.OS_______________________ 86 $F9 18-AUG-88 17-AUG-88 $ABB2 $CFD0 ERROR.MSG___________________ 10 $B5 18-AUG-88 18-AUG-88 $1063 $0100 FSTS________________________ 1 DIR 23-SEP-88 18-AUG-88 $200 $0000 PRO.FST___________________ 42 $BD 17-AUG-88 17-AUG-88 $51B9 $0000 CHAR.FST__________________ 4 $BD 17-AUG-88 17-AUG-88 $5AC $0000 DRIVERS_____________________ 1 DIR 23-SEP-88 18-AUG-88 $200 $0000 APPLEDISK3.5______________ 5 $BB 18-AUG-88 18-AUG-88 $645 $0102 CONSOLE.DRIVER____________ 14 $BB 17-AUG-88 17-AUG-88 $196A $0101 IMAGEWRITER_______________ 46 $BB 17-AUG-88 17-AUG-88 $5825 $0001 PRINTER___________________ 5 $BB 17-AUG-88 17-AUG-88 $6DD $0002 MODEM_____________________ 5 $BB 17-AUG-88 17-AUG-88 $712 $0002 PRINTER.SETUP_____________ 1 BIN 26-JUL-88 26-JUL-88 $B7 A=$0000 SYSTEM.SETUP________________ 1 DIR 23-SEP-88 18-AUG-88 $200 $0000 TOOL.SETUP________________ 1 $B6 17-AUG-88 17-AUG-88 $129 $0000 TS2_______________________ 30 $BC 17-AUG-88 17-AUG-88 $393E $0000 DESK.ACCS___________________ 1 DIR 23-SEP-88 18-AUG-88 $200 $0000 CACHE.NDA_________________ 6 NDA 9-AUG-88 9-AUG-88 $881 $0000 START_______________________ 133 S16 17-AUG-88 17-AUG-88 $10769 $0000 TOOLS_______________________ 2 DIR 23-SEP-88 18-AUG-88 $400 $0000 TOOL014___________________ 40 TOL 17-AUG-88 17-AUG-88 $4D78 $0000 TOOL015___________________ 20 TOL 17-AUG-88 17-AUG-88 $24DF $0000 TOOL016___________________ 18 TOL 17-AUG-88 17-AUG-88 $2179 $0000 TOOL021___________________ 26 TOL 17-AUG-88 17-AUG-88 $306F $0000 TOOL018___________________ 33 TOL 17-AUG-88 17-AUG-88 $3E56 $0000 TOOL020___________________ 15 TOL 17-AUG-88 17-AUG-88 $1BF2 $0000 TOOL022___________________ 8 TOL 17-AUG-88 17-AUG-88 $C2E $0000 TOOL028___________________ 8 TOL 7-JUL-88 7-JUL-88 $CC7 $0000 TOOL032___________________ 15 TOL 17-AUG-88 17-AUG-88 $1A84 $0000 TOOL029___________________ 5 TOL 16-JUN-88 16-JUN-88 $7AE $0000 TOOL027___________________ 27 TOL 17-AUG-88 17-AUG-88 $32AA $0000 TOOL026___________________ 9 TOL 17-AUG-88 17-AUG-88 $F3B $0000 TOOL025___________________ 13 TOL 17-AUG-88 17-AUG-88 $1753 $0000 TOOL023___________________ 24 TOL 17-JUN-88 17-JUN-88 $2CFB $0000 TOOL019___________________ 25 TOL 17-AUG-88 17-AUG-88 $2ECF $0000 FONTS_______________________ 1 DIR 23-SEP-88 21-JUL-88 $200 $0000 COURIER.10________________ 6 FON 27-NOV-86 5-MAY-87 $9B2 $0000 COURIER.12________________ 7 FON 27-NOV-86 5-MAY-87 $AF2 $0000 GENEVA.10_________________ 6 FON 27-NOV-86 5-MAY-87 $8AD $0000 GENEVA.12_________________ 7 FON 27-NOV-86 5-MAY-87 $AC3 $0000 HELVETICA.10______________ 6 FON 27-NOV-86 7-MAY-87 $972 $0000 HELVETICA.12______________ 7 FON 27-NOV-86 7-MAY-87 $BB8 $0000 SHASTON.16________________ 12 FON 22-APR-87 22-APR-87 $1556 $0000 TIMES.10__________________ 6 FON 27-NOV-86 11-MAY-87 $96E $0000 TIMES.12__________________ 7 FON 27-NOV-86 11-MAY-87 $B08 $0000 VENICE.14_________________ 9 FON 27-NOV-86 11-MAY-87 $E29 $0000 FONT.LISTS________________ 3 BIN 17-FEB-88 17-FEB-88 $221 A=$0000 P8__________________________ 32 SYS 9-AUG-88 9-AUG-88 $3C7D $0000 CLIPBOARD___________________ 1 NON 30-DEC-88 30-DEC-88 $2 $0000 FINDER.DEF____________________ 1 $C9 7-JUL-88 4-AUG-87 $52 $0000 ICONS_________________________ 1 DIR 23-SEP-88 21-JUL-88 $200 $0000 FINDER.ICONS________________ 32 $CA 25-JUL-04 8-JUL-87 $3CB0 $0000 APPLETALK_____________________ 1 DIR 23-SEP-88 18-AUG-88 $200 $0000 BASIC.SYSTEM__________________ 21 SYS 14-DEC-87 14-DEC-87 $2800 $0000 BASIC.LAUNCHER________________ 3 SYS 12-JUL-87 12-JUL-87 $393 $0800 Le disque systme est une version de GS/OS permettant de dmarrer sur les configurations les plus courantes,Apple IIgs avec lecteur 3,5p et imprimante ImageWriter.Pour une utilisation plus particulire,l'utilisateur trouvera les drivers dont il a besoin sur la deuxime disquette,la disquette outil. 2.b) La disquette outil ----------------------- Directory: /SYSTEM.TOOLS/ Filename Blocks Type Modified Created Length Subtype INSTALLER_____________________ 54 S16 18-AUG-88 18-AUG-88 $68EC $0000 ADV.DISK.UTIL_________________ 81 S16 17-AUG-88 17-AUG-88 $9FBB $0000 SYSTEM________________________ 1 DIR 23-SEP-88 17-AUG-88 $200 $0000 FSTS________________________ 1 DIR 23-SEP-88 17-AUG-88 $200 $0000 HS.FST____________________ 20 $BD 17-AUG-88 17-AUG-88 $2502 $2020 SYSTEM.SETUP________________ 1 DIR 23-SEP-88 17-AUG-88 $200 $0000 ATSETUP___________________ 1 $B6 17-AUG-88 17-AUG-88 $201 $0000 ATSTART___________________ 1 $BC 17-AUG-88 17-AUG-88 $13B $0000 ATINIT____________________ 1 $E2 16-JUN-88 16-JUN-88 $86 $0000 ATPATCH___________________ 14 $BC 16-JUN-88 20-APR-88 $19E1 $0000 ATRESPONDER_______________ 17 $BC 17-AUG-88 17-AUG-88 $1E85 $0000 SPLOAD____________________ 23 $BC 16-JUN-88 20-APR-88 $2A5A $0000 ATROM_____________________ 22 $BC 16-JUN-88 20-APR-88 $28AE $0000 FINDER.DATA_______________ 1 $C9 23-SEP-88 23-SEP-88 $AC $0000 DRIVERS_____________________ 2 DIR 23-SEP-88 17-AUG-88 $400 $0000 SCSI.DRIVER_______________ 14 $BB 17-AUG-88 17-AUG-88 $1925 $0131 APPLEDISK5.25_____________ 13 $BB 17-AUG-88 17-AUG-88 $1673 $010E UNIDISK3.5________________ 5 $BB 17-AUG-88 17-AUG-88 $62E $0104 IMAGEWRITER_______________ 46 $BB 17-AUG-88 17-AUG-88 $5825 $0001 IMAGEWRITER.LQ____________ 46 $BB 17-AUG-88 17-AUG-88 $581C $0001 LASERWRITER_______________ 74 $BB 17-AUG-88 17-AUG-88 $90EF $0001 PRINTER___________________ 5 $BB 17-AUG-88 17-AUG-88 $6DD $0002 MODEM_____________________ 5 $BB 17-AUG-88 17-AUG-88 $712 $0002 APPLETALK_________________ 7 $BB 17-AUG-88 17-AUG-88 $B14 $0003 APPLE.MIDI________________ 4 $BB 28-JUL-88 28-JUL-88 $450 $0300 CARD6850.MIDI_____________ 4 $BB 28-JUL-88 28-JUL-88 $40E $0300 EPSON_____________________ 45 $BB 17-AUG-88 17-AUG-88 $5616 $0001 PARALLEL.CARD_____________ 5 $BB 17-AUG-88 17-AUG-88 $662 $0002 AT.IW.PSETUP______________ 1 BIN 26-JUL-88 26-JUL-88 $B7 A=$0000 AT.IWLQ.PSETUP____________ 1 BIN 26-JUL-88 26-JUL-88 $B7 A=$0000 EPSON.PSETUP______________ 1 BIN 26-JUL-88 25-JUL-88 $B7 A=$0000 IW.PSETUP_________________ 1 BIN 26-JUL-88 26-JUL-88 $B7 A=$0000 IWLQ.PSETUP_______________ 1 BIN 26-JUL-88 26-JUL-88 $B7 A=$0000 LW.PSETUP_________________ 1 BIN 26-JUL-88 25-JUL-88 $B7 A=$0000 DESK.ACCS___________________ 1 DIR 23-SEP-88 17-AUG-88 $200 $0000 TOOLS_______________________ 1 DIR 23-SEP-88 17-AUG-88 $200 $0000 FONTS_______________________ 1 DIR 23-SEP-88 17-AUG-88 $200 $0000 APPLETALK_____________________ 1 DIR 17-AUG-88 17-AUG-88 $200 $0000 NAMER_______________________ 1 DIR 5-JUL-88 5-JUL-88 $200 $0000 MTXABS.0__________________ 31 BIN 28-JUL-87 16-APR-87 $3BDE A=$0800 NAMER.II__________________ 3 SYS 15-APR-88 15-APR-88 $3C7 $0000 NAMER.0___________________ 61 BIN 14-JUN-88 14-JUN-88 $7650 A=$0800 CHOOSER_____________________ 1 DIR 5-JUL-88 5-JUL-88 $200 $0000 CHOOSER.II________________ 3 SYS 15-APR-88 15-APR-88 $3DF $0000 CHOOSER5.OVR______________ 8 NON 13-JUN-88 13-JUN-88 $CC8 $0000 CHOOSER4.OVR______________ 7 NON 13-JUN-88 13-JUN-88 $AD8 $0000 CHOOSER3.OVR______________ 6 NON 13-JUN-88 13-JUN-88 $8F4 $0000 MTXABS.0__________________ 31 BIN 28-JUL-87 16-APR-87 $3BDE A=$0800 IWEM______________________ 61 TXT 18-APR-88 18-APR-88 $7715 R=$0000 CHOOSER2.OVR______________ 5 NON 13-JUN-88 13-JUN-88 $7C0 $0000 CHOOSER1.OVR______________ 4 NON 13-JUN-88 13-JUN-88 $5F4 $0000 CHOOSER.0_________________ 61 BIN 13-JUN-88 13-JUN-88 $77E2 A=$0800 ICONS_________________________ 1 DIR 17-AUG-88 17-AUG-88 $200 $0000 SCRIPTS_______________________ 2 DIR 23-SEP-88 17-AUG-88 $400 $0000 ADV.DISK.UTIL_______________ 1 TXT 28-JUL-88 26-MAY-88 $177 R=$0000 APPLE.MIDI__________________ 1 TXT 28-JUL-88 16-MAY-88 $18C R=$0000 APPLEDISK5.25_______________ 1 TXT 28-JUL-88 7-JUL-88 $180 R=$0000 ATIMAGEWRITER_______________ 4 TXT 28-JUL-88 17-MAY-88 $473 R=$0000 ATIMAGEWRITERLQ_____________ 4 TXT 28-JUL-88 17-MAY-88 $481 R=$0000 CARD6850.MIDI_______________ 1 TXT 28-JUL-88 6-JUN-88 $1A1 R=$0000 CATALOG_____________________ 1 TXT 28-JUL-88 19-MAY-88 $10C R=$0000 CDROM_______________________ 1 TXT 28-JUL-88 25-MAY-88 $19F R=$0000 CHOOSER_____________________ 5 TXT 28-JUL-88 16-MAY-88 $653 R=$0000 DCIMAGEWRITER_______________ 3 TXT 1-AUG-88 16-MAY-88 $2AC R=$0000 DCIMAGEWRITERLQ_____________ 3 TXT 28-JUL-88 16-MAY-88 $2BA R=$0000 EPSON_______________________ 3 TXT 8-AUG-88 14-JUN-88 $2F8 R=$0000 FONTS_______________________ 3 TXT 1-AUG-88 19-MAY-88 $3AE R=$0000 INSTAL.SYS.FILE_____________ 11 TXT 11-AUG-88 20-JUL-88 $124A R=$0000 INSTALL.ALL_________________ 17 TXT 11-AUG-88 20-JUL-88 $1E31 R=$0000 LASERWRITER_________________ 4 TXT 28-JUL-88 25-JUL-88 $42B R=$0000 NAMER_______________________ 4 TXT 28-JUL-88 16-MAY-88 $424 R=$0000 SCSI.HARD.DISK______________ 1 TXT 28-JUL-88 28-JUL-88 $172 R=$0000 UNIDISK3.5__________________ 1 TXT 28-JUL-88 28-JUL-88 $17C R=$0000 2.c) Quelques commentaires -------------------------- GS.OS occupe 3 fichiers : START GS.OS,GS.OS et ERROR.MSG. P16 a disparu,il tait le coeur de l'ancien systme. Par rapport la version 3.1 du systme franais,le dossier SYSTEM.SETUP a entirement t revu. GS/OS ne fonctionne qu'avec la ROM de la mise jour de l'anne dernire.(NDLR: Si vous ne l'avez pas fait etc...). On a la possibilit de prendre en compte de nouveaux priphriques: L'Imagewriter LQ ( D'aprs un possesseur de cette imprimante,ce driver pose quelques problmes).l'interface MIDI Apple ou la carte MIDI,les imprimantes sries FX,RX et LX d'Epson en mode 80 colonnes.Les imprimantes parallles avec le driver PARALLEL.CARD.Le lecteur de CD-ROM. Pour voir la version du systme et celle des outils,il suffit d'appuyer sur la barre d'espace pendant le boot de GS/OS,un cran en mode texte s'affiche. les outils,d'aprs les dates de cration semblent tous avoir t revus et trois outils supplmentaires apparaissent : L'outil numro 26,le Note Sequencer. L'outil numro 29,le ACE (Audio Compression and Expansion Toolkit). L'outil numro 32, le Midi Tool Set . Un nouvel accessoire de bureau (NDA) est dj implant,il s'agit de CACHE.NDA. Cet accessoire dfinit la capacit du cache mmoire utilis par GS/OS. Utilit relle ? Le FINDER passe de la version 1.0 1.2 PRODOS 8 passe de la version 1.4 1.7 BASIC.SYSTEM passe de la version 1.1 1.2 Les fontes de caractres elles,n'ont pas chang. Pour AppleTalk,n'tant pas quip du tout,je ne peux rien dire.Les fichiers le concernant peuvent s'enlever sans problmes. Les systmes de transfert de fichiers (FST) sont au nombre de trois. PRO.FST et CHAR.FST sur le disque systme et HS.FST sur le disque outil. PRO.FST s'occupe des disques formatts sous Prodos. CHAR.FST des priphriques communiquant avec des caractres: le clavier,l'cran,les modems et les imprimantes,CHAR.FST utilise le driver CONSOLE.DRIVER. HS.FST assure la communication avec les CD.ROM au standart High Sierra. Sur la disquette outil,un utilitaire de formatage et de partitionnement de disque nomm ADV.DISK.UTIL, INIT.UTIL plutt inutile du systme 3.1 a disparu. L'Advanced Disk Utility a quelques caractristiques qui mritent qu'on s'y arrte. Aprs avoir lanc ce programme crit en TML Pascal ( comme GS Infos !),on se retrouve devant une fentre de dialogue contenant 7 boutons. Le bouton volume permet de choisir la disquette ou le disque dur dont on va s'occuper. Une fois le bon volume choisi,le bouton Info nous donne les indications essentielles, le nom du volume,la taille occupe,la place disponible,le type de systme utilis par le volume,le type de priphrique dans lequel il se trouve,le partitionnement s'il y a lieu. Les trois boutons suivants sont manipuler avec prcaution,le bouton Initialize ouvre une premire bote dans laquelle il demande le nom,puis une deuxime ou le format choisi et le type de formatage sont demands.Pour une disquette 3,5p le seul format propos est Prodos avec 3 options ( 800k 2.1,800k 4.1,400k 2.1).Le bouton Erase aprs confirmation efface la disquette en supprimant ses chemins d'accs, mais les fichiers sont encore l.Le bouton Zero toujours aprs confirmation provoque un effacement total du disque,un message prvient l'utilisateur quant la lenteur de l'opration. J'ai fait un essai sur un disque 3,5p plein craquer : 1'25" secondes. Le septime bouton,c'est l'issue de secours,le bouton Cancel. On peut rester perplexe devant l'option 800k 2.1 ou 4.1 lorsque l'on veut initialiser un disque. Il s'agit d'un choix possible par l'utilisateur de l'interleaving de sa disquette. En bon franais,nous dirions plutt interfoliation. L'interfoliation est une ncessit due aux caractres physiques des lecteurs de disque. Les ttes de lecture-criture restent fixes tandis que la disquette tourne,elles ne se dplacent que du centre vers le bord.Entre chaque opration de lecture ou d'criture,la disquette tournera pour rien. Si on crivait rellement chaque bloc les uns la suite des autres, il faudrait attendre que la fin du premier repasse sous la tte pour crire le suivant. Les temps d'accs deviendraient alors prohibitifs.Les blocs se suivent logiquement, mais physiquement,le bloc 2 ne suit pas le bloc 1,d'autres sont intercals entre les deux,suivant une progression prcise.Cet arrangement particulier qui sous Prodos rduit la distance entre deux blocs trois seizime de tour s'appelle l'interleaving.Il optimi- -se la vitesse d'utilisation. Pourquoi deux types dans GS/OS ? Parce que cela dpend du priphrique connect.Le choix 2.1 est plus rapide avec un lecteur 3,5P 800k mais plus lent avec un unidisk 3,5p,l'ancien modle,avec lequel il faut utiliser un disque initialis suivant le type 4.1. Le choix moyen terme,sur une disquette dont on ne sait sur quel lecteur elle sera utilise est le 4.1. 2.d) Installation de GS/OS -------------------------- GS/OS est ,je le rpte,livr sur deux disquettes. Avant qu'il devienne votre systme,il faut l'adapter votre configuration,aux priphriques dont vous disposez. Pour cela,sur la disquette outil,vous trouverez un programme spcialis dans cette tche,INSTALLER. INSTALLER permet de mettre dans la disquette systme les fichiers qui vous intressent. Prenons l'exemple de la configuration que je possde: Un Apple IIGS,un clavier,une carte modem,deux lecteurs 3.5,un lecteur 5.25,un disque dur de 20 M,une imprimante ImageWriter II,connecte directement. Le systme de base ne reconnat pas le disque 5.25 et le disque dur,les drivers pour ces deux priphriques ne sont pas implants.Il faut donc les ajouter. Avant tout travail avec le systme,faire une copie de sauvegarde des deux disques et mettre les originaux l'abri.Une fois ces copies faites,protgez-les contre l'criture et bootez GS/OS. Dans le disque SYSTEM.TOOLS,lancer ADV.DISK.UTIL. Nous allons formater notre futur systme. D'abord nommons le MON.SYSTEME, puis initialisons le en 2.1 car il n'y a pas d'Unidisk 3.5 connect,gain 10 secondes au boot. Ma disquette est prte recevoir le systme. Retournons sous le Finder de GS/OS et copions le SYSTEM.DISK sur MON.SYSTEME,en faisant glisser l'icne du premier sur le deuxime. Le dialogue de copie apparat,une fois la copie termine,MON.SYSTEME est identique SYSTEM.DISK. Il faut maintenant installer le driver du disque 5.25 et du disque dur. Toujours sous Finder,lancer le programme INSTALLER du disque SYSTEM.TOOLS. D'abord,obtenir dans la fentre de gauche,en haut,le nom MON.SYSTEME en cliquant sur volume.Puis dans la fentre de droite,slectionner SCSI Hard Disk et cliquer sur install. Le driver du disque dur est alors install la bonne place sur MON.SYSTEME. Mmes actions pour le disque 5.25. Le GS/OS adapt notre configuration est alors oprationnel,on peut encore sous Finder le dbarrasser d'Appletalk en passant le fichier la corbeille et en la vidant. Pour ma part, le bruit du lecteur 5.25 lu systmatiquement par le Finder m' horripile, j'utilise donc deux systmes dont l'un ne contient pas le driver de ce lecteur quand il ne me sert pas. Voil,notre premire approche se termine. Il reste quelques points qui seront dvelopps dans le premier article suivant l'apparition du GS/OS franais, la partition des disques de l'Adv.Disk.Util et les fichiers "scripts" de l'Installer. Art.Ass2: L'assembleur ( Deuxime partie) ------------------------------- Pour les disques GS Infos 1, envoys avant le 14/02/89 : La numrotation des derniers paragraphes de la premire partie est trs farfelue, certains lendemains de rveillon sont difficiles... L'entre dans le mini-assembleur devrait avoir le numro 2.c Prsentation d'un programme 2.d Utilisation du mini-assembleur 2.e La valeur de l'opcode LDA est $0A et non $03. 3- les registres du 6585789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abm16 ------------------------- 3.a L'accumulateur ------------------ Le plus important des registres est l'accumulateur ou registre A en 8 bits, registre C en 16 bits. Carrefour du processeur, les autres registres vont souvent le lire, il sert pour effectuer les oprations arithmtiques, addition et soustraction, et les oprations logiques. Il fonctionne en 8 ou 16 bits. La valeur qu'il peut contenir est au maximum $FF en mode 8 et $FFFF en mode natif. 3.b Les registres d'index X et Y -------------------------------- Ces deux registres peuvent tre utiliss comme l'accumulateur pour utiliser des donnes. Mais leur usage normal est celui de registres d'index. Un registre d'index a son contenu qui peut s'ajouter une adresse prcise, cette opration peut se faire de plusieurs faons et permet un dplacement automatique. Ceci est trs utile pour travailler sur des donnes ranges dans des listes ou tableaux. Ces registres fonctionnent sous 8 ou 16 bits. 3.c Le registre d'tat du processeur ------------------------------------ Ce registre est appel P. Il est sur 8 bits, 8 bits qui renseignent sur l'tat du systme interne. Chaque bit est un drapeau indicateur. Registre d'tat du 65816 7 6 5 4 3 2 1 0 BIT N V M X D I Z C FLAGS ( Drapeaux) - - 1 B - - - E BITS FICTIFS lis au changement de mode ou au Break Une phrase mnmonique en Anglais permet de s'en souvenir : Not Very Many eXciting Dates Interest Zombie Clients Easily C --> Carry, indicateur de retenue E --> Emulation, indicateur de mode 0 en mode natif, 1 en mode 8 bits. Z --> Zero, 1 si le rsultat est nul I --> IRQ Disable, inhibition d'interruption 1 si l'interruption est ihnibe D --> Dcimal, 1 si commut en mode dcimal. X --> Index select register, 1 si on est en mode 8 bits, 0 en natif B --> Mode mulation, 1 en mode mulation,0 en mode natif M --> Memory and A select, 1 si l'accumulateur A sur 8 bits, 0 si A sur 16 V --> Overflow, 1 si dbordement N --> Negative, 1 si le rsultat est ngatif L'indicateur d'mulation est fictif, il est obtenu indirectement par change avec le bit de retenue. L'instruction XCE est faite pour cela. 3.d Le pointeur de pile ----------------------- Le pointeur de pile ( Stack) ou S est un registre qui contient l'adresse du sommet de la pile. Il pointe sur la prochaine adresse disponible sauvegarde au sommet de la pile, il faut bien avoir l'esprit que dans ce registre cela se passe comme pour une pile d'assiettes. Seule la dernire au-dessus est disponible et on empile toujours par-dessus. Ce registre est soit sur 9 bits en mode mulation ou 16 en mode natif. En mode natif, il fait 16 bits diviss en une partie haute SH ( Stack High Byte) et une partie basse SL ( Stack Low Byte). En mode mulation, le premier bit de SH est 1 et tous les autres 0. --------S-------- Stack Pointer ---SH--- ---SL--- Stack High Byte - Stack Low Byte FEDCBA98 76543210 Bits dddddddd dddddddd Mode natif ( d = disponible) 00000001 dddddddd Mode mulation 3.e Le compteur ordinal ----------------------- Le compteur ordinal ou PC ( Program Counter) contient l'adresse de la prochaine instruction excuter. En mode mulation,il est sur 16 bits et se divise en deux parties, une partie basse contenant les 8 octets les plus droite PCL ( Program Counter Low) et une partie haute contenant les 8 octets les plus gauche PCH ( Program Counter High). En mode natif, il est associ un autre registre, le Program Bank Register ( PBR). Ce registre sur 8 bits contient le poids le plus fort de l'adresse. En effet, la mmoire adressable est divise en bancs de 64 KiloOctets chacun. L'adresse de chacun de ces bancs est code dans le PBR, ajout gauche du PC, il permet l'accs toute la mmoire. 3.f Le registre de page de donnes ---------------------------------- Le Data Bank Register ( DBR) est un registre de 8 bits utilis avec les registres X ou Y en mode natif, il permet l'adressage sur 24 bits. En mode mulation, il mmorise l'adresse par dfaut du banc mmoire de 64 K pour le transfert. 3.g Le registre direct ---------------------- Le Direct Register ou D est une extension de la page zro, celle-ci peut tre place o l'on veut avec le 65816, alors qu'elle est la premire avec le 6502. Ce registre est un faux 24 bits adressable sur 16 bits en mode natif, diviss en deux parties comme ci-dessous : -------- ---DH--- ---DL--- Direct Register High - Direct Register Low 00000000 dddddddd dddddddd En mode mulation, seul DL est disponible. 4- Les modes d'adressage du 65816 --------------------------------- 4.a Les types d'adressage -------------------------- " L' adressage, c'est la spcification dans une instruction de l'emplacement de l'oprande sur lequel l'instruction va oprer." Rodnay Zaks Autrement crit, c'est la technique pour donner l'adresse de l'oprande dont on va s'occuper...et il y a plusieurs faons de le faire, faons qui peuvent se combiner entre-elles. L'adressage implicite : L'instruction ne contient pas effectivement l'adresse de l'oprande. Il opre en gnral sur des registres. L'adressage immdiat : L'instruction est suivie d'une valeur dfinie l'avance. Il est signal par le dise ou la livre suivant le type de clavier amricain ou franais. L'adressage absolu : L'instruction est suivie d'une adresse prcise. L'adressage direct : C'est l'adressage en page 0 rserver aux donnes auxquelles on veut accder rapidement. L'adressage relatif : C'est un adressage o on spcifie un branchement en l'accompagnant d'un dpla- -cement. Cela permet de faire des programmes pour lesquels la place en mmoire est indiffrente. L'adressage index : C'est l'adressage qui permet d'accder aux blocs successifs d'une liste. L'ins- -truction spcifie la fois un registre d'index et une adresse. Le plus souvent le contenu du registre est ajout l'adresse de dpart pour donner l'adresse de destination. L'adressage indirect : Certaines fois, il est ncessaire d'accder un bloc de donnes, ce bloc de donnes peut changer de taille et de place. L'adresse de dbut de bloc est place un emplacement fixe et l'accs au bloc se fera par cet endroit. 4.b Les types courts ou longs ----------------------------- Du fait de son foctionnement en deux modes, certains adressages ont un mode court en mulation 6502 et long cause des bancs mmoires en mode natif. Les adjectifs long et court renvoient la taille des opcodes utiliss, opcode qui dfinissent la fois l'instruction et le mode d'adressage. Le passage en mode long augmente l'opcode de un octet. 4.c Les adressages disponibles et leurs symboles ------------------------------------------------ En mode natif, on dispose de 25 modes d'adressages : Implicite _____________________________ i Immdiat ______________________________ ou le dise. Absolu ________________________________ a Absolu long ___________________________ al Absolu indirect _______________________ (a) Absolu indirect long __________________ (al) Absolu index avec X __________________ a,X Absolu index avec Y __________________ a,Y Absolu index indirect ________________ (a,X) Absolu index long avec X _____________ al,X Accumulateur __________________________ A Direct ________________________________ d Direct indirect _______________________(d) Direct index avec X __________________ d,X Direct index avec Y __________________ d,Y Direct indirect index avec X _________ (d,X) Pr-indexation Direct indirect index avec Y _________ (d),Y Post-indexation Direct indirect long __________________ Direct indirect long index avec Y ____ ,Y Block dplacement _____________________ XYa De la pile ____________________________ S Relatif la pile _____________________ r,S Relatif la pile indirect index avec Y_ (r,S),Y Relatif au compteur ordinal____________ r Long relatif au compteur ordinal_______ rl L'usage de ces modes d'adressage sera tudi petit petit, lors de nos exercices pratiques, les voir fonctionner vaut toutes les explications. Ainsi s'achve la partie thorique de ce numro. Allons faire un tour dans le moniteur. 5- Retour au moniteur: pour quelques commandes de plus. ------------------------------------------------------- Vous savez entrer dans le moniteur, crire une valeur, lister une partie de la mmoire et retourner sous Basic, mais celui-ci dispose d'autres possibilits que nous allons passer en revue,exercices l'appui. 5.a. Prliminaires ------------------ Pour avoir quelque chose examiner dont nous soyons certains,nous allons implanter une chane de caractres l'adresse $300, c'est dire 768 en dcimal. Pour cela nous allons utiliser un court programme Basic. 10 HOME 20 PHRASE$ = "MONITEUR EN COURS D'ESSAI" 30 FOR I = 1 TO 25 40 POKE 767 + I, ASC(MID$ ( PHRASE$,I,1)) + 128 50 NEXT 60 FOR J = 793 TO 900 70 POKE J,0 80 NEXT 90 POKE 901,198:POKE 902,201:POKE 903,206 100 END Ligne 10 --> on nettoie l'cran, une vieille habitude. Ligne 20 --> criture de la chane de caractres dans une variable. Ligne 30 50 --> boucle implantant la chane PHRASE$ , partir de l'adresse 768, dans la mmoire. Ligne 60 80 --> boucle remplissant la mmoire avec la valeur 0 de l'adresse 793 900 Ligne 90 --> On crit le mot FIN partir de l'adresse 901. Ce cour programme est un programme qui crit directement dans la mmoire de l'adresse 768 903 en dcimal. Il se trouve sur la disquette sous le nom ESSAI1.BAS dans le dossier EXERCICES. Pour le faire excuter, tapez: sous BASIC.SYSTEM -->RUN /GS.INFOS/EXERCICES/ESSAI1.BAS sous Finder --> Double-clic sur l'icne du fichier ESSAI1.BAS et une fois cela fait, tapez CALL-151 pour aller dans le moniteur, l'* apparat. 5.b Quelques rappels utiles ----------------------------- Le langage machine est hexadcimal, il manipule des nombres qui s'crivent avec les chiffres 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. F en hexadcimal correspond au nombre 15 en dcimal. Comme notre numration habituelle est dcimale, il faut apprendre calculer en base 16 (Hexadcimale) et passer de l'une l'autre. Pour mmoire, on convertit de dcimal en hexadcimal comme suit: On divise le nombre par 16 et les quotients entiers obtenus successivement jusqu' ce que le dernier soit infrieur 16. Le dernier quotient correspond l'unit la plus grande de notre nombre hexadcimal, il faut donc l'crire le plus gauche. Les autres sont les restes des divisions en remontant vers la premire. Si notre reste vaut de 10 15 on crit les lettres de A F la place. On marque le signe $ devant le nombre pour ne pas le confondre avec un dcimal. Soit 1385 convertir 1385:16= 86 reste 9 86:16= 5 reste 6 ---> $569 Soit 16354 16354:16= 1022 reste 2 1022:16= 63 reste 14 63:16= 3 reste 15 --->$3FE2 EXERCICE : Convertissez 3254 et 65432 en nombres hexadcimaux. Le passage de l'hexadcimal au dcimal ncessite un petit retour sur la constitution d'un nombre. Soit le nombre hexadcimal $5413 le remettre en dcimal c'est calculer son nombre d'units. Chaque changement d'unit reprsente une multiplication par 16 supplmentaire,puisque les units sont groupes par paquets de 16. En dcimal,elle sont groupes par paquet de 10 ce qui vite les calculs ! 3 reprsente 3 units__________________3 1 reprsente 1*16 units_______________16 4 reprsente 4*(16*16) units__________ 1024 5 reprsente 5*(16*16*16) units_______ 20480 Maintenant, il suffit de tout additionner. 20480+1024+16+3 = 21523 Le nombre hexadcimal $5413 s'crit 21523 en dcimal. EXERCICE: Convertissez $6A8E en dcimal. 5.c Les commandes de calcul --------------------------- Le moniteur de notre Apple IIGS fait ces conversions trs bien et nous vite de longs et fastidieux calculs. CONVERTIR UN NOMBRE DE DECIMAL EN HEXADECIMAL --> Signe= Nbre Dc Retour *=1394 et retour l'ordinateur affiche Hex-> $00000572 EXERCICE: Vrifiez vos conversions de 3254 et 65432 CONVERTIR UN NOMBRE D'HEXADECIMAL EN DECIMAL --> Nbre Hex Signe= Retour *0356= et retour On n'crit pas le signe $ l'ordinateur affiche Decimal -> 854 854 et = { et } EXERCICE: Vrifiez la conversion de $6A8E ADDITIONNER 2 NOMBRES HEXADECIMAUX --> Nbre Signe+ Nbre Retour *236+635 Retour L'ordinateur affiche ->$0000086B SOUSTRAIRE 2 NOMBRES HEXADECIMAUX --> Nbre Signe- Nbre Retour *58C-2DE Retour L'ordinateur affiche ->$000002AE MULTIPLIER 2 NOMBRES HEXADECIMAUX --> Nbre Signe* Nbre Retour *23D8*1542 Retour L'ordinateur affiche ->$0000000002F9F5B0 DIVISER 2 NOMBRES HEXADECIMAUX --> Nbre Signe_ Nbre Retour Le signe "_" est l'underscore, il est avec le trait d'union, on l'obtient en position majuscules. Il s'agit d'une division quotient entier. L'ordinateur affiche le reste et le quotient. *56D8_55A Retour L'ordinateur affiche R->$00000138 Q->$00000010 EXERCICES : Entranez vous faire les quatre oprations plusieurs fois. 5.d Les commandes d'examen de la mmoire ---------------------------------------- Si vous avez interrompu la session, il faut excuter le programme Basic ESSAI1.BAS nouveau ( Voir plus haut). EXAMINER UNE SEULE ADRESSE --> BANC/ADRESSE Retour Nous savons qu'il y a le caractre M l'adresse 768 en dcimal ou $300 en hxadcimal,il faut mettre les valeurs en hxadcimal. La valeur de M est CD. *00/0300 et Retour L'ordinateur affiche 00/0300 CD-M EXERCICE: Cherchez la valeur reprsentant la lettre I. N'oubliez pas de calculer l'adresse en hexadcimal, elle correspond au nombre dcimal 902 pour le I du mot FIN. REMARQUE: Lorsque vous tes dans un banc mmoire prcis, vous n'tes pas oblig de retaper celui-ci pour examiner une autre de ses adresses,faites: *303 Retour Vous devez revoir le code de I, il s'agit de celui du mot MONITEUR. EXAMINER UN BLOC D'ADRESSES --> BANC/ADRESSE POINT BANC/ADRESSE Retour La remarque plus haut est aussi valable ici *00/300.00/387 ou si vous tes dj en banc 0 ( ce qui est le cas) 300.387 L'ordinateur affiche 00/0300 : CD CF CE C9 D4 C5 D5 D2 - MONITEUR 00/0308 : A0 C5 CE A0 C3 CF D5 D2 - EN COUR 00/0310 : D3 A0 C4 A7 C5 D3 D3 C1 - S D'ESSA 00/0318 : C9 00 00 00 00 00 00 00 - I....... Suit des lignes de 00 00/0380 : 00 00 00 00 00 C6 C9 CE - .....FIN Cet examen de la mmoire nous permet de vrifier que notre petit programme Basic fait bien son travail. Il a bien install de l'adresse 768 ($300) 903 ce ($387) ce qu'il devait y mettre. MODIFIER UNE OU UN BLOC D'ADRESSES --> BANC/ADRESSE: Codes Hexa Retour *00/8000: C2 CF CE CA CF D5 D2 et retour Faire 8000.8006 et retour L'ordinateur affiche 00/8000: C2 CF CE CA CF D5 D2 __-BONJOUR Attention, il ne faut pas modifier n'importe quoi n'importe o sous peine d'tre oblig d'teindre l'ordinateur et de le rallumer. Quittons le moniteur jusqu'au prochain cours et entrons dans le mini-assembleur. Tapez ! aprs l'astrisque et Retour. 3- Le programme du jour ----------------------- La dernire fois nous nous tions quitts sur ces mots: " Ce n'est pas plus difficile que le 10 PRINT "BONJOUR" du Basic..." Alors, nous allons crire le programme Assembleur qui affiche une chane de caractres l'cran. Pour le moment nous travaillons en mode texte, le mode graphique natif impose d'initialiser les outils que l'on utilise. Construisons la base avant d'attaquer le sommet. Objectif gnral--> Je veux que l'ordinateur affiche BONJOUR Je dispose dans la machine d'un certain nombre de routines venues de l'AppleII et je vais en utiliser deux: Celle qui efface l'cran, quivalent du HOME Basic l'adresse $FC58. Celle qui affiche un caractre l'adresse $FDED. Pour crire BONJOUR il faudra donc - Nettoyer l'cran - Mettre la premire lettre dans l'accumulateur A - Afficher cette lettre - Mettre la suivante dans l'accumulateur - Afficher cette lettre - Et ainsi de suite jusqu' la dernire - Terminer le programme par l'instruction RTS Entrez dans le moniteur aprs avoir lanc Basic.System par Call-151 puis tapez ! et Retour pour entrer dans le mini assembleur. Entrez ce programme comme nous l'avons fait dans la premire leon. !00/8000:JSR$FC58 Appel de la routine qui nettoie l'cran ! LDA$C2 On met la lettre B dans l'accumulateur,(Adressage immdiat) de $C2 ! JSR$FDED Appel de la routine qui affiche le caractre contenu dans l'accumulateur ! LDA$CF Lettre O ! JSR$FDED ! LDA$CE Lettre N ( Ds la 2me ligne ATTENTION l'espace aprs le ! ) ! JSR$FDED ! LDA$CA Lettre J ! JSR$FDED ! LDA$CF Lettre O ! JSR$FDED ! LDA$D5 Lettre U ! JSR$FDED ! LDA$D2 Lettre R ! JSR$FDED ! RTS Fin de programme Vrifions les codes en examinant la mmoire. *8000.8027 L'ordinateur doit afficher 00/8000: 20 58 FC A9 C2 20 ED FD 00/8008: A9 CF 20 ED FD A9 CE 20 00/8010: ED FD A9 CA 20 ED FD A9 00/8018: CF 20 ED FD A9 D5 20 ED 00/8020: FD A9 D2 20 ED FD 60 -- SI vous remarquez des erreurs, reprez l'adresse, modifiez la mmoire comme on l'a vu plus haut et vrifiez nouveau. Tapez *8000G BONJOUR doit s'crire en haut de l'cran, sinon il faut tout revoir soigneusement. Notre programme remplit donc son office, mais on ne peut pas dire qu'il soit bien optimis. On doit pouvoir chapper l'criture rptitive du JSR $FDED. Notre 65816 dispose d'autres registres que l'accumulateur A, dont un registre d'index X qui va nous tre trs utile. Pour amliorer notre programme, il va nous falloir 4 nouvelles instructions et le mode d'adressage index par X. Le voici avec quelques commentaires,entrez-le: !00/8000:LDX$06 met la valeur 6 dans le registre X en adressage immdiat. ! LDA$800F,X met dans A la valeur mise une adresse que l'on obtient en ajoutant la valeur contenue dans X $800F. C'est l'adressage index par X et l'entre de notre premire boucle en assembleur. ! BEQ$800E Le programme va l'adresse $800E quand le contenu de X vaut 0. BEQ signifie Branch on EQual, branchement si zro. Sortie de la boucle! ! JSR$FDED On affiche le contenu de A ! DEX On enlve 1 au contenu de X .DEX est l'instruction qui dcrmente, diminue le contenu de X de 1. ! JMP$8002 On retourne l'adresse $8002. JMP est une instruction de saut une adresse. Un GOTO quoi! ! RTS Fin du programme Il manque la chane de caractres,nous allons la mettre directement dans la mmoire et l'envers. Retour sous moniteur, tapez Retour devant ! *00/800F: D2 D5 CF CA CE CF C2 Nous la mettons l'envers, car notre programme commence par afficher la valeur se trouvant l'adresse 8015, (800F,X) comme X vaut 6 au premier passage donne l'adresse 8015. Ensuite, X diminue de 1, c'est donc la valeur de l'adresse 8014 qui est affiche et lorsque X vaut 0, l'instruction BEQ envoie le programme l'adresse 800E o il rencontre le RTS et s'arrte. Avant de le lancer, vrifions le, tapez: *8000.8015 et Retour L'ordinateur doit afficher: 00/8000 : A2 06 BD 0F 80 F0 07 20 00/8008 : ED FD CA 4C 02 80 60 D2 00/8010 : D5 CF CA CE CF C2 Aprs correction s'il y a lieu, lancez le en crivant: *8000G et Retour L'ordinateur doit crire BONJOUR sans nettoyer l'cran l'appel $FC58 n'est pas dans ce programme. Dsassemblons-le, pour faire cela crivez: *8000L et retour L'ordinateur affiche: 00/8000 :A2 06 LDX 06 00/8002 :BD 0F 80 LDA 800F,X 00/8005 :F0 07 BEQ 800E +07 00/8007 :20 ED FD JSR FDED 00/800A :CA DEX 00/800B :4C 02 80 JMP 8002 00/800E :60 RTS 00/800F :D2 D5 CMP(D5) 00/8011 :CF CA CE CF CMP CFCECA 00/8015 :C2 ----etc----------- On retrouve bien notre programme, sauf partir de $800F o le dsassembleur essaie de traduire la chane de caractres RUOJNOB en instructions. C'est l'examen par bloc mmoire qui permet de retrouver les adresses des zones de texte et qui permet ensuite de dsassembler utilement. Pour clore cette sance, un petit problme rsoudre: Ecrivez un programme utilisant l'adressage index par X, dbutant l'adresse $300 et crivant aprs avoir nettoy l'cran, APPLE II FOR EVER. les codes crans des lettres majuscules vont de $C1 pour A $DA pour Z. Elles sont ranges dans l'ordre alphabtique. Le code de l'espace est A0. Art.Aworksgs: AppleWorks GS-premire partie) -------------------------------------------- Ca y est le bb de StyleWare, rcupr par Claris est sorti. C'est un gros et beau bb. Un logiciel intgr comme on n'en avait jamais vu dans la galaxie Apple. Son nom ne doit pas prter confusion, Appleworks GS est tout fait autre chose qu'Appleworks et n'est pas une extension de ce dernier. Prsentation du logiciel ------------------------ La version disponible en France et difArt.Astuces: GS trucs et astuces --------------------------------- TIRER UN NOMBRE AU HASARD AU DEMARRAGE en Applesoft sous P8 Envoy par H.Thouvenin crit par M. Matri.( Apple IIGS ou IIe avec carte horloge) 60000 Poke 800,32:Poke 801,0:Poke 802,191:Poke 803,130:Poke 804,0:Poke 805,0: Poke 806,96 60010 Call 800: A = Peek (49041) + Peek (49040) + Peek (49043) + 7 * Peek (49042) 60020 R = A - (INT ( A/30)*30)+1 60030 Print R : Rem R est le nombre tir au hasard. MEMORY PEEKER et VISIT dfghijklmnopqrstuvwxyznopqrstuvwxyz{MONITOR les 2 CDA de la ROM 01. Pour accder un CDA, il faut taper la squence de commande, Pomme Ouverte, Control, Esc, en appuyant simultanment sur ces trois touches, puis slectionner le CDA choisi en dplaant l'affichage inverse avec les flches et pour terminer, valider le choix en tapant sur Retour. Pour installer ces CDA, vous avez deux mthodes. La premire consiste placer dans le fichier SYSTEM.SETUP du dossier SYSTEM de votre disquette systme, le fichier REMEMBER crit et envoy par Yvan Koenig, il est dans le dossier programmes de GS Infos n2. Cette mthode installera Visit Monitor et Memory Peeker chaque fois que vous lancerez votre systme. Ce petit programme a d'autres vertus,voir la fin de l'article. La deuxime mthode, temporaire celle-l, consiste se mettre en Basic, en cliquant sur BASIC.SYSTEM, puis entrer dans le moniteur en crivant CALL-151, l'toile apparait, tapez alors le symbole dise ou livre (# ou ) et Retour, l'installation est termine, faire Pomme-ouverte,Control et Esc pour vrifier, vous devez voir crit Visit Monitor et Memory Peeker sur le tableau de commande des CDA. Utilisation de Visit Monitor ---------------------------- Une premire utilisation , Un petit tour dans le menu des accessoires par Pomme-Ouverte Control Esc et l'accs au moniteur, et aussi au mini-assembleur est ouvert. Une diffrence toutefois, faites bien attention de ne pas taper control-C ou Q pour sortir du moniteur sous peine de plantage immdiat. Bien sortir par la squence Control-Y-Retour, comme c'est indiqu ds l'entre dans Visit Monitor, pour retourner au menu des accessoires. Le principal avantage de ce CDA est de pouvoir accder n'importe quelle adresse tout moment et de pouvoir comprendre ce qui se passe. Un outil apprciable pour celui que la mmoire du GS intresse. Vous pouvez aussi videmment profiter de toutes les fonctions du moniteur, fonctions dont une partie a dj t dcrite dans GS Infos. Utilisation de Mmory Peeker ---------------------------- Ds l'entre dans Memory Peeker, un menu est affich : U = used list P = purge list F = free list Q = quit Pressez sur Q renvoie au menu des accessoires, les trois autres fonctions traitent les blocs mmoires en fournissant des informations sur chacun. Pour bien comprendre ces fonctions, Il n'est pas inutile de prciser comment le GS gre sa mmoire. L'outil Memory Manager est charg de ce travail. A l'heure actuelle, le maximum de mmoire vive que puisse contenir le GS est de 8 MgaOctets. Cette mmoire est divise en bancs de 64 KiloOctets et thoriquement de 16 MgaOctets adressables. Les bancs mmoires sont donc cods de $00 $FF. Les bancs $00 et $01 : Bancs particuliers, mmoire rapide Les bancs $2 $7FF : extension jusqu' 8 Mo de la mmoire vive rapide Les bancs $EO et $E1 : Bancs particuliers, mmoire lente Les bancs $F0 et $FD : extension de la mmoire morte jusqu' 1 Mo Les bancs $FE et $FF : la ROM du GS Il existe encore 64k de mmoire exclusivement rserve au processeur sonore, L'Ensonic DOC. Les programmes Apple IIe en mulation s'excute dans les 128 K des bancs $00 et $01. Ses bancs se prsentent donc comme un Apple IIe. On retrouve la carte langage de $D000 $FFFF, les adresses d'entres/sorties $C000, les zones d'affichage texte et graphique, la mmoire auxiliaire. Pourtant, le Mga II, nom du circuit qui s'occupe physiquement de l'mulation, gre une autre partie de la mmoire, mmoire lente charge de l'affichage et de la ges- -tion des entres/sorties, les bancs $EO et $E1, bancs qui travaillent la seule vitesse accepte par les priphriques, 1 Mhz. Pour rendre possible ce fonctionnement, les bancs $00 et $01 sont en partie et selon certains choix copis sur les bancs $E0 et $E1, c'est la technique du "shadowing". En mode natif, les bancs $00 et $01 sont librs sauf le shadowing sur les adresses $C000 et $800 ( I/O et Texte). Revenons notre Memory Manager. Il ne faut plus raisonner en terme fig, tout ce que le Memory Manager a en mmoire, il le divise en blocs, blocs sur lesquels il peut agir en fonction de la situation : mmoire disponible,activation ou dsactivation d'un accessoire de bureau. Pour s'y retrouver il utilise des handles ( Je ne sais par quoi traduire !) et des pointeurs matres ( master pointer). Quand un bloc est cr, le programme reoit l'adresse d'un pointeur sur le bloc. Cette adresse est appele le Handle et le pointeur sur le bloc, le master pointer. Ainsi, si le bloc est dplac, le programme peut le retrouver en regardant le master pointer, remis jour. Master Pointer qui, lui, reste o il est. Le handle peut tre drfrenc pour grer un bloc fixe, l'adresse du master pointer est copie en page zro pour permettre l'adressage indirect. Lorsqu'un grand nombre de blocs sont parpills dans la mmoire, il peut arriver qu'un nouveau bloc ne trouve pas de place parce que tous les espaces mmoires libres sont trop petits. Le Memory Manager essaie ce moment-l de compacter la mmoire, cette opration peut-tre gne par les blocs fixes qui eux ne peuvent se dplacer. S'il n'arrive toujours pas allouer une place au nouveau bloc, le Memory Manager va purger la mmoire. Tous les blocs ne sont pas purgeables, ce sont les blocs verrouil- -ls.Les blocs purgeables le sont trois niveaux,le niveau trois est le premier purg. Lorsque le bloc est purg, le master pointer prend la valeur zro long : nil ; le handle associ devient un handle vide ( empty handle) Les blocs mmoires possdent donc un certain nombre d'attributs qui permet de les identifier,ces attributs sont compris dans un mot de 16 bits : Bit 0 : si ce bit est 1, le bloc occupe un banc fixe en mmoire Bit 1 : si ce bit est 1, le bloc occupe une adresse fixe en mmoire Bit 2 : si ce bit est 1, le bloc est align sur une page Bit 3 : si ce bit est 1, le bloc ne peut aller dans les zones spciales,I/O et zones de l'cran. Bit 4 : si ce bit est 1, le bloc ne pourra pas tre sur 2 bancs en mme temps Bit 8 9 : niveau de purge du bloc,cet attribut est modifiable. Bit 14 : si ce bit est 1, le bloc est fixe. Il est relogeable si le bit est 0 Bit 15 : si ce bit est 1, le bloc est verrouill. Cet attribut est modifiable. Les bits 5 7 et 10 13 sont rservs Les attributs d'un bloc font partie d'un champ plus vaste ou chaque bloc est dfini par un handle : l'adresse de son pointeur matre, l'adresse du bloc mmoire, son numro d'identification ID, sa taille, l'adresse du suivant, celle du prcdent. Le numro d'identification dfinit l'utilisateur du bloc. Il est sur 16 bits. Les bits 0 7 Main ID ( dfini par l'User ID Manager) Les bits 8 11 Aux ID ( dfini par l'utilisateur) Les bits 12 15 donnent le type de l'utilisateur $00 Memory Manager $01 Application $02 Programme de contrle $03 Prodos $04 Outil du systme $05 Accessoire de bureau $06 Bibliothque de Run-Time ( routines en code machine) $07 System-loader $08 Firmware/fonction systme $09 Tool Locator (l'outil des outils) $0A Permanent Initialisation (fichier setup ) $0B $0F Indfinis Le Memory Peeker nous fournit les renseignements concernant ces blocs sous trois formes : les blocs allous, Used list; les blocs purgs, Purge list; les blocs libres, Free list. Avec la ROM 01, les blocs allous ont les handles qui commencent l'adresse $E1/1700. Le principal inconvnient de Memory Peeker est son manque d'option d'impression. Cela fait vite cruellement dfaut. ______________________________________________________________________________________ Exemple de lecture des champs de bloc mmoire par Memory Peeker. ______________________________________________________________________________________ Pour arrter et reprendre le dfilement de l'cran lorsque vous tapez U, P ou F, il faut faire comme pour un listing en Basic : Control-S. Voici le dbut des champs affichs par l'option Used List de Memory Peeker lors d'un essai. --- Handle -Addr- Attr -ID- --Size-- -Prev- -Next- -Free- 0001 E11700 000000 C000 0000 00000800 000000 E062d0 0002 E062D0 000800 C115 1001 00000400 E11700 E119E4 0003 E119E4 000C00 C001 1001 00003000 E062D0 E0626C 0004 E0626C 003C00 C005 1001 00000100 E119E4 E0676C 0005 E0676C 004800 C015 5010 0000035C E0626C E117F0 004C00 0006 E117F0 009500 C013 3001 0000264A E0C76C E11804 est le numro du handle Handle contient l'adresse de celui-ci : E11700 --> banc $E1 adresse $1700 Addr contient l'adresse de dbut du bloc : 000800 --> banc $00 adresse $0800 Attr contient les attributs du bloc : C000 C reprsente les bits 12 15, en binaire $C s'crit 1100 donc le bit 15 vaut 1, le bloc est fixe, le bit 14 vaut 1, le bloc est verrouill. ID contient l'identifiant : 0000 --> Memory manager Size donne la taille : 00000800 --> $800 en hexa ou 2048 Octets en dcimal Prev donne l'adresse du handle prcdent :000000 --> il n'existe pas Next donne l'adresse du handle suivant :E062DO --> banc $E0 adresse $62D0 Free donne la mmoire disponible entre blocs, le total de la mmoire libre est donn la fin. D.P (NDLR: la suite de cet article est une contribution d'Y. KOENIG __________________________________________________________________________________ REMEMBER ___________________________________________________________________________________ REMEMBER est un fichier d'initialisation temporaire dont le source a t crit avec MERLIN 816. Si la variable VISIT est fixe 1, REMEMBER se charge d'installer les accessoires de bureau prsents en ROM: VISIT MONITOR et MEMORY PEEKER en reprenant la mthode propose par Sean Nolan dans Call APPLE de Fvrier 1988. Cette fonction est gre par un conditionnel pour deux raisons: 1- rien ne garantit que ces accessoires seront prsents dans les versions futures de la Rom du GS et (ou) qu'il sera possible de les initialiser comme le fait Sean Nolan. 2- pour ma part je n'utilise plus ces accessoires car je leur prfre NIFTArt.Dernieres: Gs Infos dernires, revue de presse et informations diverses ------------------------------------------------------------ Club Logiciels Matriel Livres La tourne des vendeurs de Soft La runion hyperpomme d'Angers Club ---- Le sige social a chang d'adresse, notez bien la nouvelle: D.Melchior GS Club-94 6 Impasse la Croix PommiDeuxime partie du dictionnaire ------------------------------- Nom d'accs : nom d'un document prcd du nom de volume et du ou des sous- catalogues.Chaque lment tant spar par une barre oblique. /VOLUME/DOSSIER/DOCUMENT Numrisation : transformation d'un signal extrieur en une suite binaire de 0 et de 1. Octet : ensemble de 8 bits,cods de 0 7 en commenant par la droite. Opcode : contraction de l'anglais operation code.Instruction sous forme code. L'opcod|~e de l'instruction RTS (retour de sous-programme) est 60 en hexadcimal pour le processeur 65C816. Oprande : En langage machine ,l'oprande est l'objet qui va tre trait par l'instruction qui le prcde. LDA $44,LDA est l'instruction,$44 l'oprande. Option : Touche du IIGS qui joue le mme rle que la pomme ferme des autres modles d'Apple II. Ordinogramme : reprsentation schmatique de l'ensemble des oprations d'un programme. Page : dcoupage de la mmoire en un certain nombre d'octets.Chaque page mmoire du 65816 fait 64 KiloOctets. Parit impaire : Dans la transmission de donnes,le dispositif metteur ajoute un bit 0 ou 1 de telle faon que la somme de tous les bits 1 donne un rsultat impair.La vrification de ce rsultat prouve que le message a t bien transmis ou non. Parit paire : Dans la transmission de donnes,le dispositif metteur ajoute un bit 0 ou 1 de telle faon que la somme de tous les bits 1 donne un rsultat pair.La vrification de ce rsultat prouve que le message a t bien transmis ou non. Pascal : Langage informatique conduisant une approche stucture des problmes rsoudre.Cr par Niklaus Wirth et Kathleen Jensen. Patch : ajout un programme pour lui donner de nouvelles caractristiques ou corriger un bug (erreur,bogue,punaise). Path : chemin d'accs un fichier Pathname : Voir nom d'accs. Priphrique : Carte ou appareil extrieur reli l'ordinateur de base. Pile : 1- Soude sur la carte mre,alimentation lectrique permanente de l'horloge et de la BRam,celle qui garde les paramtres du tableau de bord. 2- Partie de la mmoire gre de faon particulire. Sur le GS elle est de structure LIFO (Last In First Out),c'est dire dernier entr,premier sorti. Piste : cercles concentriques tracs sur la disquette lors du formatage. Pixel : point lmentaire dont sont forms les dessins et les textes l'cran. Plotter : traceur graphique.Imprimante utilisant des crayons pour crire. Poids : dans un couple de deux octets,le premier est dit de poids faible et le second de poids fort. Pointeur : 1-curseur de la souris se dplaant sur l'cran. 2-en programmation,dfinit un objet qui pointe sur un autre en donnant son adresse en mmoire. Police : synonyme de fonte,jeu de caractres. Pomme ferme : Voir option. Pomme ouverte : touche de commande qui combine d'autres touches permet de raliser une action. Port : point de connexion entre un ordinateur et un priphrique.On distingue en gnral deux types,le port srie et le port parallle. Prfixe : premire partie d'un nom d'accs,permet de raccourcir son criture. Presse-papiers : emplacement mmoire ou est rang le contenu de l'opration copier ou couper avant d'tre coll. Processeur : le 65C816 est un processeur 16 bits,il peut adresser 16 777 216 cases mmoire. Programmation structure :criture d'un programme en petits modules indpendants et rsultant d'une analyse descendante du problme,du gnral au particulier. Protection :1- une encoche recouverte par une tiquette collante sur une disquette 5p1/4 ou la fentre ouverte sur une 3p1/2 interdisent toute criture sur celles-ci.(Ne pas mlanger !) 2- contre la copie : dispositif progamm ou physique empchant la copie d'un logiciel. Puce : chip,circuit intgr. Raccourci-clavier : touches sur lesquelles on appuie simultanment pour remplacer une action multiple de la souris. RAM : Random Access Memory. Voir MEV RAM Disk : Voir Disque virtuel. Rcursivit : proprit d'un langage qui permet un module de s'appeler lui- mme. Rinitialiser : redmarrer par contrle-pomme-reset. Registre : zone de stockage de l'information dans le micro-processeur. Rpertoire : liste de tous les fichiers du catalogue d'un disque. ROM : Read Only Memory. Voir MEM. RS232 : un standart de transmission de donnes en srie. RVB :standart de transmission des couleurs au moniteur,abrviation de Rouge Vert Bleu (RGB en anglais,Red Green Blue). Saisir : Entrer de l'information dans l'ordinateur. Scanner : Appareil permettant de transformer un document par saisie optique en un fichier utilisable par l'ordinateur. Scrolling : Dfilement de l'image l'cran,vertical et/ou horizontal. Secteur : lors du formatage, une piste en mme temps que sa cration est divise en secteur. Sous-catalogue : catalogue inclus dans un autre catalogue,base de l'organisation hirarchise. Super Haute Rsolution : 320*200 en 16 couleurs ou 640*200 en 4 couleurs. System Error : erreur systme. Texte suivi d'un chiffre sotrique pour qui n'a pas la documentation complte de l'apple IIGS.Un bon sujet d'article pour GS Infos ! Statique : se dit d'une mmoire de type RAM qui conserve l'information sans avoir besoin d'tre rafraichie,c'est dire sans rcriture par le systme,tant qu'elle est sous tension. Switch : interrupteur en anglais,peut tre physique ou logique. Tableau : rangement dans un ordre dtermin une ou plusieurs dimensions de donnes dans la mmoire. Tampon : zone mmoire contenant de l'information en attente de traitement. Synonyme de Buffer. Temps d'accs : temps de lecture ou d'criture sur une mmoire de masse souvent exprim en millisecondes. Track : piste en anglais. Voir piste. Variable globale : partie de la mmoire identifie par un nom et dont le contenu peut changer. Ce changement est dfini pour tout le programme. Variable locale : partie de la mmoire identifie par un nom et dont le contenu peu changer. Ce changement est dfini seulement pour le sous programme dans lequel cette variable a t dclare. Vecteur : opration donnant une action dfinie par des valeurs. Volume : nom d'un dispositif de stockage disquette,disque virtuel, disque dur...pour le systme d'exploitation. XOFF: caractre qui lors d'une communication interrompt la transmission. XON : caractre qui lors d'une communication lance la transmission. Art.Dompublic: Dans ce numro, trois sharewares d'excellentes factures avec leur documentation. N'oubliez pas qu'un shareware est un logiciel payant. Vous avez l'usage de ce logiciel le temps de l'apprcier. N'oubliez pas de l'effacer s'il ne vous est d'aucune utilit. Pour le rgler, si vous dsirez le garder, envoyez un mandat international, demandez votre postier comment le faire, bougez avec la poste! Vous les trouverez dans le dossier UTILITAIRES. Il s'agit de: DIGIPACK 1.0 GS, un gestionna Le GS Club-94 est un club diffrent des autres dans son mode de fontionnement. Il n'a pas de local de runion avec du matriel, ce n'est pas son but ni sa vocation. Il est fait pour runir les isols et permettre une communication entre-eux. Il est n dans le Val de Marne, fruit de trois anciens possesseurs d'Apple II convertis au IIGS et passablement lasss de voir le peu de cas fait par le rseau Apple de cette machine et attrists par la disparition de Tremplin Micro. Ses ћltrois membres fondateurs ayant l'habitude de communiquer par tlphone et par courrier, il leur est apparu intressant de crer un club fonctionnant de cette faon. Le GS club-94 est donc entirement articul autour de son activit principale GS Infos. Son sige social en est le lieu de fabrication. Tout ce qui est inclus dans la revue est envoy cette adresse par les membres. Le club a une vocation nationale et le 94 n'est que la plaque tournante du club. Vous allez bientt recevoir un ̏ 33333333333333333333333333333333333333333333333 33333333333333333333333333333333333333333333333 33333333333333333333333333333333333333333333333 33333333333333333333333333333333333333333333333 33<333 33<333 33< 333 33< 333 33< 333 33< 333 333< 333 33< 333 33< 333 33<333 33<333 33< 333 33< 333 33< 333 33< 333 33< 333 33< 333 33< 333 33< 333 33<333 33< 333 33< 333 33< 333 33< 333 33< 333 33< 333 33< 333 33<333 33<333 33< 333 33< 33333< 33333< 33333< 33333< 33333< 33333<333 33333333333333333333333333333333333333333333333 33333333333333333333333333333333333333333333333 33333333333333333333333333333333333333333333333 3333333333333333333333333333333333333333333333333333333333333333333333333Y Y JEUXTLEDu' F2' 'FINDER.DATAo>WZ2,FOUR.ROW.DOC,[ '*FOURINAROWq>z[ )+UTILITAIRESu' F3' 'DIGIPACK.1.0.GS4  Y ICONE.EDIT.1.3L\ \DIGICOPY.1.09  Y FINDER.DATAɱTK \>^ ,@ main ^ """") ;8[il"H"hHHH "hHH"iHH"F:"""::"d:"" moqsuwy{d}dddd  "S," :""  !"#$%&'()*+,-./0123456789:;<=>?@Ah""{imH"H"HiH"HiH""iHH"H"HiH""{i+k*/SYSTEM/TOOLSJVous avez un seul lecteur,remettez le disque SYSTEME et appuyez sur retour*/SYSTEM/TOOLSL'Apple IIGS, on le soutiendra.Ah, a ira, a ira , a ira ! ;8[iQQ"S," :""""{i+k/gs.infos/gsinfosX Remettez le disque GsInfo et appuyez sur la touche retour /gs.infos/gsinfos ;8[iH"h{i+k ;8[i d H{iH "h  ̉  {i+;ik ;8[iHH}H "h""""ϭцө{iHJ"{iHJ"{iH{iH"HH"l:""H "h  9"{i+k!Cliquez la souris pour continuer./gs.infos/couverture.2 ;8[i  3"  {iH"{iH" r r \ \ D D . .   {iH "{iH" {iH"{iH"u u ^ ^ A A {iH"{iH""HHH-"hH "HHH-"hH "HHH-"hH "HHH-"hH "HHH-"hH ""H"h*"{i+k!==Rserv aux non-membres \N444. ==Modification Unidisk 3,5\N443==D.P., Free and Share\N442==BRam volont\N441>> Le coin hard et soft \N3==La Toolbox\N414.==Pascal\N413==Assembleur\N412>> Initiation \N2== Cherchez l'erreur!\N511.== Petites annonces\N510== Infos dernires\N509== Dictionnaire\N508== Macros TimeOut\N507== GS et ImW LQ\N506== GS trucs et astuces\N505== Appleworks GS\N504== GS.OS \N503== Editorial\N502>> Sommaire \N5== Quitter\N411*Qq.== Imprimer un article\N401>> Fichier \N12>>@\N0X==A propos de GS Infos...\N400==-\N401D. ;8[i """"""""""""H""{i+k ;8[i{iH(XJ"HH{iH "h"{iHhn}J"{iH H """ :"BB"":"&&"""F:""""i:""s:"""((:""(2:"oo"Z:"++"Fi:"!!"s:""}:"":""H"h "{i+kFCertains portions of this software are copyrighted by TML Systems,Inc.(c)-1987 TML Systems,Inc. D.Melchior GSclub-94CMaintenez le bouton de la souris enfonc et appuyez sur une touche.0Rey Jacques, Tomeno Bernard, Toussaint Dominique6Koenig Yvan,Le Masne Robert, Lien Rag, Melchior Denis Maquette et Rdacteur en chef:Editeur:&Pour quitter un article avant la fin :Ont particip ce numro :FGS Infos n2,le magazine du GS pour les membres du club exclusivement.Vu ;8[idݭ : i ݢ:"""ɢd,:"" """"H"hH "h={iHJ"{iHU" {i+k-Pressez une touche pour continuer la lecture. ;8[iHHH "hۆݩۍݍ" ,"w "N%  "$&(*,.02468:<>@BDFHJLHH "hHH""",:"""""""HH "{i+k2Cliquez la souris pour quitter l'article. ;8[i{iH((XdJ"HH{iH "hۆۢ" :"" """:""-:"II"{iH(7J"{iH FFH "H"hۢ "{i+kVu@Les fichiers sont des fichiers de type texte avec fonte tendue.1Rcuprez le fichier avec un traitement de texte. Vous voulez imprimer un article: ;8[i33"""{i+kUn source d'Yvan Koenig/gs.infos/articles/art.Bram ;8[i!"""{i+kLe carnet des applications /gs.infos/articles/art.dompublic ;8[i!!#"""{i+kune contribution de J.Rey"/gs.infos/articles/art.Realisation ;8[i"""{i+kune contribution de B.Tomeno/gs.infos/articles/art.Macros ;8[i!"  "{i+k Editorial /gs.infos/articles/art.Editorial ;8[i"tt""{i+kUne introduction GS/OS/gs.infos/articles/Art.GsOs ;8[i"""{i+kGS et ImageWriter LQ/gs.infos/articles/art.lq ;8[ibb "TT""{i+k APPLEWORKS GS/gs.infos/articles/Art.AWorksGS ;8[i"""{i+kLes trucs et astuces du GS/gs.infos/articles/Art.Astuces ;8[iYY"88!""{i+k Initiation au langage assembleur/gs.infos/articles/art.Ass2 ;8[i"""{i+kInitiation au langage Pascal/gs.infos/articles/Art.Pascal ;8[iKK ",,""{i+kLa toolbox : principes de base/gs.infos/articles/Art.Toolbox2 ;8[i#"""{i+kLe vocabulaire du GS"/gs.infos/articles/Art.Dictionnai2 ;8[i77!"""{i+kLes dernires nouvelles /gs.infos/articles/Art.Dernieres ;8[i"""{i+kLe prochain numro/gs.infos/articles/Art.Numero2 ;8[i """{i+kLes petites annonces/gs.infos/articles/Art.Annonces ;8[i""{i+k Mea Culpa/gs.infos/articles/Art.Erreurs ;8[i{iH"J"{iH9-9-"{iH,,"{iH,,"{iHv,v,"{i'H5,5,"{iGH++"{igH++"{iHr+r+"{iH1+1+"{iH**"{iH**"{iHn*n*"{i'H-*-*"{iGH))"{igH))"{iHj)j)"{iH))))"{iH(("{iH(("{iHf(f("{i'H%(%("{iGH''"{igH''"{iHb'b'"{iH!'!'"{iH&&"{iH&&"{iH^&^&"{i'H&&"{iGH%%"{igH%%"{iHZ%Z%"{iH%%"{iH$$"{iHxJ"HH{iH "hHH"{iHnJ}J"HH{iH $$H "{iHJ"{i{iHH{iHHH """:"$$"U:"$$"i:"$$"":"w$w$"#:"^$^$"7:"6$6$"A:"$$"K:"##"_:"##"s:"##"}:"##":"##"H"hHH "{i+k94120 FONTENAY-SOUS-BOIS6 Impasse la Croix PommierM.MELCHIOR DenisM.MELCHIOR Denis'Puis les suivants, tous les deux mois. Vous recevrez GS Infos n1 et 2'Vous bnficierez des services du club.Cotisation 1989 : 360 F.Devenez membre du club! cette adresse:Envoyez un chque l'ordre de:Pour recevoir GSInfoVu@0000000000000000000000000000000000000000000000000000000000000000@0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0@0F000000000000000000000000000000000000000000000000000000000000F0@0F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFFFFF111111F111111FFFFFFF111F1F1111F111FFFFFF1111FFF1FFF0F0@0F0FFFFFF11111111F111111FFFFFF1FFF1F1FF1F1FF1FFFFFFFF1FFF1FFF0F0@0F0FFFF1111111111F1111111FFFFF1FFF1F1FF1F1FF1F111FFFF1FFF1FFF0F0@0F0FFFF1111FF11111F1111111FFFF1FFF1F1FF1F1FF1FFFFF1111F1111FF0F0@0F0FF11111FFF11111FF111111FFFF1FFF1F1FF1F1FF1FFFFF1FF1F1F1FFF0F0@0F0FF1111FFFF1111FFFF11111FFFF111F1F1FF1F111FFFFFF1FF1F1FFFFF0F0@0F0FF1111FF111111FFFF11111FFFFFFFF1FFFFFF1FFFFFFFF1111F1FFFFF0F0@0F0F11111FF11111FFFFF11111FFFFFFFF1FFFFFF1FFFFFFFFFFFFFFFFFFF0F0@0F0F11111FFFFFFFFFFF11111FFFFFFFFF1FFFFFF1FFFFFFFFFFFFFFFFFFF0F0@0F0F11111FFFFFFFFFF11111FFFFFFFFFF1FFFFFF1FFFFFFFFFFFFFFFFFFF0F0@0F0F11111FFFFFFFFF11111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0F11111FFFFFFFFF11111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0F11111FFFF1111F11111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FF1111FFFF1111F11111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FF1111FFFF1111F111111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FF11111FF11111F1111111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFF11111111111FF11111111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFF11111111FFFF1111111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFFFF1111FFF11FF1111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFFFFFFFFFFF1111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFFFFFFFFFFF11111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFFFFFFFFFFF111111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFFFFFFFFFFFF11111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFFFFFFFFFFFFF11111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFFFFFFFFFFFFFF1111FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFFFFFFFFFFFFFFFF11FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0@0F000000000000000000000000000000000000000000000000000000000000F0@0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0@0000000000000000000000000000000000000000000000000000000000000000 ;8[iߥF߂")"" "" """""""""""""""ɐhɑgɛfɜiɝhɞgɹfɺeɻdɼcba`_^]\[ZY ,"{i+;ik ;8[i H{iH"hͥ͂ "   {i+k ;8[i"""""""""{i+kH;i{HH ;[ H "H"hHHH "hhH "HHHH "hhe: "kHH ;[HH"HH""" d&y)H "h "Ԣ"""H"8kHH"h"kHH"k0;8 ;[H"h#H({iH "h%)))XHH "h: ) )d   +;i08k"k ;[ 0 1 :T+  ;i k ;[ k l e:e::D+  ;i k ;[   :0 )   h)+H   ;i(k HH;[H"h H "    hh+;ik ;[HH""+;ik ;[0  +  ;i k ;[0  +  ;i k ;[0   +  ;ik ;[  Ȁ +  ;ik ;[  Ȁ +  ;ik ;8 [  d) e )e     ;e i ;[907301 )80'e     +  ;ikHH ;[ d0b) W  gF @ e )e)8 0  ):  +;ik HH;[ F0D @0>)8 04  8 8  e :e   hh+  ;ik H;[d 8 2 )    8 ) h+  ;ik {cH;[hh+hk {cH;[ JJJ -)0 0 0 0 0 0 0  hh+hhk {cH;[  :JJJ 1)0 0 0 0 0 0 0  hh+;ik{cH ;[ +;ik{cH ;[ I7+;ik{cH ;[ 7+;ik ;[   (+;i (k ;[I7   (+;i (k ;[ I7  (+;i (k ;[ jjjjjjjj +;ik ;[JJJ+)0 0 0 0 0 0 0 7    (+;i(k H;[IIʩ FeI+k H;[ I Iʀ f  8 F F I+kcck8k H;[IIIIʀFf ee&IIhhhh+k H;[ I I IIʀ&&ff !  8  FfFfͥ  IIzzzzzz+kIIkIIk##kkCCkIIk8 # zz(k *kJjkjjjk***k;8 ;[  {iH "{iH{i H " +;ik;8 ;[  {iH "{iH{i H " +;ik;8 ;[H({iH "h+;ik;8 ;[H({iH "h)+;ik ;[:"hH "h::H:"+;ik;8 ;[{iH "{iHU""+;ik;8  ;[{i H)" 8   {iHU"+;i k;8 ;[{i H)" 8d  "zH"HHg"h{iH ~"h"+;ik;8 ;[{i H)" 8d  "zH"HHg"h{iH~"h"+;ik ;[) eH0"+;ikHHH ;[ HHHHH &"  Ȁ8: ))e:  +  ;ikHHH ;[H HHH HH '"  Ȁ 8: ))e:  +  ;i k;8% ;[$ &{i$H-H+H{iH "{i$H{iH1H/H "+'+&*;i)k ;[HHH)H ("h +;ik ;[HHHH)H )"h h +;ik;8& ;[.H,H{iH{iH{iH "{iH2H0H "+(,'+;i*kHHH ;[ )f A [8Ai a {8ai 80))  J ) J) +  ;i k""""""""""""""""""""""""""""""""33333333333333333333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUffffffffffffffffffffffffffffffffwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww ;[;8 ")) )))));i+;ik ;[ HH H HHH "+  ;i k ;[;8")) ;i+;ik ;[;8" ;i+;ik ;[;8+" ;i+;ik ;[HHHHHH H$"h hhh+;ik ;[;8 " ;i+  ;ik ;[;8 " ;i+  ;ik ;[;8 " ;i+  ;ikHH;iHHHHHڢ "hhk    hhZ"HHkHHHH "hk ;[  "ኇ+ ;i k   ;[Z z Z"+hhhk . &     ;[Z z Z"+hhk ;[ ڢ "+  ;ik ;[  "+  ;ik   ڢ "+  ;ik ;[ " +hhk;iHHHڢ "ኃhhk ;[d  +hhk ;[ȗȥ @ȩ+hkH "hk ;[ "  +hhkHH "hhkH "hk;iH "hk "  k H H H H "(p0   ;ik;8  ;[dd\:"hi ) A[i     + ;ik;8 ;[$&{iH"` V$&") d d dd{iH"$&{iH"(+$#;i"k;8$ ;[HH,*"hH,*."h222202 2 2 22 2.)dHHH" "h!#%#2%2# {iH" 22+&2%1;i0k;8 ;[$$G$dd{iH"$$$$$ $$ + $#;i"k;8( ;[HH0."h! " "666646 6 6 66 62)AHHH" "h!#!%!'%6'6 66H0.2"h)6)66646 6 6 66 62)_HHH" "h!#!%!'%6'6) {iH" 666dd{iH"+*6)5;i4k;8 ;[  ' dd{iH"   + ;ik;8 ;[$$A${iH"$$HH""+ $#;i"k;8 ;[$& " {iH"+$#;i"k;8 ;[ "{iH"+ ;ikk;8 ;[  < $& d {iH"L  +$#;i"k;8 ;[  < $& d {iH"L  +$#;i"k;8 ;[$$n$HHHH$H " "hh {iH"${iH"{iH"+$#;i"k;8 ;[  2 {iH" H"zz$&+ ;ik ;[) +;ik;8 ;[$$$$$) d {iH"L $+ $#;i"k;8  ;[&&& d {iH"!&&  &!L &+"&!%;i$k ;[) +;ik ;[ HH"+;ik ;[ HH"+;ikHH ;[   ȥ  "+ ;i kHH ;[  )   "+;ikHH ;[    ȯ   ȯ   "+ ;i ktruefalseHHHHH ;[HHHHH &"  Ȁ 8 : ) )e:   "+  ;ikHHHHH ;[HHHH HH '"  Ȁ 8 : ) )e:   "+  ;ik;8) ;[//3 (3*(5 *{i(H9H7H{iH "{i(H{iHHH "5/1"++7*6;i5kHZHH ;[ 80,* )e)     HH"%  ȷ ȷ HH" +kHH ;[   ") "+  ;ikHH ;[   "  ) "+ ;i kHHHH ;[":e   Ȁ :    +  ;ikHH ;[   "%HHeHژ8 ("h "+ ;i kHH ;[   " ,HHHeHژ8 )"hh "+ ;i k;8* ;[0002"LHH{iH{i H{i H "{i H6H4H "02"+,4+3;i*kZHH ;[ "N)   Ș "Ȁػȷ)  Ȁ阠+hhhhkZ ;[ )? HH"% ȷȷ HH"+kZ ;[ ) )   +k;8 ;[d)  : )) H"h{i H)"{i H "H{i H{i HO"h)HH:" HH")j{i H)"H i H:" @HHg"{i HHH H H~"h"H 8 H:"HH "h)5HH "h)!HH ")  "+;ik;8< ;[BB)) H"h{i H)"{i1H "H{i H{i1HO"h)HH:"d{i H)"  i{iHV"᩼ {iHV"᩼ H({iH "hХ ɥ) {iHU" H i H:"႑v8pI9) {i H)"H H"8hH H:" 8 i{iHU"H"  B5 HHg"{i1HHH H H~"h"H 8 H:"Ⴋd;HHH "hhh=H ""h9) 4;Ȅ;  "= "BN&; " " ";;Ȅ;  9 ";f) B +>B=A;i@k;8 ;[d)  : HH " " +;ikprinter: console: keyboard: /\/ ]05 @ DOc hZk\nZq\ Z\    ::    q t wz}     \\4T     Z\( +/Z2\G Q TZW\ep s~ Z\  eQhQknqt~     \\4T ~ 2 !$'69<u?uBEK*2OuRuUX[^adn qtwz    ) ,0; K NQ[ e2   *2      4 *2" % ( + . 1 4 7 :r =r @\ C\ FD ID L. O. R U X [ ^ a p4tw*2        4*2u u ^ ^ A A   4*2 * ; @CO ` eht         f  p  z                           =  Q  p             B B       & &    "  2  5 8 B  O  \  l  o r |                   o o     + +   !!) 9 <?I Y \_i y |           - 0c5;I2u    uu " 1 :@CFP V \_behknqtwz} "$&(*,.02468:<>@BDFHJLNPRTVX        !'*-7 :K X e hku      / C S ` m ps}     II  FF + < uu33*2 *2\u_ubek*2orux~*2uu!!*2*2QuTuWZ`*2dgjms*2wuu*2  CuFuILR*2VY\t_te*2iuu*2*2#u&u)b,b2*269<T?TE*2Iuu*2*2u u YY*2 8#8)*2-uu*2*2uuKK *2,,*2!xu{u~*2*2uu77*2 *2euhuknt*2x{~*2uu*2*2HuKuNQW*2[_bfimptw{~ 9-9-%@,,%@,,%@$v,'v,*%@85,;5,>%@L+O+R%@`+c+f%@tr+wr+z%@1+1+%@**%@**%@n*n*%@-*-*%@))%@))%@j)j)%@())+)).%@<(?(B%@P(S(V%@df(gf(j%@x%({%(~%@''%@''%@b'b'%@!'!'%@&&%@&&%@ ^& ^& %@ & & %@, %/ %2 %@@ %C %F %@T Z%W Z%Z %@h %k %n %@| $ $ %@      ! !$!!$9! X! ! ! ! ! !$!$! "  "$ "$" '" *"$-"$7" D" T" W"w$Z"w$d" t" w"^$z"^$" " "6$"6$" " "$"$" " "#"#" " "#"## # ####$# 4# 7##:##D# T# W##Z##d# u# # - --^--u---O----6--. .D.k. .'.;.  /^&/ 5/z-F/^i/!m/Xq/cu// /c//./R / / /U0/W0/ /Y0/Y0/M0/O00Y0*0Q010S0H0[0c0O0h0M0t0S0y0Q00[00[00[0010Y00U00W0 1 .1 31 :1\1=1\1K1 P1 1 1 1 2 22H282I2c22i22 <2P<8\<8@>@E1EE3E&E3E+E1E:Hd^KH8QHf^VHf^:IPaI'H{IHIPJPJ'HJ]K]KHKPLPRMPMPMPMPRNPNPNPMOPOPO9+PPPPPQ QQIQSQSQRQRQRQQQQQRQSzRSSSSSTOT*TT+TT,T*TTLTV_T2WTVT2WTV7UaVfU2WUaVU2WUaVNV2WuVVVVW>PW+WW,WW-W+W WXXXXXPXlWXX\P\Y\\Q^Pv^]^lW^Y ;[ !#%'):  +;ik;8 ;[     : p ҮӍ Ǎ ͮč à à 㸱ؠ ج ̍ˠҮ̍ԠĠ 򠽠̲ŴŠõŠűƍŠ´ 罰BDEFGHIJȱűĠðŠðϠð 󍪭  ˍ  򍍪ϠԍōҠ堻 ٠ ٍŠ堻 ͮ٠ ٽ ŧŠ 덠Ҡ卍΍ؠİ ̠ȱ 󭱩 򭱩Íà 󪤱 ڠ獠Ϡ 򍍠ؠ٠ Ҡؠ٠ Ҡ獠Ѡ􍍠Р ج ōč̠РōР ج 󍍠ύ  ̠ 汶ؠ荠ؠ퍠٠٠ؠ؍؍ư؍蠽 Ѡ頻 РŠ𱍍ؠѠ򍠻 ýà򭱠 ý؍؍Š򍍠̲Ҡ卍獠Š 占à砻 Р ج Ġ Ϡ 占Р ج 󍍠ōҠР ج ٠؍ưٍ Ѡ؍ ؍ٍ𳍍٠ ٽưٍ򠽠 퍠؍ ؍ٍ٠à𴍍Р 獠Ӎ占 ٽ ŧ٠ ̧ ٠ ٠ 占٠ 󧍍٠ 獠٠ 獠٠ 獍 占ؠ ̠ȱ٠ ōؠؠӍà à ؠ 󭱍    鍺    卺  ؠ 䱠  䲠  鍺䳠  䴠  卺䵠 䶠 ؠ 卺à墠 鍠Ӡ򭪬 卺à墍Ӡ򭪬à򢍠Ӡ򭪬à좍Ӡ򭪬Ӡ򭪬Ӡ򭪬ӠӠӠԠƍ 0,@ K  HHHH "hhhih)0 m , m00)kZ͉)i 0) )0X 00Ȁ00`ZZZZZZZH$"zh`  堠堠򠠠젠(,369?BEKNenqtw ͮ ҍ ήǠҠ ƮĠ͠ҮӠ Ү̩ˠҮ̍Р· 占֠Ҡ 􍍪 ҍ ͯͮЍREMEMBER est un fichier d'initialisation temporaire dont le source a {t{ {crit avec MERLIN 816. Si la variable VISIT est fix{e @ 1, REMEMBER se charge d'installer les accessoires de bureau pr{sents en ROM: VISIT MONITOR et MEMORY PEEKER en reprenant la m{thode propos{e par Sean Nolan dans Call APPLE de F{vrier 1988. Cette fonction est g{r{e par un conditionnel pour deux raisons: 1- rien ne garanti que ces accessoires seront pr{sents dans les versions futures de la Rom du GS et (ou) qu'il sera possiMOPQRSTUVWXYZ[\]ble de les initialiser comme le fait Sean Nolan. 2- pour ma part je n'utilise plus ces accessoires car je leur pr{f}re NIFTY.LIST. La deuxi}me fonction de REMEMBER, celle qui lui a donn{ ce titre est un vulgaire pense b^ete qui m'{vite les commentaires acerbes que ma petite famille m'adressait lorsque j'oubliais un anniversaire familial important. Comme le programme est un INIT Temporaire, je n'ai pas cherch{ @ gagner de la place. Je stocke, dans deux tableaux, les dates de 6 '{v{nements' et de leur veille. Si, lors du boot la date est celle d'un {v}nement (ou de la veille), un message est affich{ pour vous le signaler. ******************************** * REM.CMD pour linker REMEMBER *------------------------------- * Assembleur MERLIN.816 ******************************** ORG $0000 VER $02 ; format OMF.2 KND $3000 ASM REMEMBER.S ; assemble (code objet=REMEMBER.L) LNK REMEMBER.L TYP $B7 ; fichier Initialisation Temporaire SAV REMEMBER ; sauve fichier objet *------------------------------- * Mettre REMEMBER dans le DIR * xx/SYSTEM/SYSTEM.SETUP *------------------------------- * ******************************** * REMEMBER.S * par Yvan KOENIG *------------------------------- * Linker par LINK "REM.CMD *------------------------------- * Assembleur MERLIN 816 ******************************** XC ; XC 2 fois XC ; pour 65c816 MX %00 ; Mode A,X,Y 16 bits REL DSK REMEMBER.L VISIT KBD "VISIT (1= installe VISIT MONITOR 0= Non ) " LenRubr = 16 BELL2 = $FBE4 HOME = $FC58 IDROUTINE = $FE1F INSTALLE = $FEB4 ; appel{e avec Yreg=0 DISPATCH1 = $E10000 KBD = $000000+$C000 STROBE = $000000+$C010 NEWVIDEO = $000000+$C029 *--------------------------------- * Entr{e en NATIF 16 bits *--------------------------------- PHB ; Sauve Banc Donn{es PHK PLB ; Banc donn{es = Banc Progr *------------------------------- * DO VISIT LDA #IDROUTINE JSR Firmware ; R{cup identificateurs CPY #0001 ; NumRom dans Y BNE suite ; Ce n'est pas la ROM.01 DEY ; -> Y=0 pour 'INSTALLE' LDA #INSTALLE ; Installe Visit & MemoPeek JSR Firmware suite FIN * *------------------------------- PHA PHA PHA PHA LDX #$0D03 ; _ReadTimeHex JSL DISPATCH1 PLA PLA PLA ; (Mois-1)*$100 + (Jour-1) CLC ADC #$0101 STA Today ; Mois*$100 + Jour PLA STZ Flag LDA >NEWVIDEO ; Mode Vid{o STA Remember LDA #Dates LDX #Anniver LDY #$528+8 ; sur ligne 11 JSR Commun LDA #Veilles LDX #Demain LDY #$628+4 ; sur ligne 13 JSR Commun LDA Flag BEQ exit SEP %00110000 ; A,X,Y /8bits LDA >STROBE :key LDA >KBD BPL :key CMP >STROBE REP %00110000 ; A,X,Y /16bits LDA Remember STA >NEWVIDEO exit PLB ; restaure banc donn{es RTL ; La vie continue en natif16 *================================================= Commun MX %00 STA which STX from STY dest1 STY dest2 LDX #$0000-2 lup1 INX INX LDA $F000,X which = *-2 ; Dates / Veilles BEQ cfini ; en mode 16bits CMP Today BNE lup1 LDA #Rubrique lup2 CPX #0000 BEQ storAdr ; ici C=1 ADC #LenRubr-1 ; ajoute LenRubr car C=1 DEX DEX BNE lup2 storAdr STA Pr{nAdr LDA #BELL2 JSR Firmware LDA Flag BNE skip ; ce n'est pas 1er passage INC Flag ; marque 'on est pass{' SEP %00110000 ; A,X,Y /8bits LDA Remember AND #%00000001 ; la DOC dit 'ne pas toucher bit0' ORA #%00100000 STA >NEWVIDEO ; Mode Texte REP %00110000 ; A,X,Y /16bits LDA #HOME JSR Firmware skip SEP %00110000 ; A,X,Y /8bits LDY #0 TYX lup3 LDA $F000,Y from = *-2 ; Anniver / Demain BEQ Pr{nOut STA >$000530,X dest1 = *-3 ; $528+8 ou $628+4 INX INY BRA lup3 Pr{nOut TAY ; A=Y=0 lup4 LDA $F000,Y Pr{nAdr = *-2 ; Adresse du vrai pr{nom STA >$000530,X dest2 = *-3 ; $528+8 ou $628+4 INX INY CPY #LenRubr BCC lup4 cfini REP %00110000 ; long RTS *=========================================== * Firmware ; Y=0 pour 'INSTALLE' PHY ; L'outil FWentry PHY ; demande 4*2 octets PHY ; pour passage PHY ; des 'r{sultats' PHY ; A_EntryReg PHY ; X_EntryReg PHY ; Y_EntryReg PHA ; Empile adresse routine LDX #$2403 ; _FWentry JSL DISPATCH1 ; PLY ; Nous int{resse pour IDROUTINE PLX ; PLA ; PLX ; RTS *------------------------------- Demain ASC "Demain, " Anniver ASC "Anniversaire de " HEX 00 Veilles ; Dates-1 :v1 DFB 27,03 ; 27 Mars :v2 DFB 02,05 ; 2 Mai :v3 DFB 22,06 ; 22 Juin :v4 DFB 24,10 ; 24 Octobre :v5 DFB 00,00 :v6 DFB 00,00 HEX 00,00 ; Terminateur Dates :d1 DFB 28,03 ; 28 Mars :d2 DFB 03,05 ; 3 Mai :d3 DFB 23,06 ; 23 Juin :d4 DFB 25,10 ; 25 Octobre :d5 DFB 00,00 :d6 DFB 00,00 HEX 00,00 ; Terminateur Rubrique :1 ASC "Mariage" ; 16 car maxi DS :1+LenRubr-*,$A0 ; espaces de calage :2 ASC "Mich}le" DS :2+LenRubr-*,$A0 :3 ASC "Walter" DS :3+LenRubr-*,$A0 :4 ASC "Muriel" DS :4+LenRubr-*,$A0 :5 DS :5+LenRubr-*,$A0 :6 DS :6+LenRubr-*,$A0 Today DS 2 Flag DS 2 Remember DS 2 LST OFF *------------------------------- * Bloc00 D{verminateur DEVER2000 *------------------------------- * J'ai re\u une disquette qui, sous couvert de faire des copies * rapides, * installe en fait un bon gros virus sur la disquette destination * Tous les param}tres d'affichage sont mis au noir et l'ordre * des titres du menu CDA est modifi{. * On peut s'en d{p{trer mais c'est le cirque. * Vous trouverez ci-dessous un bout de code permettant de cr{er * un bloc0 nettoyeur. * Je l'implante d{sormais sur tout^`abcdefghes mes disquettes de donn{es. * Un boot sur ces disquettes me r{tabli automatiquement une * BRAM propre et conforme @ mes besoins. * * BLOAD DEVER2000,A$2000 * Ins{rer la disquette sur laquelle on veut {crire le bloc00 * Call 8400 ($20D0) XC XC TR ADR ORG $000800+$1800 H0800 HEX 01 ORG $801 JSR $FC58 ; HOME sec lda $21 ; WNDWDTH sbc #LineEnd-LongLine lsr sta $20 ; WNDLFT lda #LineEnd-LongLine inc sta $21 lda #9 jsr $FB5B ; TABV CLC XCE REP %00110000 ; Natif Long PEA #0 PEA #BramData LDX #$0903 ; WriteBram JSL $E10000 CLC ; pour valider options slots SEP %00110000 ; A,X,Y doivent }tre courts JSL $E10094 ; TOBRAMSETUP REP %00110000 ; A,X,Y longs PEA #0 PEA #Message PEA #0 PEA #MessEnd-MessBeg LDX #$1E0C ; TextWriteBlock JSL $E10000 SEC XCE ; Emulation LDA #0 STAL $E115FF ; Forcera Reboot @ froid :1 BRA :1 ; Eternity Message MessBeg HEX 87 LongLine ASC "Maintenant la BRAM est correcte." LineEnd HEX 8D,87,8D ASC " Vous pouvez red{marrer",8D,87 ASC " sur un disque normal.",87 MessEnd ERR \$8D0 DS $8D0-*,$EA ORG *+$1800 Call8400 SaveBram CLC XCE REP %00110000 ; Natif Long PEA #0 PEA #Bram_Data LDX #$0A03 ; ReadBram JSL $E10000 SEC XCE ; Emulation jsr $BF00 hex 81 da parms rts parms HEX 03 HEX 50 ; slot5, drive1 da $2000 hex 00,00,00 DS \ Bram_Data ORG BramData ;Stockera ici votre BRAM favorite DS $100 LST OFF Accessoirement, ce petit bout de code permet de lancer la machine sur une configuration garantie. C'est particuli}rement utile lorsque plusieurs personnes utilisent le m^eme appareil. Il est particuli}rement d{sagr{able de devoir rebooter parce que Pierre ou Paul a {teint le GS avec un RamDisque alors qu'on veut employer AppleWorks.GS ou PAINTWORKS.GOLD. Rebooter sur une disquette dont le bloc00 contient DEVER2000 avec une Bram sans RamDisque fait gagner du temps et surtout {pargne nos pauvres nerfs. N'oubliez pas qu'il est possible de passer au tableau de bord avant de rebooter sur un disque 'normal'. Pour les possesseurs d'un disque dur Apple, le fait que le bloc soit sur un disque 3"25 n'est pas un probl}me. Il suffit d'allumer le GS avant le disque dur. La machine ne trouvant pas de disque dur actif travaillera en mode 'scan' et ex{cutera DEVER2000. Pr{cisons que l'appel @ TOBRAMSETUP est parfaitement l{gal. On trouve en E10094 un vecteur pointant sur une routine qui fixe les param}tres syst}me en accord avec les valeurs stock{es dans le tampon BATTERYRAM. Si la retenue est vide (C=0) les options Slots (interne / externe) sont prises en compte. Si la retenue est mise (C=1) ces options ne sont pas prises en compte. Bien {videmment le tampon BATTERYRAM doit ^etre garni @ l'aide des appels MISCELLANEOUS TOOL ad hoc. La version beta du Firmware reference manual ne pr{cisait pas que TOBRAMSETUP doit ^etre appel{ en mode natif MAIS avec des registres courts. Je ne sais si cette mention figure dans la version d{finitive publi{e chez Addison Wesley. ATTENTION, la m{thode retenue pour forcer le red{marrage @ froid fonctionne avec la vieille rom et la rom actuelle. Rien ne garanti qu'elle le fera sur une nouvelle version de la machine mais, il en est de m^eme de la formule propos{e par Bill Basham.:$~| DGP.GS.DOCH DIGIPACK.GSA SAISIR rapidement Carte stro, version 2, avec rglage de volume, monte et teste, fabrication J.Rey. Prix 500,00F Ecrire au club qui transmettra. ____________________________________________________________________________________ LE LIVRE DES POLYEDRES L'auteur, Roger Le Masne, un de nos membres, dcrit dans son ouvrage dmonstrations l'appui, les 41 polydres remarquables dits de Platon, d'Archimde, de Kpler ou de Poinsot, et un certain nombre d'autres. Cet ouvrage de 400 pages s'adresse avant jltout aux amoureux de la beaut des mathmatiques. Il comprend les indications utiles permettant de construire ces polydres en bristol. Il y figure une description gomtrique de la Gode du Parc de la Villette. Pour le recevoir,envoyez un chque ou mandat de 180 F par exemplaire + 10 F de frais d'envoi, adresser Roger Le Masne 63 Rue Joseph Bertrand 78220 Viroflay Tlphone: 30 24 02 15. Dans le prochain article, nous dcrirons en dtail les instructions du 65816, les dernires commandes du moniteur. Y.LIST. La deuxime fonction de REMEMBER, celle qui lui a donn ce titre est un vulgaire pense bte qui m'vite les commentaires acerbes que ma petite famille m'adressait lorsque j'oubliais un anniversaire familial important. Comme le programme est un INIT Temporaire, je n'ai pas cherch gagner de la place. Je stocke, dans deux tableaux, les dates de 6 'vnements' et de leur veille. Si, lors du boot la date est celle d'un vnement (ou de la veille), un message est affich pour vous le signaler. ******************************** * REM.CMD pour linker REMEMBER *------------------------------- * Assembleur MERLIN.816 ******************************** ORG $0000 VER $02 ; format OMF.2 KND $3000 ASM REMEMBER.S ; assemble (code objet=REMEMBER.L) LNK REMEMBER.L TYP $B7 ; fichier Initialisation Temporaire SAV REMEMBER ; sauve fichier objet *------------------------------- * Mettre REMEMBER dans le DIR * xx/SYSTEM/SYSTEM.SETUP *------------------------------- * ******************************** * REMEMBER.S * par Yvan KOENIG *------------------------------- * Linker par LINK "REM.CMD *------------------------------- * Assembleur MERLIN 816 ******************************** XC ; XC 2 fois XC ; pour 65c816 MX %00 ; Mode A,X,Y 16 bits REL DSK REMEMBER.L VISIT KBD "VISIT (1= installe VISIT MONITOR 0= Non ) " LenRubr = 16 BELL2 = $FBE4 HOME = $FC58 IDROUTINE = $FE1F INSTALLE = $FEB4 ; appele avec Yreg=0 DISPATCH1 = $E10000 KBD = $000000+$C000 STROBE = $000000+$C010 NEWVIDEO = $000000+$C029 *--------------------------------- * Entre en NATIF 16 bits *--------------------------------- PHB ; Sauve Banc Donnes PHK PLB ; Banc donnes = Banc Progr *------------------------------- * DO VISIT LDA #IDROUTINE JSR Firmware ; Rcup identificateurs CPY #0001 ; NumRom dans Y BNE suite ; Ce n'est pas la ROM.01 DEY ; -> Y=0 pour 'INSTALLE' LDA #INSTALLE ; Installe Visit & MemoPeek JSR Firmware suite FIN * *------------------------------- PHA PHA PHA PHA LDX #$0D03 ; _ReadTimeHex JSL DISPATCH1 PLA PLA PLA ; (Mois-1)*$100 + (Jour-1) CLC ADC #$0101 STA Today ; Mois*$100 + Jour PLA STZ Flag LDA >NEWVIDEO ; Mode Vido STA Remember LDA #Dates LDX #Anniver LDY #$528+8 ; sur ligne 11 JSR Commun LDA #Veilles LDX #Demain LDY #$628+4 ; sur ligne 13 JSR Commun LDA Flag BEQ exit SEP %00110000 ; A,X,Y /8bits LDA >STROBE :key LDA >KBD BPL :key CMP >STROBE REP %00110000 ; A,X,Y /16bits LDA Remember STA >NEWVIDEO exit PLB ; restaure banc donnes RTL ; La vie continue en natif16 *================================================= Commun MX %00 STA which STX from STY dest1 STY dest2 LDX #$0000-2 lup1 INX INX LDA $F000,X which = *-2 ; Dates / Veilles BEQ cfini ; en mode 16bits CMP Today BNE lup1 LDA #Rubrique lup2 CPX #0000 BEQ storAdr ; ici C=1 ADC #LenRubr-1 ; ajoute LenRubr car C=1 DEX DEX BNE lup2 storAdr STA PrnAdr LDA #BELL2 JSR Firmware LDA Flag BNE skip ; ce n'est pas 1er passage INC Flag ; marque 'on est pass' SEP %00110000 ; A,X,Y /8bits LDA Remember AND #%00000001 ; la DOC dit 'ne pas toucher bit0' ORA #%00100000 STA >NEWVIDEO ; Mode Texte REP %00110000 ; A,X,Y /16bits LDA #HOME JSR Firmware skip SEP %00110000 ; A,X,Y /8bits LDY #0 TYX lup3 LDA $F000,Y from = *-2 ; Anniver / Demain BEQ Pr{nOut STA >$000530,X dest1 = *-3 ; $528+8 ou $628+4 INX INY BRA lup3 Pr{nOut TAY ; A=Y=0 lup4 LDA $F000,Y Pr{nAdr = *-2 ; Adresse du vrai prnom STA >$000530,X dest2 = *-3 ; $528+8 ou $628+4 INX INY CPY #LenRubr BCC lup4 cfini REP %00110000 ; long RTS *=========================================== * Firmware ; Y=0 pour 'INSTALLE' PHY ; L'outil FWentry PHY ; demande 4*2 octets PHY ; pour passage PHY ; des 'rsultats' PHY ; A_EntryReg PHY ; X_EntryReg PHY ; Y_EntryReg PHA ; Empile adresse routine LDX #$2403 ; _FWentry JSL DISPATCH1 ; PLY ; Nous intresse pour IDROUTINE PLX ; PLA ; PLX ; RTS *------------------------------- Demain ASC "Demain, " Anniver ASC "Anniversaire de " HEX 00 Veilles ; Dates-1 :v1 DFB 27,03 ; 27 Mars :v2 DFB 02,05 ; 2 Mai :v3 DFB 22,06 ; 22 Juin :v4 DFB 24,10 ; 24 Octobre :v5 DFB 00,00 :v6 DFB 00,00 HEX 00,00 ; Terminateur Dates :d1 DFB 28,03 ; 28 Mars :d2 DFB 03,05 ; 3 Mai :d3 DFB 23,06 ; 23 Juin :d4 DFB 25,10 ; 25 Octobre :d5 DFB 00,00 :d6 DFB 00,00 HEX 00,00 ; Terminateur Rubrique :1 ASC "Mariage" ; 16 car maxi DS :1+LenRubr-*,$A0 ; espaces de calage :2 ASC "Michle" DS :2+LenRubr-*,$A0 :3 ASC "Walter" DS :3+LenRubr-*,$A0 :4 ASC "Muriel" DS :4+LenRubr-*,$A0 :5 DS :5+LenRubr-*,$A0 :6 DS :6+LenRubr-*,$A0 Today DS 2 Flag DS 2 Remember DS 2 LST OFF c}~fuse par Brjoux est la version amricaine, il faut avoir un accessoire de bureau mettant les accents pour avoir les lettres accentues de notre langue. Le clavier bien tempr convient trs bien, voir GS Infos n1. Brjoux livre le logiciel avec cet accessoire,1 manuel en franais une disquette d'exemples pour 2500F. Ce logiciel ne fonctionne que sous GS/OS, le nouveau systme d'exploitation. Il est trs gourmand en mmoire et ncessite 1,25 MgaOctets de mmoire pour travailler. Il faut aussi au moins 2 lecteurs 800k, un tant occup en permanence par Appleworks GS et son systme. Il est possible de se servir d'un seul lecteur, au prix de quelques acrobaties, un disque dur est vraiment recommander. Une capacit mmoire de 2 mgas n'est pas inutile, mais pourquoi n'existe-t-il pas de cartes d'extension qui n'obligent pas se sparer de celle d'origine! C'est un logiciel intgr puissant qui propose 6 applications: Un traitement de textes, un tableur, une gestion de fichiers, un module de dessin, un module de mise en pages et un module de communication. Il s'agit d'un vrai logiciel intgr, les changes entre modules se faisant trs facilement. Les menus Pomme, File et Edit sont communs toutes les applica- -tions. Le Clipboard peut contenir toutes sortes de documents: textes, nombres, dessins, fichiers tlchargs et ces documents peuvent tre copis dans une autre application. Appleworks GS peut aussi importer des fichiers d'autres programmes. Traitement de textes: AppleWorks Word Processing Multiscribe GS Texte ASCII Gestion de fichiers: Pour les donnes: Texte ASCII Pour les graphiques: Appleworks GS Apple Prefered Format Paint(PNT),Pict Format cran 320 ou 640 Tableur: Texte ASCII Logiciel de dessins: Apple Prefered Format Paint(PNT),Pict Format cran 320 ou 640 Mise en pages: Traitement de textes: AppleWorks GS Word Processing AppleWorks Word Processing Multiscribe GS Texte ASCII Graphiques: Appleworks GS Apple Prefered Format Paint(PNT),Pict Format cran 320 ou 640 Module de communication: AppleWorks GS Word Processing AppleWorks Word Processing Multiscribe GS Texte ASCII Vous n'tes pas obligs d'avoir les 6 applications charges en mme temps. Cela prend quelques minutes et beaucoup de mmoire. Lorsque vous appelez un type de fichier, si elle n'est pas dj installe, l'application se charge elle- -mme. On peut avoir 14 documents sur le bureau, mais 1 seul du logiciel de communication. Dans la prochaine partie, nous passerons en revue chacun des modules. Art.Erreurs: BUGS, PUNAISES, BOGUES, ERREURS ou HIC de Y'a un hic! Carte digit (J.Rey) ------------------- Pour GS INFOS n1 envoy avant le 25/02/89 Certains LM324, aux caractristiques disperses ont tendance osciller. Pour le circuit IC4, il vaut mieux l'viter et mettre un TL084 ou TL074 Des trous l'impression (D.Melchior) ---- Art.Bram: Des BRam volont sans passer par le tableau de bord *------------------------------- * Bloc00 Dverminateur DEVER2000 *------------------------------- * J'ai reu une disquette qui, sous couvert de faire des copies * rapides, * installe en fait un bon gros virus sur la disquette destination * Tous les paramtres d'affichage sont mis au noir et l'ordre * des titres du menu CDA est modifi. * On peut s'en dptrer mais c'est le cirque. * Vous trouverez ci-dessous un bout de code permettant de crer * un bloc0 nettoyeur. * Je l'implante dsormais sur toutes mes disquettes de donnes. * Un boot sur ces disquettes me rtablit automatiquement une * BRAM propre et conforme mes besoins. * * BLOAD DEVER2000,A$2000 Attention au chemin partir de GS Infos c'est: * BLOAD /GS.INFOS/PROGRAMMES/DEVER2000,A$2000 * Insrer la disquette non protge sur laquelle on veut crire le bloc00 * dans le lecteur 1 du slot 5.Cette disquette doit tre formate. * Call 8400 ($20D0) La BRam en cours est sauve. XC XC TR ADR ORG $000800+$1800 H0800 HEX 01 ORG $801 JSR $FC58 ; HOME sec lda $21 ; WNDWDTH sbc #LineEnd-LongLine lsr sta $20 ; WNDLFT lda #LineEnd-LongLine inc sta $21 lda #9 jsr $FB5B ; TABV CLC XCE REP %00110000 ; Natif Long PEA #0 PEA #BramData LDX #$0903 ; WriteBram JSL $E10000 CLC ; pour valider options slots SEP %00110000 ; A,X,Y doivent tre courts JSL $E10094 ; TOBRAMSETUP REP %00110000 ; A,X,Y longs PEA #0 PEA #Message PEA #0 PEA #MessEnd-MessBeg LDX #$1E0C ; TextWriteBlock JSL $E10000 SEC XCE ; Emulation LDA #0 STAL $E115FF ; Forcera Reboot froid :1 BRA :1 ; Eternity Message MessBeg HEX 87 LongLine ASC "Maintenant la BRAM est correcte." LineEnd HEX 8D,87,8D ASC " Vous pouvez redmarrer",8D,87 ASC " sur un disque normal.",87 MessEnd ERR \$8D0 DS $8D0-*,$EA ORG *+$1800 Call8400 SaveBram CLC XCE REP %00110000 ; Natif Long PEA #0 PEA #Bram_Data LDX #$0A03 ; ReadBram JSL $E10000 SEC XCE ; Emulation jsr $BF00 hex 81 da parms rts parms HEX 03 HEX 50 ; slot5, drive1 da $2000 hex 00,00,00 DS \ Bram_Data ORG BramData ;Stockera ici votre BRAM favorite DS $100 LST OFF Accessoirement, ce petit bout de code permet de lancer la machine sur une configuration garantie. C'est particulirement utile lorsque plusieurs personnes utilisent le mme appareil. Il est particulirement dsagrable de devoir rebooter parce que Pierre ou Paula teint le GS avec un RamDisque alors qu'on veut employer AppleWorks.GS ou PAINTWORKS.GOLD. Rebooter sur une disquette dont le bloc00 contient DEVER2000 avec une Bram sans RamDisque fait gagner du temps et surtout pargne nos pauvres nerfs. N'oubliez pas qu'il est possible de passer au tableau de bord avant de rebooter sur un disque 'normal'. Pour les possesseurs d'un disque dur Apple, le fait que le bloc soit sur un disque 3"25 n'est pas un problme. Il suffit d'allumer le GS avant le disque dur. La machine ne trouvant pas de disque dur actif travaillera en mode 'scan' et excutera DEVER2000. Prcisons que l'appel TOBRAMSETUP est parfaitement lgal. On trouve en E10094 un vecteur pointant sur une routine qui fixe les paramtres systme en accord avec les valeurs stockes dans le tampon BATTERYRAM. Si la retenue est vide (C=0) les options Slots (interne / externe) sont prises en compte. Si la retenue est mise (C=1) ces options ne sont pas prises en compte. Bien videmment le tampon BATTERYRAM doit tre garni l'aide des appels MISCELLANEOUS TOOL ad hoc. La version beta du Firmware reference manual ne prcisait pas que TOBRAMSETUP doit tre appel en mode natif MAIS avec des registres courts. Je ne sais si cette mention figure dans la version dfinitive publie chez Addison Wesley. ATTENTION, la mthode retenue pour forcer le redmarrage froid fonctionne avec la vieille rom et la rom actuelle. Rien ne garanti qu'elle le fera sur une nouvelle version de la machine mais, il en est de mme de la formule propose par Bill Basham.{mner 94120 Fontenay sous Bois Le concours est annul, il tait un peu prmatur et aucun dessin ne nous est parvenu dans les dlais. Notre catalogue de logiciels du domaine public sera envoy dans la deuxime quinzaine de Mars. Pour se les procurer, la procdure est la suivante: Envoyez une disquette 3,5p avec 1 timbre 3,70F pour le retour par disque du catalogue demand. Vous tes dans un club, participez, n'envoyez pas votre ou vos disquettes vierges. Cette disquette peut contenir lorsque vous l'envoyez, votre contribution au club: Un article sur un logiciel que vous utilisez, un domaine public que nous n'avons pas, un programme fonctionnant sur GS que vous avez crit, un dessin que vous avez ralis, une carte d'extension que vous avez fabrique. N'hsitez pas nous envoyer vos travaux, ils seront publis dans GS Infos ou mis dans le catalogue de shareware si vous dsirez les vendre par ce biais. Vos articles peuvent tre en texte ASCII (fonte normale ou tendue) ou Appleworks 1.4. Logiciels --------- APW est en cours de remaniement. Il sera totalement compatible GS/OS, plus convivial et plus rapide. GS/Basic est la trappe et restera en bta version. C'est officiel, dixit APDAlog. Certains logiciels ont des deux cts de l'Atlantique des noms diffrents: GS/Write = Writer's Choice, Chairman ( Diffus par qui ?) = ShowOff, VS/Draw = Draw Plus GS/Paint = PaintWorks Plus. MemBasic, Gribouille GS, ainsi que les produits Version Soft protgs ne sont pas compatibles avec GS/OS. Gribouille le sera, nous n'avons pas d'informations pour les autres. Apple dans le premier exemplaire de APDAlog de APDA, devenu une de ses parties depuis son achat par la compagnie condamne fermement les systmes de protection, esprons que les diteurs comprendront. Depuis notre longue liste, des nouveauts sont apparues dans tous les domaines. Voici un aperu de ceux qui nous semblent intressants. Design Your Own Home Architecture,Interiors,Landscape,Libraries: logiciel d'architecture, concevez et dessinez les plans de votre maison,de votre. intrieur, de votre parc. Ncessite un Apple IIGS 768k et de prfrence couleur. Editeur: Abracadata,Ltd.;PO Box 2440;Eugene,OR 97402; 503-342-3030 Prix: $ 89.95 par disque Architecture,Interiors,Landscape; $ 29.95 par disque Library, 7 disques de modles au choix. Final Assault: un jeu d'escalade, partez l'assaut des montagnes, mais auparavant entrainez-vous srieusement si vous ne voulez pas prir. Editeur: Epyx,Inc;600 Galveston Dr.;PO Box 8020;Redwood City,CA 94063; 415-366-0606 Prix: $44.95 On en a entendu parler: The graphic exchange : logiciel de rcupration et de transformation d'images de R.Wagner. Cartooner : logiciel d'animation assez extraordinaire. Dungeon Master : jeu d'aventure. Vu une prversion de L'Arche du Capitaine Blood. Matriel -------- Vu dans Nibble de fvrier, la photographie de la carte acclratrice pour IIGS. Elle est annonce comme trs proche, environ $400 aux Etats-Unis, vitesse 7 Mhz soit 2,5 fois plus vite que le IIGS standart. Applied Engineering la garantit compatible avec tous les priphriques. Applied Engineering,PO Box 5100, Carrollton,TX 75011.(214) 241-6060 est reprsent en France par Brjoux. Mirage, une petite bote qui permet de brancher sur le port ADB les interfaces se branchant normalement sur le port joystick. Les possesseurs de Koala Pad verront immdiatement l'intrt de ce produit. CH Products; 1225 Stone Dr.; San Marcos,CA 92069;619-744-8546 Prix $ 54.95. En France, Gnius devrait l'importer, attention il existe plusieurs modles. Vu dans IC Letter de Fvrier, un disque dur Megatek-Rodime scsi Externe de 45 Mo pour 5490 F HT (6511 F TTC). En vente chez International Computer 26 rue du Renard 75004 Paris; Tel (1) 42 72 26 26. Utilisable entirement sous GS/OS. Livres ------ Le Guide de L'Apple II en France dit par Apple Seedrin est sorti. Pour l'obtenir gratuitement, il suffit d'appeler Apple au 69 86 36 78 . Apple IIGS-The Buyer's Guide : 4 numros par an, tout ce qui concerne l'Apple IIGS aux Etats-Unis est dans ce guide.Il est import en France par: L.Fournier 54, rue Lamartine, 75009 Paris Tel (1) 42 81 21 93 Prix de l'abonnement : 240 F pour l'anne (4 numros). Programming the Apple IIgs in assembly Language par D.Eyes et R.Lichty Editeur: Brady Book Using AppleWorks GS par Doug Brown Editeur: Addison-Wesley Exploring Apple GS/OS and Prodos 8 par Gary Little. Editeur: Addison-Wesley La tourne des vendeurs de Soft ------------------------------- D'abord quelques prcisions: seul le magasin Gnius du Bld Montparnasse vend des produits pour GS ; seules les FNAC Etoile et Halles et seulement des jeux ; International Computer ne fait plus que l'entretien du parc vendu ; Macsell repris les activits de Version Soft, mais il faut passer par votre revendeur. Les prix sont trs disperss: Pirates GS qui vaut 275 F la FNAC Halles cote 457 F chez un autre! Alors soyez des consommateurs avertis, le club peut vous y aider. La runion hyperpomme d'Angers (D'un membre prsent) ----------------------------------nitier et nous faire part de son exprience en C. Les orientations actuelles sont dfinies par le bureau provisoire, celui du jour de la cration, notre association est reconnue depuis son insertion au Journal Officiel, le n3 du 18 Janvier 1989. Notre premire assemble gnrale aura lieu au dbut du mois de Juin, nous y pensons dj, pour la prparer, nous avons besoin de connatre vos dsirs et ce que vous pourriez apporter au club. Alors citoyens membres, envoyez-nous vos cahiers de do--------------------------------- Un problme agaant, avec l'impression en mode brouillon, en utilisant certains logiciels est la disparition des accents, voire des lettres accentues elles-mmes ainsi que pour certains, l'omission pure et simple du signe . Tous ces caractres perdus rapparaissent, si on se sert de la meilleure qualit d'impression. Dans GS Infos 1, pour viter trop d'attente, car l'impression de qualit est "assez" lente, nous vous avions conseill le mode brouillon en pensant que seuls quelques accents disparaissaient. Erreur! Si vous faites cela, il faut comparer l'impression avec l'affichage l'cran et corriger. Je remercie les membres du club qui s'tant battus avec le LDA$A0 sans dans l'article sur l'assembleur, m'ont averti de ce problme. Il n'y a pas de solution simple. Le driver d'impression des problmes avec les caractres dont le code est suprieur 80. Au cours d' une conversation avec J.Y. Bourdin, celui-ci m'a indiqu qu'il existe au catalogue de l'association des dveloppeurs amricains, une publication concernant les "particularits" du driver d'impression. Une des moins mauvaises "bidouille" consiste transformer les lettres accentues en lettres simples -->e et la en L. C'est ce que fait Appleworks GS d'aprs une impression que m'a remise un membre du club. Pour ce qui concerne GS Infos, nous sommes en train d'crire une vraie option d'impression qui lui permettra de s'imprimer en mode brouillon avec un minimum d'entorses notre orthographe. ------------------ J'ai eu la chance d'tre Angers, j'espre qu'il y aura d'autres runions de ce type. Je tiens remercier HyperPomme 49 et Mr Christian Simon pour ce week-end. J'y ai vu: -Un Apple IIGS avec 8Mo de RAM 2Mo de RAMDISK, avec un dur HD20 intgr. -II+ ( eh oui, il marche encore!)avec un 65802 et 2 Mo de RAM -Prsentation et vente de la carte stro de J. REY, version 2 avec un module de digitalisation. - Prsentation de la carte QUAD 1.0 (reproduction quadriphonique/octophoniqueme tape. Deuxime tape : la rdaction de l'algorithme. Une fois ce travail termine,il faut traduire le programme en un ensemble ordonn d'actions excuter.C'est une phase d'ana- -lyse descendante. Un programme est semblable un arbre, le problme entier, le tronc, va se dcomposer en problmes plus simples jusqu' un niveau lmentaire, la feuille. Troisime tape, la phase de programmation proprement dite. Si les deux premires tapes ont t bien faites, le codage de l'algorithme dans un langage de programmation se fera facilement. L'important, c'est de trs bien documenter le source. Chaque module doit dbuter par un commentaire dfinissant sa fonction et les variables qu'il utilise. Pour plus de lisibilit, il ne faut pas hsiter indent son programme. Toutes les instructions d'une mme squence sont alignes. Le dfaut du dbutant et de beaucoup de programmeurs est de passer trs vite la phase trois, et d'crire un programme sans aucun commentaire, programme qu'ils sont incapables de relire quelque temps aprs. Quatrime tape, essai et mise au point. Il faut tester son programme de telle faon que chaque processus soit parcouru au moins une fois.Cela limine dj les princi- -paux dfauts du programme. La longueur de cette tape dpend essentiellement de la qualit des prcdentes. Au del d'une certaine complexit,il faut prvoir une procdure de test. 1.2 L'analyse ------------- Un programme contient deux sortes de choses, des objets et des traitements faire sur ces objets. Il faut en premier dfinir les diffrents traitements que l'ordinateur devra effectuer en suivant l'ordre chronologique. Certains traitements peuvent se subdiviser en traitements plus simples et ainsi de suite jusqu'aux traitements lmentaires. On obtient une sorte d'arborescence, d'o l'analogie frquente avec l'arbre. Cette analyse utilise trois structures pour atteindre les objectifs du programme, la squence,l'alternative, l'itration. Pour chaque traitement, il faut dfinir les objets que celui-ci devra utiliser et celles qu'ventuellement, il produira. Ces objets, plus souvent appels donnes sont soit dfinis par le programme, soit le rsultat d'autres traitements. Ils peuvent avoir des natures trs diffrentes : nombre entier, rel, caractre alphanumrique, boolen ... Lors de la phase d'analyse, lح / & JK 8 l’KNX #h[h)zL )`,| ~Wt8Zm"L pЯ/vEyt| .|- z##Lk9V{:y< FO8!1 D29)vFC|L0kA0r v%k wK wk <8̉ Hif#@D"5!I!i{iԈ),(!(!,BP!5)1:!!]7}!n.x^UFxbǕ&w *al&'kl&=ul&nH=j&ˎ{&=Uw؎j&1-qwʎe&$=UwP&12-Iw#G&N":& R' p W 8 w"Q>1yr!)_,*S!2J ,i- 0.88>2ݰ '`7n$.*t".ɽՂԆP{||F6K2=`{j.ިW2TkD"áҪnBCS `2 S |oIkUIV> :{)b2Ώ⢾C0jy6j*Q">2$E$N b8f2#prx;,# :$#)# 5.#с18#6#:"#@# ZH#>n9~;dkk M\#KK.ii C!yo23o@] X([Œ ۦdtB f Gvp9O|wshU5o~%c#M^3:0C7<= (%&*8=@7LJh?F h[0 1̛zJ.L$n)x r'|TBFh}$:#q #{֫y#+%ܫp#=?k#79ڧ%MU#D&hݚi%+/rE>? q-i4&)h[&&>A /2?U܀څυ⅂ʴȩի鞧SܧY钧gb,v.ڦek$Y *V.qu4I!:F>SFkJu.!juZ|IOOdD"H"lL" P#tT.X#|\(+r2وIs>(rb <=:ؼeLHM8td,*>0+"i4,&H ,~^%)/-+XÊZ kB!tF;d` \)ɤ/ͲA/*.6^7 $$,*o' ,e /dd5mAY}BUaJA%MV1Cj~!z|kI ]cbe*%+5  (@% | c(R% n &36";ufjf{m}zbj(c*nhfln?axi`0phfyf tꝩ=%d*v"hBn cjnzZal|*Of*d*f*h R}<1PRH5g>ڏʞ/-㵘)-u:݊>|*hlT@tn*K|(A')X$=>֮5я2Kn)mee `*LJ8?`NoIhVwQ\ܒ%}/4CedТG}kf,ʊl$+>6k8.5&b6Y3|>!= 5+!0=qbmqֿ˄ׅ'yހD˜ –=9~Xr۟ 9}| *6ܬ˶ ){ )~-T;2ޚXR|xa5\/# }W,T3<5ʼ4 ~= 442*?vp!<9ڗ۷ϔմ՟~ Ƒ˳ȞĴ ߞҸ<{t;՞6|kb zQDE\z \2`zVM, vy 6=m5@$+4s1^N/d!Y ,3 *{d9^Xͼ:+-D g. |[1+ (C2*.~{0%s!Œ׊2 7.3X`"Rlz3ϫ(` `'.$ZW$ix 1~q;*F]~L 54+nhB*\ %&nhnIv⑺ǠRR퀲~ޟs)#BFDLYYsC h%=p<?=%0(-) *RV8b|:WWWWWWWWWW WWWWWܯ@׺Wɚ$ȶ͚:z#S33.@"SfZ{m;}tx;|n;T! }^) ( 1}H; ;~@= Ӳ@D#,Z5!NP-3/ر3eT̢ 3S<%g3I|`b`d ESm+?֗ɞD i3k3)ڊmiD3<3I&&( t꾱 4~ $uTyɝ y 4T$yx R4F_tnyfzXg)H_䢔zғT$ ^k;*^7yL0;y٭ةb#ۜ(- 95B}세ƽ@Ǵڒ>be9.7Қ4v"gtX+V%4Ҧi՘>>Ixm::L>X$>^r xr>1x>Oy .78||S:sN1[=;>"3 ض w̔pP#.`D@}F'0}>ݒW@ɏ _׌7w='z /W5׼ߨ',NR V; Z;7U߀a7瀕?l;G7~d7a47rn<((Z!7n<88"a2̒͘ǔ8 d5 b\&jctt,p~z~r ~^BtD"'nʍۅӹuԙۓnȉCz( "ѹ#o`"߹#O"鹦#=t_"CD"#"БGt;"ܞ'"ꕣ@vt"x.t #C9),#O<#_݈ћ)4Ԟvx$x=Tܫҹ̡p#̵ֺDx_SZ[ITu/k01xK0!5W\{K9NuyA9H8x P9]8z\0ۢ 2;6ڷ ,҄*8<9$V;80:^<=*gBp|vIZL*N:p:688Va@:a=LTjZTL05S"P3/PF" ͮe1}ΦUʞ`V@0f*J1NjZ\w7Zj󓆷8g]ϗfUl+PhۓOeГ:::#*;>ͪ;v7FpkѾ_ś=[<*R7۷#^`BGF8Ho8O;#gP8RN?VY[B_HFHNY[T3Z^wfAː˚yxz딻_0 _[y!纻'sdB0|N3zIޣʓ{0q7;[:{x~|rpvkinlk^לxq0i2U,.(*$& "4&vaZN  }6|*zxvvtgr򡜵Π&ʹгڗ҇ȏʍЇΕѓȝߓɐHIvvs|~nkv~P]Y}hqDTGGDOKXg[QFW_H/7!5!))Xp;??x(*YN ݌XSԝOНUؐɔYӭ۩ȦYȼѧޱɷԺӻ9΋ȈQ҄ȜQӗқ͙ɓߐrFWpzc`ebfs8nny[HLJBX`A@Y[H{!!5-8Ҿ'53&7!59S B H Y""9XΗ٠LΞÌM՞[ޞ˭өNΩ̯ʹѼܹ̬>߼҅̅&^Z?>آx>>Zj&. >+N~ՀW.U>0Nt=>Mv <>Uʸ.=>!VO-XoI4UŴv>.>̓bM>v7>9?Vsڐ>Iڅ+?.ޚw?3/RZ=c1(-WĹ'PWZT4 ?:tw=]B?W.L?8NMc2?w=E`?W*:W(6wns3P?t5r5p5vec&ސ)gT)mPL:L͟?/ϑ?R5mߦϭK?|.7n'*겭c*,QmllC*'?Բch<(c8@WZ@DWP.ڐ JJXqUB)0@K`$=b `1NX˂'~:Q@< 5 J4ϔ=Ņ+; Yp_`P`:0` ䷞7"(J X5= ;7Đ E=8 o7f`sh*:K)hȦ g]NFP`r:F}h}h&"|Ь,W OC}aɺ;P.8::J!QaکAb6\zbo2K`ar,aaڄ~! F)ܩAƩAR5ɦ| Ħ)YqfH^BIey_H&aEΩAĒa"oWMecFُa{axKWae]AS )aY4 !"LF{(LHRiH4:D҂""E"S.R6T,R.a.J;d7I9^3O;[8@:@>I>PBLDcCIVTJKC_]WE^THFg^PX[PRS_US^e`Ube`TvejKjSL6+2qb VX9sng&(oekrtfÝA{hsTLIZDABxbbYkL@bcKnV}b&xz9~LT*..^᳦cr Q(ch8Y[Α-CBLOc2w,챚ec4yJGc4hC%nkk@t cyzg@[ca*JAN4{czVZ\\chz+QAchYц|q6woypMK@ZK.G1FFuj\NsciNLnCyW}SXXsYweKĮs_ū۩cyD~L^Q&)O_d}:@:F^?do^gǶǥذǪرۡLɽN!ULD\%ùm+ݫД d*~hadF9lGL5xldCoV^9ieGkd~ńZƁDdPfdfd8,GddSKY[4# 0+j)!5SAץ"=*59B ocɪ~d ^򠢼밦ފȈݑ%G"e9!e4ݱEe+k`raJ_S`vYse3e{nN o EMLLh w}'t3]纨)w)]g !-e歕eXl4De_ĴQ#/eQ#%sU;13;}Ej̱gCҕȖ_e Yʳ뢰教L:>tf>NŨI¯O/#L7oïfdNnDfHBK枳沩hHŢNdRGǍ^ĎDŽrZBWO@VLRA'MFO1J[_\Ǹz]0'EBFa"Tf{Q\IFwfgLFC̩fR ^ SGFzzg~6]YơǵGBL ^d,#g ⭗gOHOo^n]W~O^MY~OG( g~&\NhzgMlTr<#Xp°M_DAgo'1C8}C7DTgl Tu nF}Gyg}rYm5HrGsgl`VϏ&V8D:M#',#3CVx ػ샔hҟ.@fⒸH@A̠Πٮzͩ4Xh`Er/Dh@IbhocrR諺萠芽μœ螡ywiu(c`qr68[[JDTGHh Kfwh ~X2b1*+>"np;?[7z)*  T9*?ԈЎiZbvi44ikVQ>!HikHAh& ibSu>6k鍂ʗDoF\kݖmjA*hhica"RR!̲ikL\A`oc i0Ŀ~J}isfYRj[`jbDD i{yRsxoc"*>ڜj0PNPsH䬬쮶KV7Fq/kdekX I}k, ߪϮ묮뽹NX빮ƪȨr$`B1qk^quk(#Pk"i:Ik sNG@I FSAYOMMIZAN-#l/5rtM]sYwMm k = RNWNnNzqH]Tc0+5n"̯⪭NlT𬾡XTnw~T!hnLT/֛~ny'"VOn~weM<$ HnRwnr]_J_Nص~iLv%K'v5n*wnnnle'YQJ'nCT8Xnf$`ǽdZX WqOj,MOj' קo߲Nr^>>o&b^ofUTLPo4vupsPMOOOEZJEχFoF@! 0N){ʿodŧ@r ugS0o;CotiJ[[KUݲou֝ovUYm+2%0Lov{oXӌsPpui$MOX((xx.JQ|̵ޣWʿ˻,^lbpsh!r pcbn4444jrjgFjBPVAfp{S UpgpnWKPZDp?jVdTR`fjݧpYz{0p|i4pimpi8jǙkdpcP4&pfqw_tuPxpiCUnpfBU*pcap]d"~=qozRF 7qd4.h:qZq1kP:i 3p5p5p5*yYFWڈlQNґxy1bxr7y=13ay8a٬I۔p[KЊ Q%,P0vW?I:P:ss߃.\*1T5Z5Yq=?j5qLH@sqJR ?ko\gܬkC{Lcݿkhͷk5"LhB2r0apRĨSR PhraW rlP&vnѼM{UK4Au\B443jU\ |tauuuuu54(F]Vqu #}M8\TU*,u2IyPE5\AN$IDK,\TA><|~4 yDlU[5R}QV_9h?CЛ[߳u\\^$5CйкТmAHQlW88vo_vg_ڵ)~*FN꣡FV"V$V&V(V铜𜕚WSSQ@WT]vtW_SfaReSrWcQHxkPkn&Ww_Ju^vVT{_y@wWX\[iWWUFsUWUDsSWUBsQWU@sW~RFU~RDS~RBQ~R@WVɩZFZDWLGlZvqDZgWnDD[<VACYhqTY Yz$1#RAu5Y~YqY0֕.C!kYPR\@[KTcH\൐IVMYZM|xՆ:Y?oRY1X<& =Y?[j PIiKFy fISsFy96d.ԢyY`yܶyܱy2˙YS[V[U:IYW  V4Z,1Q8@v.[W$J$+zܚZX_֚,@T^,䶌J RFZJͶJ#ZlǶJ4ZvLv{pZ_WPZxX#[ʌSߖZSXHY֩ z|bvHlvHr$Yx%PXIk2v-v060*,&amZe)Y>]WpQ^zH^ ^|dfh3j~RW [VQ[3YZ R2[mP.r$[q{H8([$0X"@ֵaY C` ٯl c{a 30 9a_Lz qa c!cu.Y(c/!A Z$<; FzKGk4.Ԡg K5}8~6̠c[\}.@^2KF[D6+L \፣ȰLu$(ᵣܜ"u:7R^pxR4 0\Xr{bzue_|LWuqV喜X|-9uV.i&mV.F>XvtJH<,zbC^h|LEj1*اg\U{L-v]zwL%y\{nL:A.L ,[3,< 0m9m;}|5o}2{]]]]]]]]] ]"]$]"űU&'bVtI[B1^=\[ǑfQq tަ>>VWTURSPQ^^^^^^^^vFO^όǺ f ȰŭݬƳ٦߻ѸUҰv'"qjk~c.bqg6k|pqS~mcujcyRYV310//<>(5rLAK BZUMNR(b6!)j%">%28,5|= FqJNR *^w(ccŁ吮TE!EwÊؚώ͂Ô!mc`c b/ZÎÛÎëâ/h/m47r5äóoqB$$<*!.ObMUÖZؼ]Þcÿ< 9E^WBUI[ß%bs:+l/7&Ë%vqz4= HõL`P97??Zc\!\dZdT }SĮ>H󓸲ċ;`8>ɊωƃӐ;|.>Ĝ;Q; &e8`Ġ(&(hĩ8l8*i;.>ش gph{բ,&.v2lb\}_ng>o((dd M>`!d)1#$nijt7,)5~ .R;4(988eL)99ZDdF)L?Ǫ÷۠CnzłŊ:0959jfAݤd9Mg:'d?\??&g:2g:4'd+?z%?<Ł:ح$g&:ҭ*',d?XŐ?^ś:ƭ>g:'d?bŮ?xŵ:g'ebFGJLQQVS^\^fjhmiuwruhnda`UHJG73+.,.#$"   +$+5<$>718 EZKE_WPZ\Xa zuV_Uw56m~Ϩ}tpzsjk^‹֖יɈJ5w"z+d0RɌ?4 "&6#.28 = 'YQ& "TH (0xp! 16; NFi{wvB* /zNVBtl rrq|b4^iذֲޤs1@%S+T1jПޏʆʶQF6m3j0h ^UK򍬉#9pBoJkZ +娒47%61 ;#9 2 ''4=7pb 1+@E1AbpxNS;/; lw]-/]h:Z_+tXǵǡׯvdjbuuhȎ`}T؉Yt9}'f BHFƉ9<- :& 9⭓ YAupqA)Ϭ6%*4  0"68?T(* /63;H]^0;@|knC=-U6vM(QMrb?#;{q|tظͬ΋AY0v6[S̻ڣ쩈QN v3s pXE™®C/ ( 9;.>-8^sY/:&*+$Q-*:. ,/S)^wg|tl XHPc<it\N]}#T4r|βֽϝfv3N7~f[ÐӑЗӲxS)f9wv̓‘݂/)< .<(/$?/_R*5 & 9(,' 0=\.SjCDabge_WIYnOUK]\I2? ]JǛ}tپρM"*[+#m¾\ľCo]JCXL34xuE~xe~lf@FEBx@j@]N­òèèė2ZF7vݵȍi^[WUbʘݖȢB>9=(6 3;4#=>+[JBV5 7\X%- 209)YY; *8*63]o`B1Gw~]?_#{xcsB06xvɥͮǢQ*4`{)˲İǴǷɄ[I r&FQvɖE:34#? Vq%,";2:! 6)"2-=! 2X(.3UZ5*4!-"=!+>VzBQVSQ]X6.%:4YSWb` h;#1ys| ^lr` n0S3rgbv9H:~cRNr!j-l)}6ZA8$4&Sv';3+)()&0!*#08>2 2#2      44 ``d ztwvee|~ce n j c cjjTTQR^\[T IGGBN A BA> 8 <0:;?:( ,% '         #%& >HKMNPRT``gblnno xx{trpoqhqjq  ,-  (4!!#)=-1M,$JI(*%! @(0"H? ,$K< "(&w(pQDͯزNs0PN؏o=uCiDef‹iF%Ĉ%$Ij+*-Zi֖{)spBQ&Pe?w=Qen"(: &-14$ ?%%&$=+ /-3/' .+ !)3;15γXe?paŴ>i]*LrfyU gh>Y%R6ŋKҴ$~~х@ *D Ai:TKN $OA"., * 4 ! C=@%4# CV#" $I96/,+!҇&$E sy; W_Ӻc,Q U@RL)٭@4[ĮnA2~ёk ^ L ;3%g`іdSh?iaY@z4p:JLLא>ک+ " t8;!"  <+&/+'=&.- +.).4% -3) 7f4WXB9K^>V{I-{a6d@ߓĘ?M lφ/h%@E!" @ܪH`' (ƿZzN"wVr-~A:,RŰ ҒEo%u.)F@~in@IX HB0'7 >>- I.K" BL #%hl8 ? 3ƾ!Jǰ1ȏ1xΆ)!u.q a"^>]KG})y6K0ھ…%C{9HOm0ݹ##&[".sHN֏L ۔AҙG ٦XpM=) BA: !YT@K N@ 0I)GAö?N9DS/C$b 2G*i E.lj ,"N7G:i},¢xt38wz1_υ0D٧YD7|Ͼ,MJ aB`>KŞKT6< 7ݬ0K@H"׉MVTB` ܧ(_GDN/M-Fܹ.7= &c ,2n9'@)"M:)M ۻ L+B2M6ʬ(X=Ļ8-ކv9zq;CCdв?|r}?tN]'PVvM ͊:Cʻ2`ruqos uokhpR U@S- ,,-"5 61&EL @:$4.,"244 9&3(>5'& G+R-tЋ AT)K_M\!UAԡ(R-.),>RþL6v eqFݨQeEuR. )&$$n~Mʹ>ǻ g6NAF87D0,7(9 35= 8#C0"* 0< 2  +41>, .,1c;k!y^wt|yGT t{x~vvyyyafU j` l aۚmԟHݥPQ7VJBH(f*'-#6*272)0=> U6"H2 E'4-.3 (2;15e/06:<1n>kn-T߻ qׯA3vIf=mع W iDـ5pY˂9և-(inKۣq#LҼTyN\٢;t-)<$"% .<,,$*%(3%5-; :/ =/ 8[́PQLγ7Yƣ<\JI>uTޠAgu'qϓ+}fդ"wkl _A/G.e٨!Tފ\ABClD=$&((!7 ).7#: 7+'&! 2<2,1+ ,ն&W]LUP.LK I+IfOlmr h th jq ai~Ba}DKԆLF`0- 7:.' .-*"/ ).. ,988501 R-WLFZA]A$RKe|ژ7`y {&b{$b ڀ'{z%`jefcN i^Ll MXc 50=// 2  )( 33+#;-=029!J EhBN T[Q_W h  t!Qjuu) sdbab ][K^QFCJE> ;,$!-:        " 2$ )# 5<=?KLF@[O@^B V\ ek ajiu~u} p} }p{ckgmU Z R@ K J VE 55!.43     /)* "38* ,FN^^_[Wm|{nb xu|} | xnvpigombf  QT HFVO 00 =; 5%    (, &.1>!:5 @L GFP@ALfn lozf |{~ ioofP ] [ LI FAI?*3 ;, *     $! ", ( ?21 5OJM BG YCW Qd t cnky z{| |~} q r n ne` UT E:56.(     ** +,.532=5MFIPP_J Red`mypw}p|{qooba_V MI A 87($%$       !&!'./.7:3=<HBCIKMRVZX^e`gehohnprwz|zyxhdeYXMKC=42*("`O================================================================J~PmO_____________________________________________________________________________DigiCopy GS, v1.0'Written by David Kletter & Tyron Khan'(c) Copyright 1988, Fantastic DesignsO_____________________________________________________________________________ < INFORMATION >LJTHIS PROGRAM IS NOT FREE, IT IS SHAREWARE. You may use this program, on a MKtrial-basis, for 14 days with no obligation. Should you decide to continue NLusing this program thereafter, you may license it by sending $10.00 ($15.00 Canadian) to: Fantastic Designs P.O. Box 120 Woodbury, New York 11797LJYou may distribute this program freely, provided that you do not sell it. NLYour honesty will allow us to continue developing products in this same low MKcost, high quality fashion. IMPORTANT: Upon receipt of your licensing fee, OMyou will be sent a user-support number in addition to other materials, so be *certain to include your mailing address.DISCLAIMER OF WARRANTYMKDIGICOPY GS ("THIS PROGRAM"), AS SOFTWARE, IS DISTRIBUTED AND SOLD "AS IS" KIWITHOUT WARRANTIES AS TO PERFORMANCE OR MERCHANTABILITY. THIS PROGRAM IS IGWITHOUT ANY EXPRESSED OR IMPLIED WARRANTIES WHATSOEVER. BECAUSE OF THE PNDIVERSITY OF CONDITIONS AND HARDWARE UNDER WHICH THIS PROGRAM MAY BE USED, NO PNWARRANTY OF FITNESS FOR A PARTICULAR PURPOSE IS OFFERED. THE USER MUST ASSUME LJTHE ENTIRE RISK OF USING THIS PROGRAM. IN NO EVENT SHALL EITHER FANTASTIC KIDESIGNS OR THE AUTHORS BE LIABLE FOR INDIRECT, SPECIAL, OR CONSEQUENTIAL DAMAGES. < HARDWARE >JHDigiCopy GS requires an Apple IIgs with a mouse. In its versatility, it Bsupports almost any configuration or combination of peripherals:NLRAM disks (including /RAM5/ and Apple II Memory Expansion Card), ROM disks, PNProDOS hard disk drives, 3.5" drives (400 or 800k), DuoDisk or Disk II floppy PNdrives (or Apple 5.25 drive through SmartPort), 40-track drives, or any other =ProDOS storage device, and all IIgs memory expansion cards. < FEATURES >HFo Fast duplication of DOS, ProDOS, CP/M, and Pascal disks with unique 4upload/download capability and checksum (optional)IGo ProDOS floppies can work faster than their originals! (our QwikTrack option)Mo Has "mass-production" capabilities for making many duplicates of one disk+o Completely mouse driven and easy to use2o Full-featured fast support for one-drive users)o Supports 40-track disks in any formatIGo Takes full advantage of IIgs expansion memory without destroying the Dcontents of memory, such as tools or RAM disks like other copiers.7o Intelligent disk formatting with media verificationo Fast disk/file checksumo Disk optimization3o Intelligent error checking and error correction < FEATURES EXPLAINED >PNDuplicating -- the process of reading the information from a disk and writing MKthe information to a different disk; both disks will be identical when the duplication is complete.OMMass Production -- using the "Buffered Copy" option (below), you may write a NLcopy of one disk to several disks. This ability to quickly "mass produce" a Adisk has been a very popular feature in classroom environments.LJQwikTrack -- using a more precise write routine, a 5.25" disk copied with IGDigiCopy using the QwikTrack option will operate more quickly than the original.OMChecksum -- a value (calculated by a program, such as DigiCopy and DigiPack) NLfor a particular file or disk to verify that its data is an exact duplicate of the original.MKOptimizing a disk (ProDOS only) -- writes zeroes to all unused blocks on a PNdisk thus clearing all deleted information contained on a volume. After using 7this option, all deleted files will be irretrievable. < DUPLICATING A DISKETTE >JHDUPLICATE VOLUME -- creates a duplicate of a disk. Highlight the device JHcontaining the diskette to be duplicated by clicking on its name in the KISOURCE window. Highlight the device you wish to receive the duplicate by OMclicking on its name in the TARGET window (any information contained on this MKdisk will be destroyed). Then simply click twice in the "Duplicate Volume" JHbutton. The copy will proceed according to the current Program Settings (below).LJBUFFERED COPY -- if a duplicate is made in "one pass" (the entire disk is MKread into the buffer and then written to the target disk without having to NLreturn to the original), then and only then will the "Buffered Copy" button JHappear. This option will allow you to make multiple copies of one disk. MKSimply select the device to receive the duplicate, if you haven't already. MKThen click in "Buffered Copy" twice. The program will proceed as if it has KIjust read the SOURCE disk and is ready to write. After the disk has been MKwritten, a window will open asking "Another Copy" or "Quit". At this point LJyou may click on a new TARGET device, if desired. You may select "Another MKCopy" to write the buffer to another disk, or "Quit" to return to the main program options.NL<> The number in the upper-left corner of the buffered copy window reflects NLthe number of duplicates created with the "Buffered Copy" option, while the PNnumber in the upper right corner reflects the number of copies made since the program was run.NLPROGRAM SETTINGS -- these settings affect how a copy is made. Click once in DBthe "Program Settings" button to display the current settings for OMmodification. You may change the settings as desired, then click in the "OK" MKbutton to save the changes in memory. All subsequent copies will use these )settings unless they are changed again.OM<> DISK VERIFY media (default) -- will determine (for most disk drives) if a 7disk's surface is damaged or unusable for any reason.KI<> DISK VERIFY write -- this setting will perform a checksum on the data JHafter it is written to disk. This will positively ensure that a copy is OMexact. This setting is only NEEDED when you believe a disk may be damaged in GEsome way. A checksum for the disk will be displayed when the copy is KIcompleted. If the original checksum differs from the copy, DigiCopy will 4display "NO MATCH" to indicate a faulty duplicate.JH<> COPY TYPE used only (default) -- if the disk is ProDOS, this setting LJcopies only the blocks that are marked as used on a ProDOS volume. If the MKdisk is not ProDOS, the "Full Disk" setting will AUTOMATICALLY be used for OMthat copy. Any checksum calculated during a "Used Only" copy will be done in 0"Optimized" format (see Checksum Disk, below).PN<> COPY TYPE full disk -- copies the entire diskette, ignoring disk format or PNfree blocks. Copies of 5.25" disks will take less time using this option. Any MKchecksum calculated during a "Full Disk" copy will be done in "DDD" format (see Checksum Disk, below).NL<> FORMAT TYPE all disks -- will format the target disk even if the disk is PNalready formatted. This option may be useful if you are copying to disks that #have never been formatted before.NL<> FORMAT TYPE when needed (default) -- will format the target disk only if ECnecessary. DigiCopy will determine this by attempting to read some GEinformation off the disk. This setting will save time by eliminating unnecessary formatting.PN<> BUFFER SIZE large and small -- there are two memory settings that DigiCopy can be placed in:NL (1) BUFFER SMALL/RAM Disk write-enabled (default) -- allows the user to ECcopy volumes to a control-panel-configured RAM Disk on a IIgs with more than 256k memoryMK (2) BUFFER LARGE/RAM Disk write-disabled -- allows the program to take ;memory that a "variable-sized" RAM Disk might later need.3<> You do not need to worry about buffer size if:< (a) The machine the program is running on only has 256kNL (b) You are not using a RAM Disk; maximum size (control panel) is set to 0kPN<> When using a RAM Disk, however, DigiCopy might obtain more memory with the +Buffer Large setting (write-disabled) if:PN (c) The maximum RAM Disk size is set equal to the minimum RAM Disk size in Gthe Control Panel (you will still be able to write to your RAM Disk).OM (d) The maximum and minimum are unequal but you do not intend to write to FDyour RAM Disk (you will not be able to write to your RAM Disk under the Buffer Large setting).MK<> If your maximum and minimum are unequal and you intend to write to your LJRAM Disk, you must stay in the Buffer Small setting. You may switch modes MKbetween copies without difficulty, using the Program Settings option or by KIholding down the Open-Apple key while pressing "T". This will toggle the buffer size.NL<> You may hold down the OPTION and CONTROL keys simultaneously to view the Ocurrent program settings. They will be displayed until the keys are released. < USE OF PROGRAM FEATURES >MKFORMAT TARGET -- destroys all current information on a device (if any) and HFprepares the disk for file storage (under ProDOS). Select a device by PNhighlighting it in the TARGET window, then click twice in the "Format Target" NLbutton (a cursor will be placed between the "[" and "]" brackets). Type the IGvolume name desired (ESCAPE will abort), or press RETURN to accept the displayed default name.IG<> Formatting your target disk before copying isn't necessary (see the Program Settings section).FDCHECKSUM DISK -- returns a value (checksum) for a disk, usually for LJcomparison to another disk, to indicate an exact or faulty duplicate. Two IGdifferent checksums are available, one for "DDD" format, the other for IG"Optimized" format (see description below). After selecting the device PNcontaining the disk from which the checksum is to be obtained, click in "Disk LJChecksum" twice. A window will open asking which checksum you would like. LJSelect a checksum by clicking in its button. The program will display the final checksum when finished.IG<> "DDD" format will perform a checksum on all blocks of a disk, while PN"Optimized" format (ProDOS only) will only examine the blocks on a disk which JHare marked as being used. The names "DDD" and "Optimized" refer to data LJcommunications standards used in DigiPack. Thus, a checksum obtained with BDigiCopy will be identical to a checksum obtained with DigiPack.OM<> When selecting a checksum you may press "S" on the keyboard for "Standard KIDDD" or "O" for "Optimized Format" instead of clicking in the respective buttons.NLVIEW VOLUME INFO -- Select a device by highlighting it in the TARGET window MKand click twice in the "View Volume Info" button. The program will display ;various statistics associated with the disk in the drive.PNRENAME TARGET -- allows you to change the name of a volume. Select the volume OMthat you wish to change the name of by highlighting it in the TARGET window. PNThen click twice in "Rename Target". You may then either type the new name of NLthe volume (a cursor will appear between the "[" and "]" brackets) or press $RETURN to retain the current name.PNOPTIMIZE TARGET -- this option writes zeroes to all unused blocks on a ProDOS NLvolume (clearing all deleted information). Select the device to optimize by OMhighlighting it in the TARGET window. Then click twice in "Optimize Target". ?The program will begin optimization and display its progress.LJEXIT DIGICOPY -- exits the program, and either returns to the application Cfrom which DigiCopy was run, or exits to the ProDOS quit routine.OMOPEN-APPLE COMMANDS -- You may use the program's options in conjunction with NLthe keyboard by holding down the Open-Apple key and then pressing the first KIletter of the desired command. For example, you could press Open-Apple-C /instead of clicking twice in "Checksum Disk". < ONE DRIVE OPTIONS >IG<> DigiCopy makes the life of users with only one disk drive much more PNpleasant. It is recommended that you use the Buffer Large setting to maximize KIthe available buffer space (as the buffer that DigiCopy has to work with 1increases, the number of disk swaps decreases).MK<> When copying with one drive, the disk you are copying is referred to as OMthe SOURCE disk, while the disk that is being written to will be referred to HFas the TARGET. Insert the disks as they are asked for; except for the .swapping, the program will operate as usual.LJ<> Two helpful features are auto-eject and polling (supported only by the JHApple 3.5 drive). When the program needs the other disk, the drive will NLauto-eject, and wait for you to insert the other disk. Once it is inserted, Cthe program will continue automatically (this is called polling). < FORTY-TRACK OPTIONS >HF<> DigiCopy GS has the unique ability to copy almost any size device, HFincluding 40-track software, which will require special procedures in certain circumstances.LJ<> To format a 40-track ProDOS disk, use the procedure outlined above for GEformatting disks. To inform DigiCopy that it should format 40 tracks MKinstead of 35, type the volume name desired, then hold down the OPTION key "while pressing the "RETURN" key.NL<> When copying 40-track ProDOS disk, it will automatically be detected, so JHfollow normal procedures. A small, solid apple character will appear in FDthe bottom, right hand corner of the duplicate window, indicating a KI40-track copy. If the disk to be copied is only 35 tracks and the OPTION KIkey is held down, the target disk will have the attributes of a 40-track IGdisk, hence, this situation constitutes a 35 to 40-track "upload" (see LJbelow). To download from 40 to 35 track, you must hold the Open-Apple key GEdown while the duplicate window appears. These options allow for all $possible 35/40 track combinations. < MISCELLANEOUS FEATURES >OMUPLOAD/DOWNLOAD -- another innovative feature developed by Fantastic Designs Jthat is contained in DigiCopy is the ability to "cross-support" devices.PN<> UPLOADING -- example: A floppy disk (containing 280 blocks of data) can be LJproperly copied to a 3.5" disk (holding up to 1600 blocks). All directory Einformation will be automatically updated and adjusted accordingly.HF<> DOWNLOADING -- example: A 3.5" disk (1600 blocks of data) could be PNproperly copied to a floppy disk (holding only 280 blocks) if the information MKon the original disk does not extend past block 280 (you may check this by JHlooking at the "Highest Used" value displayed by the "View Volume Info" GEoption). If the information will fit, all directory information will (automatically be updated and adjusted.MK<> These features are particularly useful when using RAM disks, ROM disks, JHand copying between 35 & 40-track disks. The user no longer needs to be OMconcerned with volume size; if the disk will not fit on or copy to a smaller Ndevice, an error will simply result and the user should use a larger device.PNVOLUMES ONLINE -- to see a list of the ProDOS volumes currently online, click IGonce in the SOURCE or TARGET button. The list will be displayed in the respective window.OMEJECT -- if device specified in the TARGET window is an Apple 3.5 drive, you Gmay eject the disk by holding down the OPTION key while pressing "E".KIABORTING OPERATIONS -- while duplicating, optimizing, or generating disk PNchecksums, you may abort any of the the operations by pressing the ESCAPE key at any time.PNSOUND TOGGLE -- to turn off all sounds that DigiCopy generates, hold down the PNOPTION key while pressing "S". The same key sequence can be used to re-enable all sounds.PNOK/CANCEL BUTTONS -- any time an "OK" or "Cancel" button is shown, the RETURN NLkey can be used instead of clicking in "OK", and the ESCAPE key can be used "instead of clicking in "Cancel".KIFILE CHECKSUM -- DigiPack GS, a previous product from Fantastic Designs, JHincludes an option to calculate the checksum for a file. If you wish to LJensure that your copy of DigiCopy GS is uncorrupted, the correct DigiPack file checksum is $10C8.JHSCREEN BLACKOUT -- if the program remains dormant (no mouse movement or MKpressing of keys) for over three minutes, the screen will "blackout" until LJthe mouse is clicked or a key is pressed. This is a popular Macintosh(TM) 2feature that is also becoming popular on the GS.PNQWIKTRACK -- will automatically result in floppy diskettes (when they are the OMTARGET during a duplicate procedure) operating more quickly and efficiently. GETo activate the QwikTrack option, simply press the "=" key. The word PN"QwikTrack" will appear next to the Copyright notice. You may turn the option NLoff at any time by pressing the "=" key again. The time needed to duplicate Hwill be slightly greater, but the duplicate will operate more quickly.OMWRONG TARGET DISK -- if you accidentally insert the wrong disk in the target JHdrive, you do not have to abort and restart. If the program said "Ok to OMDESTROY /SYSTEM.DISK" and you meant to insert a disk with the name "/BLANK", PNremove "/SYSTEM.DISK" and insert "/BLANK". Then click in "OK". DigiCopy would PNthen print "Ok to DESTROY /BLANK". Your selection has been corrected, so just 3click in "OK" and DigiCopy will proceed normally.PNINTELLIGENT ERROR CHECKING -- other copy programs abort operation if an error NLresults, but DigiCopy doesn't. If you forgot to put a disk in the drive, if OMyour drive door is open, or if your disk is bad or write protected, DigiCopy NLwill inform you of this and allow you to correct the situation or abort the JHoperation by pressing ESCAPE. Pressing a key or clicking the mouse will continue the operation. < NOTE TO HARD DRIVE USERS >LJ<> DIGICOPY SHOULD NOT BE USED TO BACKUP OR FORMAT A HARD DISK DRIVE. The ECprogram will only recognize the first megabyte of storage, and all PNinformation contained thereafter will become inaccessible. NEVER SPECIFY YOUR NLHARD DRIVE IN THE TARGET WINDOW except when using the "View Volume Info" or "Rename Target" options.$ < ABOUT COPY PROTECTED SOFTWARE >PN<> DigiCopy is not a bit copier. It will not duplicate software that is "copy PNprotected", that is, software in which the manufacturer has taken measures to OMprevent duplication. DigiCopy should not be used to copy any disk that has a KIspecial disk format, as any duplicates will not be accurate. Contact the LJmanufacturer for information about obtaining duplicates of copy protected software. < FURTHER INFORMATION >NLFor additional information, assistance, comments, or questions, the authors 0may be contacted in any of the following ways:F MCI Mail : "FANTASTIC" or 264-0103 Fantastic DesignsACompuServe : 73407,553 < or > P.O. Box 120H GEnie : F.DESIGNS Woodbury, NY 11797MK<> Since our primary concern is supporting our users, we aim to provide as LJmuch support and assistance as possible (upon licensing, you will receive NLadditional support information). If you are a licensed user, please include PNyour ID number in all messages sent, or have it available when calling either of our voice support lines. < ABOUT THE AUTHORS >NLDAVID KLETTER founded Fantastic Designs in 1986 to unify a diverse group of PNindependent programmers. Since then, residing in New York, he has written for JHa variety of computer publications, lectured at universities, spoken to IGuser-groups, and will be doing supercomputer research at the Livermore IGNational Laboratory this summer before attending MIT's Sloan School of Management in the fall.OMTYRON KHAN is a freelance programmer, currently residing in Toronto, Canada. OMWith an honors degree in computer science from the University of Toronto and PNover ten years of programming experience, he has lectured in many educational Oinstitutions and written several extensive theses on computer science theory.NLFANTASTIC DESIGNS received its Certified Developership from Apple Computer, KIInc. one year ago and changed its primary focus to GS-specific software. ECAlthough communication between cities is often difficult for large FDprogramming tasks, this hasn't stopped Fantastic Designs. Many more Jsoon-to-be-released products will be available over the next few months.GEApple, Apple IIgs, Disk II, DuoDisk, IIgs, Macintosh, and ProDOS are /registered trademarks of Apple Computer, Inc.DIGIPACK.1.0.GSu' 4 ' '+DIGIPACK.GS <Et4 *DGP.GS.DOCE+S4 FINDER.DATAi>W Y ح / & JK 8 l’KNX #h[h)zL )`,| ~WthJᗅF[ Ȗ8b۾! emH( 3#  ҟ%ۄO]'? PհD7G/ 85h& Q, * ǂ  ) !V^!*5)!(a!wH1(*Z1E;K `Vj4!,!oPɴ$ն{ǀfr%K+OE|nH}%6AIqѓ!) %n񬌦"朄ᐃѸ9Dt˃5i'uT)s\0{eGaʑ \m9xJޡF  !"#$%&'()*+,-./0123456789:;<=>?@ABC"*&B((n:p+"2 ~+">"`2R:TٞhB bBn㫆` >,ǞØ Yhٰ"v{:X"|Ê#;"*!"o֐"f֖"l~>"Â]7hj怳5"=hJhGcȹi !es !eETnbd_u;!&?&( 4J-\(o)t.T3 В둓8F8S`ffmo(?7<7=3"7ӓM\ x'ۓ|+' {C P)'T8#X4 ')^25Y)X[ҙ`eӋo;⊉V$5F7QkyS ԝopCIO y'$G/ɆB#CWJ vW_ TyB!D - V < |0B琪L⡃ fbbl@Ir~ <z h/%&EqD1XD^6^&!,rh,LkI><7Nb!}ۍ8CuCM$n̍]:ߍW ;%&"̭.]788;=2i;Ai ՉM~=;EbWci $0UEvWje|y񤀡OIkETM(XP\ZpMMi2#:I~$ܱMP`ZcEo;X$ܑMp@zEa8$*bθ})temz@j%ME(ڌҠЈMصԇ CjՊ 3(>}<=Xꗔ6xjNV b*{c`N$n9r$,OZ5~)șN0dX1gN|dyNF$FS'l3e,,'AN/K>֋UNJ,`)N %Fa"?V#ͱ\&-F9OۖB"*+&]G G>!>1$=Or;COZG,&K*lziSkt5~}FNcӗؖ/?"čvGHG0 y"'4D;XZ$WP*oT.=-5]Ӏbפc}'2"zr]@C׸p.BtOCoJm|Of%> ?7G;%gN-T #.HO @d@h~V *]-^%\<4C&Zi0t`6HI$n(Nh:[j0_7x (Lh uTtt\6/lmc+`4zlRƑ[x)`MRr(D,>r8ܥd4L&*8*+<,pT!(+md yT!fXȭ.d R);.?(cX.dܳ6H$ 4 l :e 1 x\8G!:UGRle#BF r Rx A iD&X,ehPePeXV*eO RLAmf}aGg `/b,cud@bd&r]pr prruarҤ m!K ʖ-)))҃&edM]6'EU>/YII[Gy@QAC< =+ =Z/:2)NF,szbߋC C ftH`:kJ*Ϸ@G޴ê2{ބ*ryሉ%*˨;*켃 W5L cC#(fGץg(48ŚnРfJCm7ꧫ/fѼ Jf ddO* Ubp   ") gl+Ҧ߰x?9c>MC.K_5 pbx9> ` ̯ȡ⋦ًĬҬ‡ÖՒޓ妩Ăȋ†ΖŒٓ߈ΐb8@plAizbspBjtW-MG\YEU[Zض b.ʼn $撀x@-!#1$L!P<#{1ZɪتӂټՀɩی݌Ė׌ʹŭʩͷĻٺյȻωȇχžłًߛ“ؒɎɟtp$i(k,gua4bz:yzN/qZRYHMnj()>/ #5'T)xtrSTd)H R-VICq'ߢԪ޸ȩɍޘԍޣ¿¿⠸ĵܣ̴Į˿ވč- H@a /jR^dHq eSw`inҪįo"ZU5M%ʨ8M脩l#Eلe$Ej.xlO ƒV*}ӄxaoMS+瀅DiCAdsZ-W(z.O-,>>2ZhNDHhcl.AnXPF\yNH+t$c᯹ӖN2G2 MވP>kf YFUIM:BN.q$+U$V7fH't+Ӡ'zb!.+FFڴ*FB/8KڀYFbW Tgʬ '/? T!G&DžB ,4t'7@}/?/KO9 p4yg͠a ~NbiiOGPBAoXJw+-&8>>>jG*-Z8Kž|^b& 7(CŞN<tp?c eg _g)Mg5cFW ֚MBֱ։(BNP2 g%$<@fݵe `20x(1=AdBkxњ0tTXʹZRZzz:Yx83'sHr UXؚ. 22mϐ7Z5tZB UƠ\L#_ZCZM+$t7ٝ4«8"4,Q"y1'4ɦB٪)]ZYYܱYǔ$y^XOOYtQ8Qr~V^j|ol̫zޣΜڧ 1mVIZ%T˴uPы&ь] Q ޵W0kU1DZ%XT1X׬X3)c3},^X@LJ22BԼXC5)y 1(7)4yhmI! *{"Kq892Y2W[YO[2M3;>I9[O!1[I'D2?XIs2^I[M[^1~"$?3 +rurv{fz{7OЧNN riVX=3Sێ@#Io{Fv)sqԂ6T!Lh6^cT M iqr&712J153<0!F U 3# Y @ru_r{sI#gD3bMo]N0!"|  06|4,'&;T6ĒT4N4XZ44K^ML:94ZX;ġ^4̪h:4c~Κ`Pj~{yrz}w@62v+H0Z,t<0&jlf0 y}d11Ѳ=P23òB"ӢR̐ʳ 6bp}?H42ӡYU͗B\y- л NH 9u^.tt_ 9sś5p"!u~t.tp0yp,71rsW!6 h@,ުdSlmfX[4ZW$4.'KS5Ҳ2Ƴ3:)!ں=1c*A4o+F}*W*R+Jwó䋸 ';8J?&$2I# :+ڜ٩ 9J0t*x\\\Ҥy8yyp.(*46>0(f$y88Ҧn68}Ф&x)-x'd4Ӵ֤Ɋ;mɕxV멤hКx7u{y)_yxy:Gy\1CY[@ :Z*Vz >:.5 s zޙrԗz؞x9ԙzr{ꖚ@ܩZ*th2"~:ܔ>>%=$="= =.<-<0&;1913=4->>11724??9H*F1W( G{Є9n[@[،}~!^s?yȉɚԇɗֵxz>^,»{*{E~/5B+߭s5;JĞE溴$=}EJ]Y4L;㇋wy_7w{ cڒ[IKBM6#n>‡dʑ,uֵ,֏,‘>Б&޿ޑ\`yK^IN\t|4XG^}ˮ)\L.w ̂p~X|F0ܨ㶚feй0B9XJ0:|<|||gPcU mX;qХ0 @|zZ;6ňK}=Lu?D~}K=]ɬ==th} ϳ=Ȑ%֊*=.>mє8<0<>L%*Y0FDT=䵖-oc~%T”Ű(T9Π6T큔;TTT|ĐT(2T+,]'!u9>EFJIBMKK 1#-! 1^Wh9 |pdvyK7uv8hҍљКӿu4ː؝ݓː:99bo}}1>Ԩ!v8lC%9DIQһƻE~kAcYMoAIcv~ ˛RSr~C&iKXuW@qS^ $e,y!ٙs90Z|˙s+>h&$8wۖwޮۣ͠lU?gCZ,Xw;~ڍԃʟV0Аʓ }=w:(7^)L Ec'w!:VCjEG_X)k%b(%;j?ihmwW85=~ s䰯smU7{I`(H8`N ,E%`I1e ,`l @ @Axq5坝7㠵4 @Ů叽!џؐLbŃdp`ȅo`P u@|@@Clg~@3C@B` X P@@1G@O`@@`~ ׭5@A@@@oAA)@` @[A)@QB@`? (WG,A^0FB(Iaqa! tio!3[AAABADaF !MA);?(x -K& ad&!K/TAA6>y + 6cK(AAAAAAA(A(0!ax A@AiOaȒ!eC CAAaYaE#(9@"HY8Yya$$Dj!LRvXTbh֒b0iHpd+RܫNތ vމ!~|$Y/ύj$̏!<F b`BbBd"C*kEqx<"В-*E=WҲtezRsAZA)"H"QbOBMAKBB+ABB+BvCP &bbj Abcƿbq b`b GbG WCCnIg2]]U#I{icJhec6 *CLC/Gdht||t t  𖼧ㇱ+)/-31Q0b2s<>8/:?̇ΜȴAP\s} +9_WFĊV[U b1%!"/9r57=?|17+ /?7塨 ŶDͨѩ۳ðϬ ĥحȥάҥӡ෻>ꩭ䶭乴*䰁䈱6䈥,m"k&gdi H|2{6wt XnICA@D MˀYYRZ(nVxl&.( %%+%"p .(5 JR Z Ҫ竪ՊTlɩũԠɡõ+ޠֱٰ!唷ꡥ%򵵷7右2厰Ҥ6agRje Hhx|48{5S{AKJgG^ȋAU]\^O.w#/%/$j%+& =7z24&6 JXs^*""fMl˦E.d.FD6d6F0p(A~ahr]~th~i>ɿIZImpi7yءIΓɼ&qii@A3Qa)NCHՕ'V)UAY[PYL__Cuoc@qoaBcUhFl[nKpKpBt[t@xn}Bl_|@T_U@][P[n]n^n_n;pATJ)C5!i"Ӏɡi ALaoƹi6=;FJ PyO JP4jn MMc.,oj~hN`jꦣ䳩諸쫬겯XN†ʎ꛾ԫ|jj ڇ*! j 5YB J#F ;jSaCA sw!ڷj t!j:3x5);D  lNPsL;( kƊ€DK/PH"*("H]k{|:kbaNWkal댤CAyZ&CK…Sbҹ/t/fk)!C(Uk)TfwltWRx|'`ID9eijqryzL@".,a$fmcL41mh~m<~S/%&Om ymd|%^l Hbm`H킨탸M2mCj,mĈ`u24w}|njELS'K_H\S]MJynJ` 6))m;m qH} LP GimN m l%}*$[ Cn'/G$eg H&6:nU>hʫϢӡϼӬۻ̡٠ߣH@NB3FF~(fO 뾋g륋wٟ6nTU&%⾀'Gq'';-&u' '$a'N '?J&NB&oK$nQ칛{Jns^ nnan pETZϽڪäѺ¥f,,Me|VGeWdh'͞"ʜf_݂oȳv˜OLx.oDԍ塚:o͂DfxTwq&65oUo`jjTJS[~OGo7n^'C0oҌm,M/INgOLȈoe[Cԉod ğǿ츺Է$'/p7{Xhpr:*NpzdݜݢʔݾمlkoqL`z`q6m~n}O[uOE|A?QW]|P4H䊉pr60kTw$Q8p騀NPqV趨ʞQP4#1L9Urqհӽݲΰ泭WTQ$@qQ9TT.q garinzm0w{sWh{PKCREAZE{9*7qsbUq /5;# t9x;(*@-)2iWQ̽5AqM%ZQQqs c$Fr築Vk{; ?SVerxQMƭ 3;rկvkKrdxR2RZz:d[҂j>cJPb`Js2Xۥ>şNBV^n>@Qڃ>іfAlTS+Fp>+o>hQrhv~v|vj|WhSֽvAkRfxn)CҌivc_Zv] 2v|vA8 谤㣲壢->wڸӴХ׺٣褫݄儏֘w;P&fkg.2ab~hhW f'w{^hxs[CHYQ6j#"1r&; ../D  L0?spϥ,zjO:jߵz:y2ߞ4ߛz,x^D>zЭֹywssl \guf4s}{yxRVMAAz_zbp҅ODELj/4 txz_WiD2JTsDIXևK ͺ]֛J [Xz |{ 1Szk6{xqFB{qhh]ԭncpg|ehb\clR9]"VVO\|mB[T&@ .}.}nʱžǮ.}|վѱϴĸ]2/84jj }ݛ`aD}J$խz41}äJeg.cv46]6H$j}iwFO]vW]xm]e-H|/e=}cL촓99}%w}uY|MmC԰},wZ]^]J &",F]\62~Pm~#uP] ~ջɭϿٻભ溡𩺻ٜ^] %~ W[ +{0^1@a~M~K5^H6R$A~ [ 6_$nWAԔĦmgF!TH36ХQ>J`IN _kIF* $"FS_\P@0!)1]_6誃^>>]`T"׀DN]pߧuxJ:TYFe\<,T\X$.]^LZ5_Ƒ]7 _67qV?_K`Y?X?&`NJV^zG ^k^rI:Yҫ&^Ǣ^ūeD we˵EtŽceP4@ n3,"~_jDr@(Rv8@_| H@(eJȺqL`n@ (@ گ@X~qvq: ɨ `^[@Kjc@}(Gg`@Y Pf4b06Ěߎ{ () IR@ @_?At^$!:Ȉ!,N@-#8E$AgY>-1AZFEaVrAx^ds.AZdd1|NAXltA[r8kAFJbA(ZD)X-X!JSTAL!PMA)֧"a_$AeA7)g}s{oh=a /Xȶ '!A WA A][y3̏ qa:Aa4A0 AqDhE"+&ywֶ̚A[8AIHDB%Ec0uT.]6"z^Zfe*cjP岾dϿb8︢JtK((\U2CZ4RPĴƋ"jgb*mItlwZ_J BlY:j:BA"B.IBa$/gL/sgu}Ef^u /unVԈw/M"ceI/n{T.VEljr:8D++U/c#Y)o"/>e)l5**EE F"F$F"#b.n B+#QWҲ ~B*o`.gf|Flz63cv*oƝƞ1OgLcMJwuS UabelL[-! ,'ک֫Fon&϶^[70rrb"5Vd5Fok6Fov\4N䠌.~[(vfffffg`i|OԳӷ߽ݽɯí֨ԥݣʿֈL[;9ILNOQ@U\VO]Yempilifbneefb!cVebGevbn)ffajBdf`k)eO`i)fBoqBf)nq)i i'kx K ki-kzKmi;k|Ko5ik,~'K,i%@`l,x$6k%@zlhUЀ 0⾹y Ϲ0yѠɚ2ک(i>OKⅎy4Ri4XҒ!w̅y4hi4o閍؅y@46ªmmuu}ڦºm¾FLVPj--t~dn-8 jjxhjekjlijajjchkjkh kk kikjkhkkki#kj'kh+kk,ii0ij4ih8ik>iiBijFihJikMiiQijUihYik_iicijgihkikljipjjtjhxjk~jij^jj[hjTkjQijwjjphj}kjwijHjjMhjFkhCih\jhYhhHkhMih6jh3hhDU {+,F${'Y)l(6n1uЂc9:4  0k_hca| EYQV@YYU[`,%+fQ,8/!)r'v0z?1 HPX\睪,QށϭԲګ᫄؏ɅĆՀځ⽡AQΪΒȈƋ؏ g$n(CIOUtfb}Υ}uDDHQ @MYU]PU[!'&2'j"n);3767Q9~5).>N= ;"Z^ၪ܆9̖ǃόÁƊԚ̛ՁɆPϜ꺂򼱛ϖĚϘΆφϲܘdu$lix.xϫWP[YiEGPCXIIYWWXZSPn(%h"l'50t^5112~ J2 J Z2?Ьڱ޴ӢT9葾ςϑσ‘ۃՔלИ2jС栄оVЇЏЊe,$O&XCEK0]YBq:G\YEU[ZtҴ(W%#!ҕl0rtt|z~!*%#HsJ($>>(:>>-Zp\-1r[) U)L,H1pB!E)z!})d+),vw),n1p`c)D) I),w), 1p)f>9)(o),*w),"1p$)JӀ)MӍ),Ȼ4w6),:q1s*+.0 55:?:8B JNLQUQS^Y  ddiiogxvwu  | qlf [SOOJ@BG@ >0* '& - !    $ !>79; ;<> @DE FIr{y['$zuFLlf} vw zЧĺŽ۬v'S0^9H"~Ҍې×зSXDFZJ GJ%**:,-  ./*ͽ: 0FZ2 #\T? #$) *".82=^bzfPPVVm`)eITNX~,86,vλԪԒmz(I-N.Drqo쑲G'\TD|OӉ1$*;/);- %"=$'6  *#)?#\N)5^[/-z *?%1%H[y aL$DA5hDQ#-Cw^j|ap߲ƭeH'Y9Bndbؕ]@Q^BfUu_QnU_㲈(7; 4#*!J6)>>3  ,92.%<p/ #3K(Za uqNF[ !=%gmrT)%2wDkF~aѧȿijȻ}jR!OL|aеЊ_˟۠K2t:w+_ޜ= !8" ,ܰ>LKaqK= ƺ 6C? 2-/8=A;2DltO .MH`jyQ1F&nfp^Yyybw $ z Ѽ³ DA teZ ޷еҋϞ™‹CM.h<~.T K֗ث@={@'&49;.AL"#;.9/N<?'8 3E[KJkygyxu -AV mi[Be7N6RעxҒKyfg|P߈׋ԛ͝ԶW"c9h*KՖ֓Փ'%F|I !=8\I/!!$>7"0*2*O4%*/4,>%6(AZ@Bdzyf\V|VARIVDDs%+6) vVQߑurgCA CFܴ˲ކ^RUYL mOخW"q5Y5=\f@ !%JCN& ?OO-!##;?.< %9 .';1)I5g\G_f[ & \mOIJF`?unhVTҨի۠weV4?T>CJ ۺa^WX O-nD7PߛF_ & =</$0) /& JQ:5 !GH' DhP52?=9< $<7(&=OKFDT)1#]W` mi# *) ~jV3V?P;Y$~]\ @&y4kA5tGOOMDEB ,31* (< 7,,4;  >        &&DDH     v v p p} ~zx ghmc k n je^]Z\P \ ^_ C F LHA<; 2 5 : > ;5--!&      ",/12468DDKNHJRS\\cgbclilw{yx{LN#$ 7 "2 # 5&2-#$ 3&>9FZjHKb_#7K RCtz Bu7ʋ)#r'Oțцݻ nLcݗ SW~W!N'Lo6jϱh&  />'ſ&39?f$F6$B <ƺ+ #ӹ2 :)#28[)5,(?*~24"*3s2Qg UxAB0Mb׮6@׭,gfLަ%rHxDa Mo,lfuԠ | A Ku/AB І`ڻ:rdF=zԜ8l" !% '09 !%83, 2 9:#A6<B79PnB!])yK7Leם-~ļ7W Pq?]ciq$a}wrn\\<`֏mM̩ p9obҗ"S"]N2ؽy(np eP֐=, 0  /31ĵ.'? 0>2%78980?$48!6!'+#%=+1\Nhߺ//d2%ReZ6' OzP,%O҃`&jD@=uE1}AV¦CT%/n `$`!ȕ,ik #T_&e=.(/?%</#: 3104%%, (#6/    ;<>H/:224U_NEHl)2qH9DӁ5dY׆Z)F<':3[iGQ/k/JV REe'ޮv7 >Kד:iv=m9/% 9ò8ܻ1t0( f?7# Z;>/5!C=N3 :1:LP0(&%LB:M77 5&:<0# 0 '2 fC=`+u-`@=ifҏGED0"8zpE,,9 HͯEZb;A'>;)zDx?D!+"ֹF{GX9K9AGJɣ#A5q؈/@̅ .479;2>O۾B ܓ,a95Gʳ+7E;(&G4@/:D$'+?E; * R:7#f"a28'.$R.yف|/r-J/iޑ3o4D-ni`gcfnfqztlvy  dOI@HI+ܽk4*<&), a`d&28987)) 8 ?2ù;)6.%'07;)?0F1*vӬ׫3v=&`Ȱ2R޷ y D9p;AeO6=rMb 8̒5+CċKb8b \ -sJ[.¿S'l>Dˤu.#,& %< ;>9&(/)*>  * :+),([H P_TRRRec n ~tx(q &d/l/mrfn&ڑzC5AZ `V)VJ[M?, -)q=ĺ)(1ʷ2>-95 <)+#%I(>) 6/>&-  (-% /e Z-m BQ*sEI`+t7KN/>f~#{]V-U`$hEjp/ͯhۭj߇XҮ%zԠ&cA /04-=323,!4&7  !& & 2$"7+ $> .$b7:4-08=08V;UQx( e[QѢ]9Yz#@lj me `w)ٗ$y/x(` engpX˽pҬL&])S9 ;(<.&  ' * ,  9 <0#31()8, 'UݹeJkP A^ L/h`s y yc p^}a ` g&pj |TI[yFJն-BI6 5" 8":9 1/,  6+;("&%9%ַ%NoIX(\]Ҫ'Wԡ*Fgֆv~e)drԇքe%jEbh@i| /Q LYKK 0#& :,)*/*  ,    % .) >*875C-KLP ӥuFQ)ifIbj ~pur~yg zm bof aZ W HXMA^ 7$( 0,      # / (*,? 3 <: .2@A GEVUQRQ Yla`ii f~ |{q qv v  |ofrYQQ]B P /1 7 " . #%    0 " *" : 3 ? KIP_R FT YX a`uao `cz~z}pljrSTTAWQ9900&%*   &)$ #:4,%PBBHS^JXghhlxqe~}ztqgheb]U[FOWH62< #!)+&!&;=';M@XGJW]V_X`lct|z||qhYVQJJD<7& )!"5443.NAHDQ]\[Yl`dfblspzr|~}{rieeTSD@A8;-*    ! ,&/-/16:>DBADKILKTRTV[^`fgbhotprwzyutig_YPNFD>D _____________________________________________________________________________ DigiPack GS, v1.0 Written by David Kletter & Tyron Khan (c) Copyright 1988, Fantastic Designs _____________________________________________________________________________ < INFORMATION > THIS PROGRAM IS NOT FREE, IT IS SHAREWARE. You may use this program, on a trial-basis, for 14 days with no obligation. Should you decide to continue using this proDFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmngram thereafter, you may license it by sending $10.00 ($15.00 Canadian) to: Fantastic Designs P.O. Box 120 Woodbury, New York 11797 You may distribute this program freely, provided that you do not sell it. Your honesty will allow us to continue developing products in this same low cost, high quality fashion. DISCLAIMER OF WARRANTY DIGIPACK GS ("THIS PROGRAM"), AS SOFTWARE, IS DISTRIBUTED AND SOLD "AS IS" WITHOUT WARRANTIES AS TO PERFORMANCE OR MERCHANTABILITY. THIS PROGRAM IS WITHOUT ANY EXPRESSED OR IMPLIED WARRANTIES WHATSOEVER. BECAUSE OF THE DIVERSITY OF CONDITIONS AND HARDWARE UNDER WHICH THIS PROGRAM MAY BE USED, NO WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE IS OFFERED. THE USER MUST ASSUME THE ENTIRE RISK OF USING THIS PROGRAM. IN NO EVENT SHALL EITHER FANTASTIC DESIGNS OR THE AUTHORS BE LIABLE FOR INDIRECT, SPECIAL, OR CONSEQUENTIAL DAMAGES. < HARDWARE > DigiPack GS requires an Apple IIgs with a mouse. In its versatility, it supports almost any configuration or combination of peripherals: RAM disks (including /RAM5/ and Apple II Memory Expansion Card), ROM disks, ProDOS hard disk drives, 3.5 drives (400 or 800k), DuoDisk or Disk II floppy drives (or Apple 5.25 drive through SmartPort), 40-track drives, or any other ProDOS storage device, and all IIgs memory expansion cards. < FEATURES > o Packing and unpacking of disks (in "DDD" or "Optimized" format) with checksum and unique upload/download capability o "Quick and simple" mouse interface, with rapid file selection o Full-featured fast support for one-drive users o Supports 40-track ProDOS-formatted disks o Takes full advantage of IIgs expansion memory o Intelligent disk formatting with media verification o Fast disk/file checksum o Disk optimization o Full ProDOS command support < FEATURES EXPLAINED > Packing -- this will take the information contained on a disk and condense it into a single file for transferring or storage. Unpacking -- the process of taking a file (from storage or received via modem) that contains the information of a disk and then restoring it to a disk. "DDD" format -- the most commonly used format for data storage. It is used by all "DDD" and "PBH" type packers, as well as the ProTERM modem software package. "Optimized" format -- a faster, more efficient format for use only with the DigiPack program or DigiPack utilities. This format, however, is for use only with ProDOS-formatted disks. Checksum -- a value (calculated by a program, such as DigiPack) for a particular file or disk to verify that its data is an exact duplicate of the original. Optimizing a disk (ProDOS only) -- writes zeroes to all unused blocks on a disk. This will reduce transfer time and storage space, as wasted information will not be sent. < USE OF PROGRAM FEATURES > Using the PATHNAME window (lower right) -- To select the device to work with, click the mouse once on the device to highlight it. Click once again to "open" the device. To select a file, click the mouse on its name. If the file is a subdirectory, you may click again on its name to "open" that subdirectory. You may now choose from files within that subdirectory. To move out of a subdirectory, click in the large box under the word "PATHNAME". <> The catalog displayed in the PATHNAME window will show all OPT type files first, followed by all REL files, and finally all DIR subdirectory files. The rest of the catalog will follow normally. This will allow faster location of any desired file. <> To view additional files in a directory, use the scroll arrows to move through the entries. To move more quickly, select one of the six positions between the arrows by clicking on it. <> When the device list is displayed (in either the pathname or device window), you may click in either large box to display a list of the volumes currently online. <> To PACK: (1) Select the device to pack in the DEVICE window (lower left). (2) Select the PATHNAME for the packed file, using the procedure explained above. (3) Set the FILENAME for the packed file by clicking in the filename button and typing a name. (4) Select STANDARD DDD format or OPTIMIZED format by clicking in the appropriate button. (5) Finally, click in the PACK button twice. <> If any of the above steps were not completed, the program will notify you at this time. Complete the omitted steps and click in the PACK button again. <> After packing, a checksum is automatically written to the file for verification of the data after unpacking (see below). <> To UNPACK: (1) Set the device to unpack to in the DEVICE window (lower left). (2) Indicate the PATHNAME where the packed file can be found. (3) Select the file to unpack by clicking on it. Its name will appear in the FILENAME window. (4) Click on UNPACK twice. <> After unpacking, a "MATCH" indicates that the data unpacked is the same as that of the disk from which it was packed. A "NOMATCH" indicates that the data was somehow corrupted and that the data is not an exact replica of the original. < PRODOS COMMANDS > <> To use ProDOS commands within DigiPack, click once in the button marked "ProDOS Command". The device list in the device window (lower left) will be replaced by the eight available commands (described below). To return to the device window, click in the large box underneath the word "DEVICE". CATALOG PATHNAME -- this option displays a full 80-column catalog resembling the one available through the ProDOS BASIC's "CATALOG" command. After a directory (or subdirectory) is displayed in the PATHNAME window, click twice on "Catalog Pathname" (once to highlight it, once to activate the command) to view the catalog. Pressing the escape key during a long catalog will abort the listing. DELETE FILE -- allows you to delete a file from a disk. Select the file you wish to delete in the pathname window by highlighting it, then click twice on "Delete File". <> You must remove all files from a subdirectory before deleting it. <> If the desired file is locked, the program will prompt you before deleting. FORMAT DEVICE -- destroys all current information on a device (if any) and prepares the disk for file storage (under ProDOS). Select a device by highlighting it in the PATHNAME window, then click twice on "Format Device". A cursor will be placed in the "Filename" button. Type the volume name desired, or press return to accept the displayed default name. LOCK/UNLOCK FILE -- if you wish to unlock a locked file or lock an unlocked file, select the file by highlighting it in the PATHNAME window. Select "Lock/Unlock File" by clicking on it twice. A locked file will become unlocked, an unlocked file will become locked. MODIFY FILETYPE -- allows you to change the filetype of a file. Highlight the file you wish to modify and click twice on "Modify Filetype". A window will open displaying a selected list of filetypes. Click the mouse on the new filetype for the file, or click in the "Filetype" button and type the hexadecimal value of the new filetype. When done, click twice in either the "OK" button to change the filetype, or in "Cancel". <> If the desired file is locked, the program will prompt you before changing the filetype. NEW SUBDIRECTORY -- allows you to create a new subdirectory for the storage of files. After selecting the pathname (in the PATHNAME window) of the destination of the new subdirectory, click twice on "New Subdirectory". You may type the name you desire (a cursor will appear within the "Filename" button), or press RETURN to cancel the operation. QUIT TO PRODOS -- exits the program, and either returns to the application from which DigiPack was run, or exits to the ProDOS quit routine. RENAME FILE -- allows you to change the name of a file. Select the file that you wish to change the name of by highlighting it in the PATHNAME window. Then click twice on "Rename File". You may then either type the new name of the file (a cursor will appear within the "Filename" button) or press RETURN to retain the current name. <> If the desired file is locked, the program will prompt you before renaming the file. OPEN-APPLE COMMANDS -- You may use the ProDOS commands in conjunction with the keyboard by holding down the open-apple key and then pressing the first letter of the desired command. For example, you could press Open-Apple-C instead of clicking twice on "Catalog Pathname". < ASSORTED OPTIONS > To use the assorted options provided in DigiPack GS, click once in the button marked "Assorted Options". Like the ProDOS Commands window, the device list in the device window (lower left) will be replaced by a list of the available options. To return to the device window, click in the large box underneath the word "DEVICE". BLOCK/TRACK/REGION OPTIONS -- these options are not implemented in this version of the program (1.0), and are planned for a future release. Should you decide to license the program, information will be sent to you about obtaining future versions and enhancements of the program. DISK CHECKSUM -- returns a value (checksum) for a disk, usually for comparison to another disk, to indicate an exact or faulty duplicate. Two different checksums are available, one for "DDD" format, the other for "Optimized" format. After selecting the device containing the disk from which the checksum is to be obtained, click on "Disk Checksum" twice. A window will open asking which checksum you would like. Select a checksum by clicking in its button. The program will display the final checksum after having read the entire volume. <> When selecting a checksum you may press "S" on the keyboard for "Standard DDD" or "O" for "Optimized Format" instead of clicking the mouse in one of the buttons. FILE CHECKSUM -- similar to "Disk Checksum", but returns a checksum for a file instead. Highlight a file in the PATHNAME window from which a checksum is to be obtained, then click on "File Checksum" twice. The program will display the final checksum after having read the entire file. <> The correct "File Checksum" for DigiPack GS, v1.0 is $D836. HELP AND INFORMATION -- this option will display a few short paragraphs explaining the program's basic operations. After the screen is displayed, press any key or click the mouse to return to the DigiPack screen. OPTIMIZE VOLUME -- this option writes zeroes to all unused blocks on a ProDOS disk (reducing storage space and/or transfer time). Select the device to optimize by highlighting it in the PATHNAME window. Then click twice on "Optimize Volume". The program will begin optimization and display its progress. RESERVED -- this option is reserved and is not implemented in this version of the program (1.0), but is planned for a future release. Should you decide to license the program, information will be sent to you about obtaining future versions and enhancements of the program. TOGGLE BUFFER SIZE -- there are two memory settings that DigiPack can be placed in: (1) RAM Disk write-enabled (default) -- allows the user to pack files to a control-panel-configured RAM Disk on a IIgs with more than 256k memory (2) RAM Disk write-disabled -- allows the program to take memory that a "variable-sized" RAM Disk might later need. <> You do not need to worry about "Toggle Buffer Size" if: (a) The machine the program is running on only has 256k (b) You are not using a RAM Disk; maximum size (control panel) is set to 0k <> When using a RAM Disk, however, DigiPack might obtain more memory with setting "2" (write-disabled) if: (c) The maximum RAM Disk size is set equal to the minimum RAM Disk size in the Control Panel (you will still be able to write to your RAM Disk). (d) Your maximum and minimum are unequal but you do not intend to write to your RAM Disk (you will not be able to write to your RAM Disk under setting "2"). <> If your maximum and minimum are unequal and you intend to write to your RAM Disk, you must stay in setting "1". To change to setting "2", simply click twice on "Toggle Buffer Size". To return to setting "1", highlight and click on "Toggle Buffer Size" again. VIEW OPT FILE INFO -- allows a user to view the statistics contained within an "OPT" file (a packed file created under the DigiPack "Optimized" format). Highlight an OPT file in the PATHNAME window, then click twice on "View OPT File Info". The program will display all available statistics contained within the file. OPTION-KEY COMMANDS -- You may use the Assorted options in conjunction with the keyboard by holding down the OPTION key and then pressing the first letter of the desired option. For example, you could press Option-T instead of clicking twice on "Toggle Buffer Size". < FORTY-TRACK OPTIONS > <> DigiPack GS has the unique ability to pack almost any size device, including 40-track, ProDOS-based software. It is recommended that the "Optimized" format be used for these disks. If the "Standard" format is used, then the unpacked file will stop prematurely at track 35 (Block 280) because there exists no method of identifying 40-track drives from ProDOS. <> To pack a 40-track ProDOS disk, simply follow the packing instructions for "Optimized" format. <> Unpacking to a 40-track disk can be accomplished in the following manner: (1) Use the "View OPT File Info" option to ensure that the file was created from a 40-track disk. (2) If the "TARGET" disk is to be formatted, pre-format the disk by using the "Format Device" option from the "ProDOS Commands" menu. 40-Track formatting is accomplished by holding down the "OPTION" key while pressing RETURN in the "Filename" button. If the disk is to be formatted while unpacking, hold down the open-apple key and the "OPTION" key. The open-apple key will force the formatting of the target device. The "OPTION" key will force 40-track formatting. (3) These steps need not be repeated if the target disk is already a 40-track ProDOS disk. < ONE DRIVE OPTIONS > <> DigiPack makes the life of users with only one disk drive much more pleasant. It is recommended that you use the "Toggle Buffer Size" option to maximize the available buffer space. As the buffer that DigiPack has to work with increases, the number of disk swaps decreases. <> When packing with one drive, the disk you are packing is referred to as the SOURCE disk, while the disk that the packed file is being written to is referred to as the TARGET. <> When unpacking with one drive, the disk containing the packed file is referred to as the SOURCE disk, while the disk that is being unpacked to is referred to as the TARGET. <> Two helpful features are auto-eject and polling (supported only by the Apple 3.5 drive). When the program needs the other disk, the drive will auto-eject, and wait for you to insert the other disk. Once it is inserted, the program will continue automatically (this is called polling). < MISCELLANEOUS FEATURES > UPLOAD/DOWNLOAD -- another innovative feature contained in DigiPack is the ability to "cross-support" devices. <> UPLOADING -- example: A packed floppy disk (containing 280 blocks of data) can be properly unpacked to a 3.5" disk (holding up to 1600 blocks). All directory information will be automatically updated and adjusted accordingly. <> DOWNLOADING -- example: A packed 3.5" disk (1600 blocks) could be properly unpacked to a floppy disk (holding only 280 blocks) if the information on the original packed disk did not extend past block 280. If it didn't, all directory information will automatically be updated and adjusted. Otherwise, an error will result during unpacking. <> These features are particularly useful when using RAM disks, ROM disks, and switching between 35 & 40-track disks. The user no longer needs to be concerned with volume size; if the packed file will not fit on (unpack to) a smaller device, an error will simply result and the user should use a larger device. PATHNAME WINDOW TRICKS -- there are a few convenient features to speed up file selection in the PATHNAME window: (1) Holding down the open-apple key while using the scroll arrows will double the speed of the scrolling. (2) Holding down open-apple while clicking in the large box under the word "PATHNAME" will return to the root volume (ex: /RAM5/DATA/MISC/HELP/ would return to the root of the pathname, /HARD1/) (3) Holding down the open-apple key while pressing escape will return the display in the PATHNAME window to the device list. EJECT -- if the last device accessed was a Apple 3.5 drive, you may eject the disk by holding down the open-apple key while pressing "E". ABORTING OPERATIONS -- while packing, unpacking, optimizing, generating disk or file checksums, you may abort any of the the operations by pressing the escape key at any time. LONG PATHNAMES -- if a pathname becomes too long to fit in the box underneath the word "PATHNAME", the program will abbreviate the prefix. For example, the prefix "/HARD1/MYNEWFILES/OLDBACKUP/HELPFILES" would not fit, so the program would display this pathname as "/HARD1/*/HELPFILES". SOUND TOGGLE -- to turn off all sounds that DigiPack generates, hold down the open-apple key while pressing "S". The same key sequence can be used to re-enable all sounds. OK/CANCEL BUTTONS -- any time an "OK" or "Cancel" button is shown, the RETURN key can be used instead of clicking in "OK", and the escape key can be used instead of clicking in "Cancel". ONE-LINE INPUT -- when packing a disk using "Optimized" format, the program will ask you to type in a one-line message. The message that you type will be displayed when the file is unpacked. Certain keys have special functions while entering a message, as follows: Control-B : Move cursor to beginning of line Control-E : Move cursor to end of line Control-I : Insert characters to left of cursor (the cursor will change to indicate insert mode) Control-D : Delete character at cursor Control-T : Delete all characters from cursor to end of line Control-X : Clear line and restart Arrow keys : Move cursor right or left, appropriately DELETE : Delete character left of cursor RETURN/ENTER : End input, save message to file as displayed < NOTE TO HARD DRIVE USERS > <> DIGIPACK SHOULD NOT BE USED TO BACKUP OR FORMAT A HARD DISK DRIVE. The program will only recognize the first megabyte of storage, and all information contained thereafter will become inaccessible. DigiPack CAN BE USED to pack a file to or unpack a file from a hard disk drive. NEVER specify your hard disk drive in the DEVICE window for a pack or unpack operation. < FURTHER INFORMATION > For additional information, assistance, comments, or questions, the authors may be contacted in any of the following ways: MCI Mail : "FANTASTIC" or 264-0103 Fantastic Designs CompuServe : 73407,553 < or > P.O. Box 120 GEnie : F.DESIGNS Woodbury, NY 11797 <> Since our primary concern is supporting our users, we aim to provide as much support and assistance as possible (upon licensing, you will receive additional support information). If you are a licensed user, please include your ID number in all messages sent, or have it available when calling either of our voice support lines. < ABOUT THE AUTHORS > DAVID KLETTER founded Fantastic Designs in 1986 to unify a diverse group of independent programmers. Since then, residing in New York, he has written for a variety of computer publications, lectured at universities, spoken to user-groups, and will be doing supercomputer research at the Livermore National Laboratory this summer before attending MIT's Sloan School of Management in the fall. TYRON KHAN is a freelance programmer, currently residing in Toronto, Canada. With an honors degree in computer science from the University of Toronto and over ten years of programming experience, he has lectured in many educational institutions and written several extensive theses on computer science theory. FANTASTIC DESIGNS received its Certified Developership from Apple Computer, Inc. one year ago and changed its primary focus to GS-specific software. Although communication between cities is often difficult for large programming tasks, this hasn't stopped Fantastic Designs. Many soon-to-be-released products will be available over the next few months. ProTERM is a trademark of Checkmate Technology, Inc. Apple, Apple IIgs, Disk II, DuoDisk, IIgs, and ProDOS are registered trademarks of Apple Computer, Inc. &jh FOURINAROW FOUR.ROW.DOC<Y ,@ main Y """") ;8[i8pI0H8pI0%: :e ジ{i+k ;8[i{iHHH@"ݩ8 pI+: :e  :݂ : :e   ݅{i+;ik ;8[i8pI0P:i     prstuvwxyz{|}~  8pI % : :   8pI % : :  {i+;ik ;8[i{iHHH@"٩8pI0: : قթ8pI0}ש8pI0Z٩8pI0/:: e::e몵 ق "ׂՂթ8pI0}ש8pI0Z٩8pI0/:e:: :e몵 ق "ׂՂթ8pI0ש8pI0^٩8pI03:e:: e::e몵 ق "ׂՂթ8pI0ש8pI0^٩8pI03:e:: 8:e몵 ق "ׂՂH"hH"hH"hH"hH"hH"hH"hH"hH"hH"hH"hH"hH"hH"hH"h͆ϭͦ"h͆ϥͅυ{i+;ik ;8[i{iHHH@"p*H{iH"h: :e骭 'H{iH"h: :e骭 HH{iH"h8pI % H{iH"h: :e骭 HH{iH"h͆ϩ8pI ͅυ8 թ8pI02H{iH"h8 pI ՂHH{iH"hͩϥͅѥυөթ8pI0H: H{iH"h8 pIDHH: H{iHH"hцͥѦ"pIхͥӅѦ"pI Ղq ͅυ 8pI %q H{iH"h: :e骭 HH{iH"h͆ϩ8pI ͅυ թ8pI02H{iH"h8 pI ՂHH{iH"hͩϩթ8pI0vH: H{iH"h8 pIDHH: H{iHH"hцѥͦ"pIхͥӅϥՂͅυ {i+ ;i k ;8[iHHM")",""" ," 8"hi5"hir"hi5"hiY"{i+;ik ;8[i "HHM"","㩹8pI0,:"l<"8pI0F5"hilH:"5"hilH<"ズ8pI0K8pI0(: :eH"サ"{i+k ;8[il"H"h"HHH "hHH""iHH"((:"""" moqsuwy{d}dddd{imH"H"9"HiH"HiH""iHH"H""{i+k*Formatting System Disk.............Gotcha! ;8[i0""ii::{iH"{iH""HHH-"hH "HHH-"hH "HHH-"hH ""H"h*"{i+k.==Options...\N502*Oo==Eval parms...\N503*Ee.!>> Game \N3==New Game\N501*Gg>> File \N1==Quit\N402*Qq./>>@\N0X==About...\N400*Aa==Help...\N401V*?/. ;8[iN   l "$&((*,. 02468:< >@B{DFHJLHH "h"{i+kmain ;8[i """"""""""""H""{i+k ;8[iۥ8pI0>ۢ/"ۢ/"ۂ{i+  ;i k ;8[i{iH rJ"HH{iH "hۆ{iHS"{iHEJ"{iH{iH "{iHS"{iHRJ"{iH{iH "{iHttN"{iH9J" {iH{iH "{iH^^"{iHq|J" {iH{iH "{iH  T"{iHgErJ" {iH{iH "{iHO"{iH]'hJ" {iH{iH "{iHffU"{iHSX^J" {iH{iH "{iH**<"{iHEPJ"{iH{iH "{iH"{iH;]FJ"{iH{iH "{iH@"{iH*5J"{iH{iH "{iHX"{iH c+J"{iH{iH "{iH//U"{iHU!J"{iH{iH "{iHO"{iH %J"{iH{iH "{iHU"{iHX J"{iH{iH "{iH"{iHOJ"{iH {iH "H"hۢ "{i+k Okay TFour In A Row is a strategy game played against the computer. The object of the gameNis to get four of your pieces in a row horizontally, vertically or diagonally.TYou play by dropping the pieces into a vertical rack with 8 columns. The pieces willWslide to the bottom of the rack, or to the top of the last piece played in that column.?The game continues until a player has won or the board is full. The Game Menu;The New Game option clears the board and starts a new game.TThe Options dialog box allows you to change the color of your pieces, who goes firstNand the type of game to play. If you play GiveAway you are trying to force theScomputer to get four in a row before you do. You can change colors or game type inthe middle of a game.MThe Eval Parms dialog box lets you adjust how the computer thinks. The searchRdepth determines how far ahead the computer looks at the game. The weights adjustRthe value the computer gives to certain features. Read the DOC file for more info. ;8[i{iHJ"HH{iH "hۆ{iH"""{iH$`kJ" {iH{iH "{iH!!"{iH WbJ"{iH{iH "{iH!!"{iH*@KJ"{iH{iH "{iH!!"{iH*6AJ"{iH{iH "{iH!!"{iH,7J"{iH{iH "{iH!!"{iHNv#J"{iH{iH "{iH!! "{iH; J"{iH{iH "{iH!!"{iH3 J"{iH{iH "{iH!!"{iHIxyJ"{iH {iH "H"hۢ "HHM"{i+kOkay Four In A Row Version 1.101/88By: Bill Fortenberry2906 36th AvenueMeridian, MS 39305For source code send $10to above address. ;8[i{iHJ"HH{iH "hۆ{iH//"{iH0 J"{iH{iH "{iH// "{iHRJ"{iH{iH "{iH//"{iH2,7J"{iH{iH "{iH// "{iH6AJ"{iH{iH "{iH//"{iH66_AJ"{iH{iH "/{iHmxJ"{iH{iH "/{iH_jJ"{iH{iH "/{iHQ\J"{iH{iH "/{iHCNJ"{iH{iH "/{iHmxJ"{iH{iH "/{iH_jJ"{iH{iH "/{iHQ\J"{iH{iH "/{iHCNJ"{iH{iH "{iHHH"h{iH{iH"{iHlyJ"{iH{iH  "{iHHH"h{iH{iH"{iH^kJ" {iH{iH  "{iHHH"h{iH{iH"{iHP]J" {iH{iH  "{iHHH"h{iH{iH"{iHBOJ" {iH{iH  "{iHHH"h{iH{iH"{iH$ltyJ" {iH{iH  "{iHHH"h{iH{iH"{iH$^tkJ" {iH{iH  "{iHHH"h{iH{iH"{iH$Pt]J"{iH{iH  "{iHHH"h{iH{iH"{iH$BtOJ"{iH{iH  "/{iH +J"{iH {iH "/{iH +J"{iH {iH "/{iHl +J"{iH {iH "/{iHA g+J"{iH {iH "/{iH ;+J"{iH {iH "ۭH/"{iH//"{iHiJ"{iH {iH "H"h٥ق":#80 -H`----- {iH"HH{iH"h{iH"HH{iH"h {iH"HH{iH"h {iH"HH{iH"h {iH"HH{iH"h {iH"HH{iH"h {iH"HH{iH"h{iH"HH{iH"hۢ "{i+kOkay1234543214321HumanComputer------ Weights ------ Search DepthEvaluation Parameters ;8[i{iHJ"HH{iH "hۆ{iH66 "{iHDR]J" {iH{iH "{iH66"{iH45@J" {iH{iH "{iH66 "{iHAJ" {iH{iH "{iH66 "{iH: J"{iH{iH "{iH66 "{iHm\gJ"{iH {iH "{iH66"{iH[_fJ"{iH {iH "/"/"{iH66 "{iHl?JJ"{iH {iH "66{iH>FIJ"{iH {iH "/"/"{iH66"{iHn)J"{iH {iH "66{iHF)J"{iH {iH "  /"  /" {iH66"{iHMv}J"{iH {iH "H"h٥ق" " " v" Z" A" %80 `6H`55556*6 ۢ "HHM"{i+kOkayRedBlueYouApple GSNormalGiveAway Game Options Your ColorWho Goes First Game Type ;8[i{iHHH"H{iH"hi۩{iH{iH "{iH{iH "{iH{iH "{iH"ݩ-{iH{iH "{iH{iH "{iH{iH "{iH"ݢ"hѩd{iH{iH "{iH{iH "{iH{iH "{iH"ݢ"hե8Ѣ{iH{iH "{iH{iH "{iH{iH "{iH"HH{iH "h߆ߢ"#ϥ8ѩ2ӥi""{iH @:@:H "ߢ8" :"{iH"H"h٥ߢ "{i+;ik Okay ;8[iH" H"  {i+k ;8[i""  " {i+k ;8[iߥt߂."W"P E">"7"0ɐɑɒ ,"{i+;ik ;8[irHH"hʍ  nBnB"3HHH"hHH"HH"h: :e HH"h8pI % cBcB"  8pI % RBRB" H  8pI0JH"hʍ "pI ザ)8 04  8 8  e :e   hh+  ;ik H;[d 8 2 )    8 ) h+  ;ik {cH;[hh+hk {cH;[ JJJ -)0 0 0 0 0 0 0  hh+hhk {cH;[  :JJJ 1)0 0 0 0 0 0 0  hh+;ik{cH ;[ +;ik{cH ;[ I7+;ik{cH ;[ 7+;ik ;[   (+;i (k ;[I7   (+;i (k ;[ I7  (+;i (k ;[ jjjjjjjj +;ik ;[JJJ+)0 0 0 0 0 0 0 7    (+;i(k H;[IIʩ FeI+k H;[ I Iʀ f  8 F F I+kcck8k H;[IIIIʀFf ee&IIhhhh+k H;[ I I IIʀ&&ff !  8  FfFfͥ  IIzzzzzz+kIIkIIk##kkCCkIIk8 # zz(k *kJjkjjjk***k;8 ;[  {iH "{iH{i H " +;ik;8 ;[  {iH "{iH{i H " +;ik;8 ;[H({iH "h+;ik;8 ;[H({iH "h)+;ik ;[:"hH "h::H:"+;ik;8 ;[{iH "{iHU""+;ik;8  ;[{i H)" 8   {iHU"+;i k;8 ;[{i H)" 8d  "zH"HHg"h{iH ~"h"+;ik;8 ;[{i H)" 8d  "zH"HHg"h{iH~"h"+;ik ;[) eH0"+;ikHHH ;[ HHHHH &"  Ȁ8: ))e:  +  ;ikHHH ;[H HHH HH '"  Ȁ 8: ))e:  +  ;i k;8% ;[$ &{i$H-H+H{iH "{i$H{iH1H/H "+'+&*;i)k ;[HHH)H ("h +;ik ;[HHHH)H )"h h +;ik;8& ;[.H,H{iH{iH{iH "{iH2H0H "+(,'+;i*kHHH ;[ )f A [8Ai a {8ai 80))  J ) J) +  ;i k""""""""""""""""""""""""""""""""33333333333333333333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUffffffffffffffffffffffffffffffffwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww ;[HH "h h +k ;[HH "h h +k ;[;8 ")) )))));i+k ;[ H HHHHH "+k ;[;8")) ;i+k ;[;8" ;i+k ;[;8+" ;i+k;8 ;[.0*, & ( "$ ;iH"+;ik ;[;8 " ;i+k ;[;8 " ;i+k ;[;8 " ;i+k}xsn i d _ZUPKFA<72-(# "#'( )*";i(kbE6E %FpaF bhFR;;~;;2@CFMP^a dMpMzMM  MMMM  MM"036MBMLZ]`MlMvMF1ER(>z!O!O K ] q       4 A [ p  !O W U  KR KR KR1 E LN YV L_ [g Lp ]x L _ Y Y   W U  KR  ! M La j L~  a   ! % / : N S V Y \ l w            V^iy|:=@CIFMPSV\F`icif:i:xoH|F #0     #!)#/%5';)A+G-M/S1Y3_5e7h9k;n=q?t w zA}CEGIKMOQSUW  *4>HR\_jt:LOUFuFtt%FEx^^F  FHTW]F}ffF$*'*-FMFFP\_eF//F ,/5FUFF%Xiz""F)!,!2FR!!F!!F"Ua!d!jF!!F% 1 !4 !: FZ   ! ! F  !!!! !F*!]!n!!!W!U!N"l"~"/"/"F"""/"/"F#B#N#/Q#/W#Fw###/#/#F#$$/!$/'$FG$z$}$/$$$/$0%3%/X%%%/%%%/&A&D&/i&&&/&&&/'R'^'b'f'R'F'''''R(F#(V(b(f(j(R(F(((((R)F')Z)f)j)n)R)F)))))R *F+*^*j* n* r*R*F*** **R+F/+b+e+/+++/+,,/@,s,v,/,,,/,)-3-?-K-/N-/T-Ft----~-------------".0.S6.9. S.a.Sg. j. ..S....S....S../%/S+/./H/V/S\/_/y//S///80V0h06k06q0F0006060F0,1816;16A1Fa1116161F1126 262F12d2p26s26y2F2222336363F73j3m36r363333 446464F?4r4u46z4644445)56,5625FR5555~555~555~56~ 6 6~&696~B6[6`6`65b65d65f65h66j6*666W6U67F077O8O.8M8O8M.9OO9c9999@:9@:9999 :(:T:e:i: m:r:a:: ::d:!: :::G::h:; ;:;0;%"^;;;;a;a;;;;;;nB;nB;6;;;a;a;;; ;;a;a;< <<a<a<a<#<&<-<A<Y>>*>->v>z>>>>!O>>>>>>>>>>>>>? ?????7?E?K?N?Q?q?u?ax?a{???a?a??????????!O????????a?a@@@+@/@3@7@ ^@b@i@ y@}@@@ @@@@@a@@@@@a@a@@@@AA+BA+BA6'A7AKAcA BfA BiA6rA~AAaAaAAAAAA!OAAA BA BA6ABOBMC5C:C:RCC:CWCUCCD}B"Dv;PDUDUD[CWD^CYDaC[DdC]DD_DgCaDjCcDDeDmCgDpCiDsCkDDmDDoDDqDDsDDuDvCwDyCyDD{DC}D)DD,DD/DD2DD5DDDDDD8DDDDDDDDDDDDD D DD EEEEE E&E,ECE GE-KEOEDSECWEeEjEsEFxEFEE!FE!FEFEFE!FEFEFF#F-FF2FF=FFBFFNFFSFFdF#FlF#FuF#FzFFFFFFFFFFaP~FPLPLQPQ)MQPR)M RP[RU^RUlYYrYYxYYY ;[ cegik): c +;ik;8 ;[хх  ,@ ~global  ;[ cegik): c +;ik;8 ;[хх     : ؅؅ ie H  HH H".+ H) H1 H" :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  ) FOUR IN A ROW For the Apple IIgs Version 1.1 Documentation Four In A Row is a strategy game played on a vertical rack of eight columns. Each column can hold eight playing pieces. To play you drop one of your pieces in the column of your choice. The piece slides down to the lowest position in the column (the bottom, or to the top of other pieces in that column). If a column is full it cannot be used for new moves. The object of the game is to have get four of your pieces in a row before the computer does. There is an variation on the game called GiveAway. In GiveAway you try to force the computer to get four in a row BEFORE you do. To play Four In A Row start it from the Finder, or any other program launcher that can start ProDOS 16 applications. To chose the column to move in, place the arrow cursor on that column and click the mouse. The computer will put your piece in the proper place. After your move the cursor will change to a wristwatch and the computer will start to think about its move. Depending on the search depth it may take several seconds (or minutes) until the computer moves. When the computer is ready to move it will flash its piece then place it on the board. The cursor will change back to an arrow. After the computer moves you may move again, or select any of the menu options. -------------------------------------------------------------------------- MENUS -------------------------------------------------------------------------- Apple menu ABOUT- Displays the programs about box containing author and version info. HELP- Displays a help box with program rules and a short menu reference. File menu QUIT- Exits the game. Game menu NEW GAME- Clears the board and starts a new game. OPTIONS- Displays the option dialog box. Using the radio buttons you can select the color of your pieces, which player goes first and choose between the type of game to play (Normal or GiveAway). The color and type of game options take effect immediately so you can change in mid-game. EVAL PARMS- Displays the Evaluation Parameters dialog box. With it you can adjust how far ahead the computer looks (the search depth), and the weight (value) of the evaluation features. These are explained below. The default weights work pretty well. The default search depth is 3. A depth of 1 plays a quick, but poor, game. A depth of 5 plays a slow, but better, game. =========================================================================== How does the computer think? =========================================================================== I wrote Four In A Row to teach myself some of the techniques of intelligent games. Four In A Row is not meant to be the last word in machine intelligence, nor am I an expert on the subject. But Four In A Row will give you some idea of the basics. Four In A Row uses two techniques to judge how well the game is going, and two techniques to speed up this process. These are all described below. THE EVALUATION FUNCTION- An evaluation function looks the board at a given point in the game and returns a number based on how good this board position is for the computer. The higher the number, the better the board. The quality of the evaluation function determines the quality of computer play. Games like tic-tac-toe and Four In A Row have simple evaluation functions. Games like chess, checkers, othello and others would have difficult evaluation functions that had to consider more features. Four In A Row's evaluation function breaks down like this: The object of the game is to get four in a row. We'll call this a 4row. Winning the game is important so we want to try and build our own 4rows. Next we want to keep the opponent from getting a 4row. We will also want to block the opponents 3rows since they could lead to a 4row, build our 3rows, block 2rows, build our 2rows, block 1 rows, build our 1rows. Each type of row is called a feature. The evaluation function for Four In A Row looks at every possible combination of four positions on the board (call it a sub-row). If the sub-row has pieces from both players it is ignored since neither player could make a 4row out of it. If the sub-row contains pieces of only one player a counter for that type sub-row is incremented. There are counters for each player and each type of sub-row (8 in all). Obviously some features are more important than others. We don't want to ignore a possible 4row (for us or the opponent) just to make a 2row. So we must weight each feature according to importance. So 4rows for the computer would be multiplied by a large positive number, 4rows for the human would be multiplied by a large negative number, and so on down the line to the 1rows. Look in the Evaluation Parameters dialog box to see how I chose to weight the different rows. Look at the weights for human 4 and 3rows. These weightings put the computer on the defensive for these type rows. You can change the weights to see how they effect computer play. Lower the computer weights, raise the human weights, and the computer will help you win. Note- When the computer plays it will first look to see if one move will win the game. I did this to avoid a deep tree search when the winning move is obvious. Note- To play giveaway the moves are evaluated as normal, but then multiplied by a -1. This inverts the scoring process, making moves that lead to a 4row score low. Note- The weights and final score are type LongInt in Pascal. MaxLongInt in TML Pascal is 2,147,483,647. If you use large positive or negative values for weights make sure you don't overflow the calculations. This could cause the computer to give a bad score a board position. THE GAME TREE- A game tree (or look ahead) allows us to apply the evaluation function to future moves to see where the game is going. The depth of the tree is expressed in plys. A ply is one level of movement by either side. So, for a 1 ply search the computer considers each possible move it has. For a 2 ply search the computer considers each move, and each of your counter moves. The default setting for the search depth is 3. I recommend a minimum setting of 2 for the game. With a setting of one the computer does not consider that there is an opponent waiting to move. Levels 4 and 5 play pretty good games but take much longer to think out a move (5 to 10 minutes for level 5). At the end of the search the evaluation function is used to see how good the game is going at that point. These scores are "backed-up" to the top of the tree using the Minimax method and then used to select the best move. The computer can then select a move based on how the board will look after several moves. THE MINIMAX METHOD- Remember, the evaluation function scores based on how GOOD a certain position is for the computer. The computer is playing to maximize its score, the opponent wants to minimize the computers score. At levels in the tree where the computer moves it backs up the maximum score, at levels where the human will move the computer backs up the minimum score. The method of picking the max, then min, then max of the scores gives the Minimax method its name. The Minimax method always selects the best move, assuming best play on both sides, assuming the evaluation function is accurate. The techniques above are the basics for a intelligent game. We have a way to judge the value of a board position (the evaluation function) and we have a way to see into the future of the game (the tree). By using the Minimax method we assume our opponent is intelligent and make moves based on that assumption. If the opponent makes a mistake it will just leave us in a better position. Remember, these assumptions are all based on the quality of the evaluation function. Trimming the tree The farther we look ahead in our game the better it will play. A deep search of the game tree will give us the long term consequences of each move. But trees grow fast. Four In A Row has a branching factor of eight. A 1 ply search must look at 8 different moves, a 2 ply must look at 8 moves plus 8 counter moves for each move (64 in all). A 3 ply tree looks at 512 moves, a 4 ply looks at 4096, a 5 ply looks at 32768. So if there is any way to detect a bad move early, it is worthwhile, and will cut a lot of time off the search. THE MINIMUM WINDOW- This methods reads something like "If our opponent finds one move to suit his needs, he doesn't need to look at any more.". To put it in the context of the game: Let's say we search the tree for our first move. Using the Minimax method the tree returns a score of 100. So, assuming best play on both sides, our opponent can limit us to a score of 100 if we take this move. We remember the score of 100 and start the tree search for the second move. At the first terminal node of the tree, we find a score of 25. Our opponent wants to minimize our score, and 25 is less than 100, so we back out to the top of the tree taking the score of 25 with us. We already know that the second move is worse than the first because the opponent can limit us to a score of 25 with that move. We do NOT have to evaluate the other moves in the tree. We would just find a better move (which the opponent would block) or a worse move. We already know the move that scored 100 is better so we can skip the second move altogether. MOVE SORTING- When using a minimum window it helps to have the moves in some sort of logical order. Using the example above, if the move that scored 25 came before the move that scored 100 we would still have to look at all the moves in the tree. When Four In A Row makes a move it first does a 1 ply search and stores all the scores returned from the tree. Then it sorts the scores and does the deeper search of the tree in that order. If the superficial evaluation turns out to be right the poorer moves will be looked at last and will be eliminated quicker. The worst possible case would force an evaluation of the full tree. That would always happen without any type of minimum window or move sorting. The minimum window and move sorting techniques will ALWAYS return the same move as a full search of the tree, but usually in a fraction of the time. -------------------------------------------------------------------------- This program is in the public domain. You can do anything you want with it except sell it to someone else. You are not required to send me anything for using the program, but if you want to encourage the distribution of software like this you are welcome to make a donation. My address is in the programs about box, and listed below. For $10 I will mail you a disk containing the latest version of the program and source code. The disk will also have my other GS games (at this point Othello and Towers of Hanoi). These programs will also have source code included. These programs were written using the stand alone version of TML Pascal from TML Systems. As far as I know, the source code is compatible with the APW version of TML Pascal. Bill Fortenberry 2906 36th Avenue Meridian, MS 39305 01/88 POLYEDRESu' Y '  'POLY.BASPY Y %FIG.4t!@Y6 %FIG.2 t"@Y6 %FIG.3t!@Y6 %FIG.1 t"@Y6 FINDER.DATAgY Y  :08:10:"POLYEDRES de R. Le Masne"@ J14000:L D$(4)R]I14D$;"bload/gs.infos/polyedres/fig.";I;",a$4000"J16000:I:"ENCORE (O ou N)" "R{ponse en majuscule!"$A$ %A$"O"A$"N"36 &A$"O"5> ':"taper BYE pour retourner au finder"D (O 2"end"Lv/U*Uj@눹@s0sg|*U*U*\ ~Wj|@Ĉ}W*U*U*UĈ?8U l|W* ~\*U*U*U*U*UzwĈMU*U*U*U*U*Up*u @Xs*U@@8@/U*U*U*}gך+U*U*U*`Xnp0x@p|@W*U~MV*U~pp\`*u h`@sW*U@8yߪժ@`@|`pLsժժպտy ~@ĈĈ{ժժժĈܪ{՚pժժժժժOĈժժժժպ0~Cת0@ppժժsՎ֪ժժplp~x ``X|ժ3檝ժx`l?8@mժ`@?0pf/U*U*`p@ `sW~C`3~|_*U*U*5@կW @vW*ĈU*U*U*UĈĈ.U p|W*50@/U*U*U*U*U~?ĈV*U*U*U*U*\*`}.U~```U*U*U*gLՆ,U*U*Uzp4```@,p?lxx*UOX*u8@q*u@0psU*U p`?p?``vYתժՂp@L~@}?sժժ``y0@ĈĈժժժLjĈ֪@`sp```ܪժժժժ_Ĉժժժժ@x~?@pC@ժժ3Նتժժ@}@~ֆx4x@7檅x~``pOժpx@@Yg+U*U*` 3W8@pM_*U*U*U@U fW*``~ĈĈU*U*U*UzĈĈ+U `@mW*Up@p|pU*U*U*U*U?ĈX*U*U*U*UzV:@y@W| x{px*U*UjLy0U*U*u {@}*|p?>uO`j~_*Up@`Lj~U*UxgժժՆؚގLh`pĈ7ժժ`Ն@p|@ժs`xgժժժyժժժժ@g| |@`תժ?3f`ժ@ v ׎~`?p?@|p|ժx@ժĞ|~g~+U*U* ׆X 3~W:Hp`߈W*U*U*UĈ0U ؎gW* xpU*U*U*U*U*UjĈļU*U*U*U*U*Uj`*U NW*U`|pq|*U*U*U*ufLjު`*U*U*U*U@U`~x*h? p~`@.U*UzL@U*U*?@l{+ @`@?x`{W*U|~?U*U*~ l|ժժ՚O}x`Ĉ~ժժժ싑?Ъ܆Պ|@ժժժժժ߈Ĉժժժժժժ`<ժ@ ~0~ժժժֺ@ժժժ@0l`X? pxժ3檵ժ`xfp`@}?~Hp@|ժ@~ vyߪժ|pՊĈĈļĈpU*UjĈĈ@ĈժĈĄ/ݻĈժժĈ ꉑݻĈHoժժx~ ƈ݇xWժ꣄ժ`ժ@W*UĈݻ*Uվ`תժݻ`<Ĉܻ߻Ĉתܻ߻@|+U*uĈĻ*U*uժՊ`ĈޟĈ@pĈĈ*U*U*UĈĈĈ@ՊĈĈĈ?ĈĈ@U*UjňĈ`ĈժĈ݃ ԏ`ժĈ,ݻ͈Ĉժժ܃Ļ`ժĈ@݉h?@ժ@ߪhjĸp/ucժժתժ@ժV*UĈ*U݃`ުժ@0Ĉ݃׊ܪĈݛ@pW*U*UĈ*U*U~ժՊĈLjĈ`ĈĈĈ*U*U*UĈĈ`ߊĈňĸ`ĈĸW*UݻĈĈ?ժՓ@ժĈĂ8ݻĈ?ժժLjЈ@ժp߻Ĉ?ժ?pׂH+uƈݛ`_*@Aժժժժת?\*UĈ߻*U@@ժݻ?`ĈԻݻ@pՊĈLjܻ?@?U*U*UĈĻ*U*U*?@qժՊĈ葢ĈĻ@ĈĈc*U*U*uĈĈĈpƈ՗Ĉ@ĈĈV*ULjĈĈժΈ݃@ժĈp߻݈Ĉתժ՞܃ĺժĈު݉ժ|+U~@ĸ@?U*݃`תժժժ֪X*UĈ*U݃`ժň@Ĉݻ݃`ՊȫĈ~*U*U*UЈĈ*U*U*u`ܪժՊĈLjĈĈĈĈA+U*U*ĈĈĈވĸ@ĈĘ\*UݻĈժ՚Ĉ@תň`ݻĈժ@؈ժՓ@תXժ.U*?`ň*U*0֪ժիժժܪp*uĈ޻*u0Ĉժ߻ݻ~Ĉ߻0@ՊĈĈԻxW*U*U*U:ĈĺW*U*U*UzpתժՊĈĈĻ@֑ĈĈ.U*U*ĈĈňĈ݃`LjĈp*ULjĈĈժ߃`@֪՗Ĉx߻ߪժԃ`ļժƈxժ݋x~ժ`O8U*u?@U*U*߃֪ժժժت@+5Ĉ+݃|ժĈݿx+ @Ĉݯ}݃xՊĈĈ߻`/U*U*U*UjȈĈU*U*U*U*pתժՊ؈ĈĈ`LjĈ,U*U*ĈĈ@Ĉꉑĸ0՞ĈĈ`*UݻĈժĈ0@ܪވݻĈժߪժ0̈ժ՞ժxժx0U*U@ĈݻW*UjܪժϽժժ߻+Ĉܻ+ݻĈժ޻ݻ`_*@Ĉ+U~ުՊ@ĈĈp*U*U*U*UjĈļU*U*U*U*U|ժՊĈĈĺp؞ĈĈ8U*U*ĈĈ@ĈժĈ݃Ĉ@+uňĈĈժժރ`ĻتպĈ`Hժժxĸ|ժ`ժߏժ`U*U`*Uz݃ تCժժ. Ĉݯ݃ `ժĈ݇`?U*5`Ĉ+Uj߃ `תՊ@ĈĈ`|U*U*U*U*U*LjĈU*U*U*U*Uz~ժՊ̈ĈĈ|3fL3fLk{vĈĈxȈ>fL3~@Myժժժ_ժ9ժժժȈňo\363`x|3fLժ+O9"\ꏑ8f<30@`ܪO3fL?U^.UĈՂjxy8Ȟ0x|xO?@ժ7f|#dWn^jOyժxsת՚xqȸ=Ę@`3fW3@تծdO3f\j*ĈOת?Ȉz x~G+3`@#tψ?fLkĜO3jOy?3f<@`_Ĉ?`~yȈiL P3~ko`7fL3fL3}t߈Ĉ?Ĉ3f<fL`7fժժժտ{ժzժժժ؆pfLypL0||3f|ת׶f}Ĉު`sO@@تվfLs~ܪտժ`gQؽĈ||@3fW`ժ{=U_*}fު?x֪ׯՎ_ڏ@`O'L` ?fLľ}ުݫ||_gL x?3ψ2fL+}f|fLk@`opň30fL{~L3fL3fL+\ĈĈ`ψkJgLs3~psתժժfժl`ժժĈo@3f03|xպfL3+MY"V LjgL2 `@3fLO|[+}`Ĉתȟժkժ3{ |||fL9;0ժպf|b/UkZ*UתxܪՆp5Ć`@?fK530`bk3f|jjĈ#UȈj||j30r+͈fLkN3*UX`O3f\9@@3ĈpȈygL9`3~pĈ3fLfLxfLժժ~@ժժnLY`L ~x3fLy׺fĈ߈3Nx`p`gLs"@ժدժտժx|fLj~xO3^O`ժG|*U*U~ժتկՆ빑`@_ybLx~jgL`Uzի|xfL@G_*3ψ4fL+Uz|p>3fLg`@x~Ĉw3f fLpժժժժվժժߪժժժժoȈ߈k|L33|`3fժժz|Dk@ժժĈĈo3f`3~p`gL3f|/uYbUxĈպkzxL48p_@ժ3flDq?f|@Ĉժժkժ>0/Ĉ~x3fLw6 @ժժg|qW*ujj*UjwժȈUg`?~83 NwWj3fljjĈ@Uj~Ȉ~~x3 xqU*͈LoL3*Ujo`pgL3f|^c@?nĈ@ȈfLY`3~?`gժժժժժժ۪ժժժժp3fLlLv@LժժsמQ?ժpL@Lp?@ժ3fL3fhȈĈ՚`3Lxp?|}ժLs?"|}s@ժժ׿``}݈~pL3wOתժ?>U*+U*}ժ`ݯpzoL@?UzLs@U*}{`~xfL?Uz߸3Ljw8fLW*}~@_3fL~O~ĈxĈO3f@fL@}|ժժժժתժӪժժժꧾȈLjk@O33{>3fLߪժjL'd:ժ՟Ĉ@3f @3@p?תL3fL/UY2UĈՎjO<x@p~`{ժ3f|/DhwWgLĈժ`ժ|wȨp3flY3֪u~+U*]j*+U*Uժ@Ȉf>p~G,3xD|3fLj@?uol@Ȉ?f~p3Cs+}ȈMmMH3~+Ux3fL3fl{kĈ>Ȉ3fL@3~sߪժժժoުժgժժժ6fLxL@y~L3~ժ3~ qժň⫍N@M``֪3fL3ߪgxЈՆտվ<6H`x~>f~ժMs ~W~3ժx~?@ժׯպ@|`M3|M@ܪպQsժݯx~~gL@Os߈3v{3~M_p?M@y_zLj3Ǹ38fLWz?@oL3fLs|FĈ`ĈO3f gLĈĈĈ@ĈĈĈW*UjfLsxpM?U*U*U*U*U@*U*U*U*Uz+0`Ĉ@+UjĈ3vxp̗03fL_*U*U*@?U*U*uW*U*`Ę@UjĈĈflx@0fĈO3fLs/UF_j/U*U*U*Ĉ*@aajĈĈĈy?`abcdef0UĈ@Ĉ_j0fĈĈ7fL3~\/U*U*Ĉ*ĈĈĈĈX*UĈ@ĈĈW*U0flĈ.U3~ĈĈU*_*U*U*U3fL3f,UĈĈ@LjĈW*0fLĈV*U3f|LjĈU*_*U3f<VĈĈ@ĈĈ0v`Ĉ+U*U3fLy+@ĈĈ@ĈĈĈ0̈@3flĈ?P7fW*U*U*U*U@_*U*U*U*U`@`ĈfLyĈψ?P3f|+U*U*@/U*U*Ĉ@`ĈĈsLj?Ĉ@PYĈfL3fLyWNW~CqĈĈĈf8UĈ@ĈW*PĈ3fl~|Ĉ~ĈĈĈĈ\*UĈ@Ĉ*UPsĈLyĈxL3fLy.UĈĄ@ĈĈ* P3ĈČLsĈxLyWĈĈ@ĈĈP@Ĉ@L3vĈpĈĈĈ@ĈĈ`Ĉ`U*UڈgLsx0*U*U*U*U@_*U*U*U*}U*@@p*UĈ3f?xğ0ĈfL3~U*U* @/U*Uz+U*Uj+Č0UڈĈĈgLx@Ĉ0fň3fL3f~ZwW*U*U*UjĈ*FXĈĈĈ,UĈ@ĈW*0f̈ĈfL?Ws_*UjĈW*|V*UĈ@ĈĈ*U0fLĈ@+U3fĈĈU*/U*U*U3fL3>+UĈĈ@LjĈ*0fLĈ@U*U3flLjĈ+U*/U3>@uĈĈ@ĈĈ:p@Ĉ`*U*U3fLyp@@؈p3fLĈ?O?PfL?U*U*U*U@W*U*U*UzxψĈLĈ@ψ?P3fLY_*U*@+U*uĈxĈĈĞ3~Lj`Ĉ@PĈgL3fLswL|ψĈĈĈ~.U`Ĉ@ĈU* PĈ3f@lĈxL3fL3f|W*uĈĸ@Ĉ+UP3ĈĨ`LyĈxL3fl@+uĈĂ@ĈĈ+5P3ĈĆ`LsĈxl`ĈĈ@ĈĈkpňpL3fĈp/U*U*U*U*U*@/U*U*U*U*UjĈ8U*ULjL3~xq03vW*U*U*U@W*U*U*U_*UĨ\*UĈĜ3f~xpŸ0ĈgL3f|+U*5@+U*?U*U*Uވ+ Ć,ULjĈĈL}@Ĉ0fLj3fL3fL}/U*U*U*UĈ*VĈĈĈĸFONTESEDu' F' '.AVANT.GARDE.14 .),̮.AVANT.GARDE.24$),̮.AVANT.GARDE.18$ Z),̮.AVANT.GARDE.121t ),̮.AVANT.GARDE.109 ),̮ Avant Garde! [hHa@s8  <|(?@`L  T  ǁ? A y (  *@$HhH9D*(a Ba( T@L@  & E0(C؇P` =8d( "(@V [{h_hHE *HE @ BA@aD@@ ICؘfP`0B@  " $@CJH0E ! CP`"DA"=DGHKRR[dmrz  &,29=DLRV\blv "()07>ELRXabkt~!&/49;>ACMWakry                                                                                      Avant Garde!$-000` 0 {f8aÀp?xxl0 `0  !"  `00`?`f xa` x 0 ` c0{f ax6?xl0 <` ? 0`3dz0<0 x ```0c`~ c3```?0x{ac``0`c`ǀ`{xf< x 0x`0  p` 30` `3 0  0?c1`0g`fc`p``0{?100cx`30f0 c3 fx0``al6 `3  `` 00``  03`` a `< 0 3c`x 01<6y```{0l301cx`6x<l0 f6x``al6 16 `` @  a~ ca0 PP? #`8`8< g`0?1``<3`c`3`6l}f6x ``l6 1f<|>yπ|<<<  >a|0|c π> `f>3 PP6` p``Xf`<c08?1``6f` c`03g6xcl0x x0f6  0`{{~<<< g??c ?8d#1 Xc 0 pc`??`@L?f`6f`|0 1<<`0`7|` cac fx0`0x x8f c 0`8;a~s<668  p{psc w89pv`ـ! H<<< 8gp~p0``@y` fpv`7f`~`l`0 1a ?0``00  ccxfx<0`x f c `0~0 a |l36 f3 `;v`3 fc 60`6`sǝ! ` M 88<>|d`<`p`@0y106`<`0cf`00 13```? 0 c< ك`0x=<c c`0<cxx x6 cc0` x<6c <x`?# @ E |}`<`??00>0 ` 6aaf 0 13``0 c< 30`0|0xcc cx<cx0x x6 cc00` x<6c <x`?1x< @ G ``00c ` 0`f 0 1x`` c < 00<0x0cc1x<cx`x xx3c `0 x<c <x``18" @ B Æ<? `` `A`` 0fa ?1x`036 0c <0vx<`<0x03xaa10  <cxx x3c x<c <x``18" `0200303f`a00 13`3`0f`0c8<00  66~``98`a`0<cx8x x16 `` ?`x<0c <x`14!0`88` `c3`f 0 f`a0 13`0 63``f``cpf 00 p33 f~`0``a`00~0 ax l3q6 0 6ـ ``;v`3 fc 60`6>8`~163` 0`1`<p3 Aya`<`f 0 yf`a 1a ?00 6`f0`38``` 80`0x<cc{{ `<x0`008;ax ns6 0 `ǀ<01p{psc 789pwx` 1ca0`<0``F#p~`vfy0f ?pv<0f` 36 1x aπ|<0 0`8>a|0|c 0>`?1?ca?φ0l00f` 018` ~` 0 0`a13`0`1` 0`8`1``cp 0x`0 0`1`6` ?p`<<x88p$5FHOV]kpvx #5HTfv#1;ESbw +79>IK_kx   3EO]p~  ,9FS`my$(.8M`oy -8:FSal{'1;@EOYdr}   " ( . 2 E X h {                                                                 Avant Garde! t$ H@`

?Hhh@H!*P@@@#%&'()*+,-./$B@(DAP(H@#!@d ``P0L0d"   @`@P$ 0b@ @H @J@@ D@5  <8 @@ $@H" @D   9 $ 0(!P00 ``( @P@"@( ADP @ @P@@ H   "1@>#09 (Fg ```z$A~AH F0 "PP0 5`a( @P@"@$ABP @ @P@@>6}$ PHyp#C  `$@|`AHr@ I0 "PHP 0@ `b( ` " DP"B>g>G`^>m`P@#|>>DK>000?@$#PH xD8G  ' 2  @ u `A`@  DW2 $@ `d$` " DP"B31  apa0n @`PP `vf 2DL& 3`000"?pHDǀB:T3A10 P 0`   `A@  CXX@P2) G@h$` p" B" Ab`@,@ P"P @h 4$DH@P000"@Ȅ!<(?8A0L ?P a `AH@  H@0!(``ID@ `x"#` "" PA` ` d`@b@DQQA0 0@` DH` 0000"(Ag(3$ FA @@ @  D  ``A(@ !(@0!'0? @ `d"#` @"" @` h`@a@D "JHA0 0DH` 0000" CycFA! @ @?D  ``A  @  "0@0" @` 2 $ @ `b"#` " A@@` `x`@`b@ HPAT0F0 0@ DH` 0000"!cDgyc !CB2@@B@ @ (!z '@H``A 0@  $?0" @@ pa!CPA" AA @` `d`@`@ (PP@%P 0@ DH` 0000"|!# <c  A CB L `@ P@a H`A@0$@  ( P0"  @ p`!CP@T " AB@@Db`@,@ (QPH@P @h 4$DH@P000"A  DP8@ $ ` P P@ H(`A@B"(B @00@HHDA0 @d hP L0d!@@D31 a`@n 2!!P00h 3`vf 2DH 3`hhhb#0 0T300`    afAg>G`@>a!P0>#|>>DH>{<`Ǔ>?@  $|;@@@@@3@H@  @@@D@ @0@@ 08B@@<0#016;AJMRSW_cks{  *+2;BOZgp} *5;FNORYZiq| +5@KValw "'/8?DLTan| *=HPQZclt  '07?BEMU\]`fw  #),18                                                                                                                      Avant Garde!  $ Q$ H @@H @@B AB I @h1.pOq?a ~ C18BX(( PPP@ m@ `P|>tjAw݇0 &@b9( %j  h J11` `b  Bd BT $(ĂA&AAfL@`ɀ`0234567I$ !C 'Q1 aF H ad  ( =s<=?T|zzzzzzxat(9B x" &HCׇ J x0I%|>; !AD2D*Q!2}:400 )H ah  $P 4$CˌqBCҐ!T‚ a)@"B!cD  $8HDȉ  (IA!AC H" cF */ pL  % ! @ aRBTBan1A~"Dh (0P)@ @`? EIO)@`!Gш8$ CE%+` a hL @ EPB! @ a"D1Ba)GC1!DB?($PQP @`!>B)I )@`!B0(D $(` a d, j EB  aRHTa)B xDH$P)@@`!BII)}Є`!1D 0cD@00P`bF* (D 4$CaBCDT$H0D 8㌀rAAM$8HH!  `a" I)EPA?"E!@$ F?p\8!?F GH=a<=DT'߂|8zzzzzzx]t'|>~vr <ח!?P`xa I Hƃ?|>9?@ D @ 0?B(@<`  #$(,18:=>CHKPUZ_dinstv| $/6=BEJMR[]emt|  '07?GOW_gnv~"$',6?HMSY`hmu~#,168:?EKRV]`chmrsuz                                                                  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νf8:;<=>;[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                  a description des traitements et celle des objets se fait en mme temps et donne pour terminer un algorithme. Il existe une codification pour la rdaction des algoritmes. Cette rdaction n'est pas obligatoire, elle se rvle vite fastidieuse, voire mme inutile, si on utilise un langage comme Pascal avec des programmes bien documents. 1.3 Les structures fondamentales -------------------------------- 1.3.1 La squence ----------------- Un traitement est dit squentiel quand il est le rsultat d'actions qui se suivent. Exemple : (Faire l'addition de 2 nombres) --> 1- Entrer le premier nombre ; 2- Entrer le deuxime nombre ; 3- Additionner ; 4- Afficher le rsultat. 1.3.2 L'alternative ------------------- Un traitement est alternatif quand il propose un choix dpendant d'une condition. En fonction de la condition, le programme fera une action ou une autre action. Exemple : (Corriger une rponse) --> Si la rponse est exacte crire Bien sinon crire Faux 1.3.3 L'itration ----------------- Un traitement est itratif quand il y a rptition d'une instruction ou d'une srie d'instructions squentielles. Exemple : (Afficher les 10 premiers nombres) --> I vaut 0 ; crire I ; Tant que I ne vaut pas 9 ; crire I+1 ( A suivre) Pour ce numro, J.Rey nous a communiqu la mthode permettant de modifier les lecteurs Unidisk 3,5 en lecteur Apple 3,5. A sa demande, nous ajoutons les commentaires suivants: Cette modification est rserve aux as de la bricole, aux rois du fer souder. Dbutants ou maladroits s'abstenir! Il en va de la vie de votre lecteur. Vous trouverez toutes les informations sur le document joint la disquette. Art.Toolbox2: La toolbox,deuxime partie Chapitre 2 ---------- L'interface utilisateur-ordinateur ------------------------------------ Les notions de base,les pointeurs,le clavier,la slection et l'dition. 2.1 Notions de base ------------------- La communication entre l'homme et l'ordinateur passe par le biais d'un programme que l'DFGHJKLMNOPQRSTUVWXYZ[\]^_on nomme application ou logiciel. Ce programme fournit l' utilisateur un certain nombre d'activits. Quand une activit est en cours, elle contrle tous les changes avec l'utilisateur. Pour accder un fichier (document),l'utilisateur doit cliquer dans la barre de menus ou faire un double clic sur l'icne reprsentant ce fichier.le document s'affiche alors dans une fentre (window); S'il est trop grand,seule une portion de son contenu sera visible. On peut avoir plusieurs fentres simultanment l'cran. Cette partie de l'cran o les fentres peuvent tre ouvertes,fermes ou inactives rappelle le dessus d'un bureau (dektop). Le Finder (difficile mettre en franais) est le programme d'application qui va permettre de passer d'un logiciel un autre sans rinitialiser la machine. Il permet en outre de grer les disques,de les organiser,de renommer,de copier, de dplacer,d'effacer des fichiers,en plaant le document en cours dans la fentre active. 2.2 Les pointeurs ----------------- Pour manipuler une grande partie des objets disponibles sur le bureau,on va utiliser un pointeur,le pointeur est un dessin en forme de flche ou autre,dont le dplacement est assur par un priphrique de type souris (mouse). le mouvement rel de la souris sur la table de travail est reproduit sur l'cran. La souris possde un bouton,c'est un interrupteur qui lui permet trois actions principales en plus du dplacement. En premier l'action d'appuyer et,ART.TOOLBOX2E3ZZ+ART.ERREURS?ZZ,ART.ANNONCESkV V FINDER.DATAirM6 W (ART.BRAM sZ Z ART.DERm;ZZ de relcher le bouton qui peut prendre deux formes La premire forme est le simple clic,celui-ci permet dans une zone autorise la slection d'un objet. L'effet doit tre immdiat,visible ou audible. S'il s'agit de la slection d'une commande,la commande est slectionne lorsque le bouton est enfonc et elle est lance lorsque le bouton est relch. La deuxime forme est le double-clic.C'est un clic suivi immdiatement d'un autre. Le dlai entre les deux est important,trop long,l'action sera interprte comme deux simples clics. Ce double-clic permet d'ouvrir un objet,de slectionner un objet plus important qu'avec un simple clic. On pourrait envisager le multi-clic, mais il est dconseill de le faire. Pourquoi rendre compliqu ce qui est simple? En second lieu,une autre action,celle qui consiste maintenir le bouton de la souris enfonc (pressing). Cela permet de lire un menu que l'on a droul,il ne se fermera que lorsque le bouton sera relch. Et pour finir,la troisime action,combinaison du bouton enfonc et du dplacement de la souris (dragging). Celle-ci permet de dplacer les objets sur l'cran, de dplacer les ascenseurs dans les barres de dfilement,de changer la taille d'une fentre,slectionner une srie d'objets,choisir une option dans un menu, choisir une partie d'un texte...Avec une restriction,si l'utilisateur dplace le pointeur au-del de la zone active et relche la souris ce moment-l,l'objet refusera de s'inscrire et retournera sa place initiale. La forme des pointeurs attachs la souris dpend de la zone d'utilisation : _ La flche (arrow) est le pointeur par dfaut,le plus utilis. Obligatoire pour la barre de menus,les barres de titre,le bureau,les contrles,les menus d'outils. _ Le signe + (crosshairs) est le pointeur qui sert tracer,diminuer,ou agrandir les objets graphiques. _ La croix en relief (plus sign) est le pointeur qui permet de slectionner un champ ou plusieurs dans un tableau. _ La montre (wristwatch) est le pointeur qui est utilis lors d'une opration lente dont le systme attend la fin pour rendre la main l'utilisateur. - La balle tournante (spinning ball) est utilise quand le systme reste inactif durant une opration mmoire longue. Pour viter que l'utilisateur ne se croie victime d'un plantage du logiciel.Si l'opration est vraiment longue,il est prfrable d'utiliser la montre associe un indicateur visible,une barre qui se remplit,comme lors du boot de GS/OS. Le programmeur peut aussi dessiner les pointeurs qu'il estime utiles. Dans les logiciels de dessins,le pointeur prend souvent la forme de l'outil slectionn, celle d'un crayon par exemple. 2.3 Utilisation du clavier -------------------------- Il est vident que l'utilisation principale du clavier est d'entrer du texte. Il est d'ailleurs semblable celui d'une machine crire. Les claviers changent suivant les pays. Certains caractres existent sur certains et non sur d'autres. Pourtant,il est possible sur le IIGS,en utilisant une fonte tendue et un accessoire de bureau,comme le clavier bien tempr du numro 1 de GS Infos,de les obtenir l'cran. En effet,il y a trois sortes de touches,les touches de caractres qui envoient l'ordinateur le code du signe grav sur le cabochon,les touches de modification qui elles tranforment le code d'une touche appuye en un autre,multipliant ainsi les possibilits du clavier sans accrotre exagrment le nombre de touches et les touches flches au nombre de quatre qui servent dplacer le curseur sans se servir de la souris. Les touches de caractres comprennent les nombres,les lettres,les symboles et un certain nombre de touches considres comme des caractres, retour (return),espace (backspace),tabulation (tab),effacer (delete). L'action de ses touches particulires dpend de l'application et du contexte,elles ne sont pas forcment utilises. La touche retour est utilise pour la fin d'une ligne,comme le retour chariot d'une machine crire;pour accepter dans une bote de dialogue,il remplace le clic dans le bouton par dfaut;pour marquer la fin d'une entre de caractres dans un tableau ou une ligne ditable. La touche tabulation sert dplacer le point d'insertion d'un item l'autre,d'une rubrique l'autre dans un fichier. La touche espace outre sa fonction de placer les espaces entre les mots permet aussi parfois d'effacer vers l'avant. La touche delete efface le caractre gauche du point d'insertion ou tout le texte slectionn,comme la fonction couper (cut) du menu d'dition. Les touches de modification changent la valeur d'une autre touche et peuvent tre combines entre-elles. Il s'agit de la touche d'inversion de majuscules en minuscules (shift),la touche de verrouillage du clavier en majuscules ou minuscules (caps lock),la touche de contrle (control),la touche option (pomme ferme) et la touche de commande (pomme ouverte). Les touches flches ne doivent pas remplacer la souris. L'utilisateur doit avoir le choix,dans certaines situations,certains prfrent la souris, d'autres le clavier.De toute faon,elles ne doivent agir que sur une petite portion de l'cran,les grands mouvements sont rservs la souris. Elles ne doivent tre utilises que pour dplacer le curseur d'insertion et augmenter ou diminuer une slection dans un traitement de texte,un tableur ou une base de donnes. La flche vers le haut (up arrow) et la flche vers le bas (down arrow) changent respectivement,le curseur d'insertion d'une ligne vers le haut ou d'une ligne vers le bas. La flche gauche (left arrow) dplace le curseur d'un caractre vers la gauche et inversement pour la flche droite (right arrow). Pour un dplacement en haut de page,bas de page,dbut de ligne ou fin de ligne, on utilise la touche flche approprie,associe la touche de commande (pomme ouverte). D'autres combinaisons sont faisables,mais il est dconseill d'utiliser des squences de trois touches presses simultanment,elles doivent tre rserves aux oprations exceptionnelles,l'accs au tableau de bord par exemple. Lors de l'arrive la fin d'un texte,il vaut mieux choisir de bloquer le mouvement des flches droite et vers le bas. Dans les logiciels graphiques,on peut se servir des flches pour dplacer un dessin d'un pixel. 2.4 La slection ---------------- Lors de l'usage du logiciel,l'utilisateur est souvent amener slectionner un objet ou une opration. L'action doit tre immdiatement suivie d'un effet visible. 2.4.1 Les diffrents types d'objets ----------------------------------- Nous pouvons ranger les objets dans trois catgories,texte,graphique et tableau.( text,graphics,array) Sur le IIGS ,il y a plusieurs modes textes. En mulation II,on a le mode texte 40 colonnes et le mode texte 80 colonnes. Celui qui nous intresse dans l'tude de la bote outils est le troisime mode,semblable celui des Macintoshs,le mode texte graphique,celui qui permet le Wysiwyg,l'utilisation de caractres de taille et de forme diffrentes,en mme temps l'cran. Les graphiques sont des dessins fabriqus par l'application ou l'utilisateur. Il peuvent consister en l'assemblage de plusieurs parties toutes slectionnables individuellement. Les tableaux peuvent avoir une seule dimension,c'est alors une liste (list), ou deux dimensions,c'est un tableau cartsien ( form ou table) deux entres, constitu de lignes ou ranges(rows) et de colonnes (columns). Ces colonnes et ces ranges sont matrialises l'cran par des lignes verticales et horizontales. Une unit d'un tableau s'appelle un champ (field). Chaque information contenue dans un champ peut tre du texte,des nombres mais aussi des graphiques. 2.4.2 Mthodes de slection -------------------------- Dans tous les cas,ce qui permet l'utilisateur de savoir qu'il a fait une opration de slection est l'affichage en vido inverse de la zone slectionne. Il peut avoir slectionn en cliquant ou en glissant la souris bouton enfonc La mthode de slection par le clic sert choisir un objet. Le double-clic sur un icne s'il s'agit d'une application provoque slection et ouverture,s'il s'agit d'un outil dans un logiciel de dessin par exemple, il peut provoquer l'ouverture d'une bote de dialogue,c'est un raccourci qui vite de passer par la barre de menus. La mthode de slection,par mouvement de la souris bouton enfonc (dragging), permet de marquer une zone o tous les objets qui en font partie seront slectionns, quand le bouton sera relch. le point de l'cran ce moment l se nomme (active end). Le point de dpart de la slection est appel en anglais (anchor point),le point d'ancrage.Tant que le bouton n'est pas relch,la dimension de la zone suit le dplacement de la souris,dans la mesure du possible,si la zone concerne sort de la fentre visible,celle-ci doit dfiler,afin de permettre l'utilisateur de terminer sa slection. Dans le cas de slection de texte,dans la zone dfinie pendant le dplacement, tous les caractres contenus passent en inverse. Si on choisit des lments graphiques,eux aussi apparaissent en inverse,mais en plus,un rectangle pointill marque les contours de la zone slectionne. Une zone slectionne peut encore tre change de dimension. Pour cela,l'utili- -sateur doit enfoncer la touche Shift,le bouton de la souris et la dplacer. Le point de dpart ne changera pas,seul le point correspondant au lch de la souris peut se placer ailleurs et marquera la nouvelle slection. 2.5 L'dition ------------- L'dition comprend l'insertion (inserting),le remplacement (replacing),l'action de couper (cut) et de coller (Paste). Pour insrer du texte,l'utilisateur place le curseur d'insertion en cliquant l'endroit o il dsire mettre ce qu'il a ajouter.Il n'a plus qu' taper les caractres,le curseur se plaant de lui-mme droite du dernier entr.Si le texte comprend des lignes dlimites,il faut prvoir le passage la suivante sans que des caractres disparaissent. Pour remplacer du texte,on peut l'effacer et insrer le nouveau,ou alors utiliser la barre d'espace. Celle-ci met le curseur sur le caractre suivant qui peut alors tre remplac. L'action de couper et de coller,permet de supprimer ou de dplacer une partie de texte ou de dessin au sein du mme document,d'un document l'autre et parfois d'une application l'autre. Ainsi se termine notre deuxime partie. La prochaine fois,nous verrons l'aspect visible et les raccourcis par le clavier d'une application crite dans les rgles. Dominique Toussaint. +U:Ĉ@ĈU*0f܈ĈgL?`Us/UΈĈU*_*U*U*U*U3fL3fL@U*݈Ĉ@ňĈ/U:0fLĈp*U3fňĈU*_*U*U3fL?`*ĈĈ@ψĈĮu0fLĈ0U*U3fLψ+U*_?0ψĈĈ@ĈĈ@ĈX*U*U3fL?U*U*U*U*U*@+U*U*U*U*U~\Ј|3fL}Ĉ?PL*U*U*U:@U*U*U*}ψ ~ĈĈLň܈C߈PĞ3fL3?U*u@*Uz~ĈĈ3~7Ĉ@PĈL3fLso}Lj0ĈĈĈĈ}@+UjΈĈ@ĈU*5PĈĜspLĈxL3fL3v`U*ĈĘ@ĈļUjP3ĈĘpLĈxL3fp*LjĈ@ĈĈUP3ĈĂxL3~Ĉx8ĈĈ@ĈĈĸƈ|L3f~Ĉ_*U*U*U*U*5@+U*U*U*U*uW Ĉ.U*ĈO3~xؓ0Ĝ3fl/U*U*Uj@U*U*Uj/U*UĘW*Ĉ3f|xA0ĈL3fLyW*UA*U_*U*U*ULj*0Ă+ĈĈĈOy@uLj@Ĉ:0fƈĸ3fL3f|pW*U*U*uĈ*`ĈĈĈĈs`*UjĈ@ĈĸU*u0f숑Ĉ8U3~ĈĈU*/U*U*U*U3fL3fL0UjLjĈ@LjĈUj0fLĈX*U3f~ňĈU*/U*U3fL?XjĈĈ@߈ĈU0f|Ĉ,U*U3fL}߈U*lňĈĈ@ĈĈĈV*U*}3fLp{+U*U*U*U*u@*U*U*U*U*ĈfLyĈ@?PL3~U*U*Uj@?U*U*U~Ĉ0@ĈĈsň`ňAPy3fL3f|*UC_*}`CĈĈĈv`U`Ĉ@_jPĈM3fLYx~Ĉ@ĈĈĈĈp*UzĈ@ĈU*UPĈ|L}ĈxL3fLs8UzĈĈ@ĈU*P3ĈĘ|LĈxLs\ĈĈ@ĈĈWPĈ~L3~ĈĈĈ@ĈĈ ƈ~O3f|Ĉr(FIG.11FIG.3FIG.21FIG.4%<POLY.BAS ,@ ~global ;[ !#%'):  +;ik;8 ;[     : pr ie H  HH H"2+ H) H1 H"z :    A+;ik;8" ;[(@**d(*)ȷȷ)ȷ)Ȅe2 4  )$ART.BRAM5 ART.TOOLBOX2< ART.ANNONCESART.ASS25< ART.ASTUCES5 ART.AWORKSGST< ART.DERNIERESTART.DICTIONNAI2T ART.DOMPUBLICs< ART.EDITORIALs ART.ERREURSsART.GSOS<ART.LQ ART.MACROS ART.PASCAL<ART.REALISATION*&jh DIGICOPY.DOCH DIGICOPY.GSlances pour prparer nos tats gnraux. Dites-nous ce que vous dsirez et ce que vous pouvez faire. Amicalement D.Melchior ) - Stand de digitalisation d'images - Vision stroscopique - Stand APPLE IIGS Buyer's Guide - Prsentation de softs GS dont un multifinder - Stand BREJOUX, o on a appris la disponibilit de la TransWarp GS 7Mhz pour la fin du mois (3.083,60 F TTC) - Dmo CD ROM Apple sur GS - Les gens d'Apple prsents, nous ont informs de la sortie dbut Mars, de GS/OS francis,ainsi que la disponibilit de la ROM rvision C pour les anciennes cartes SCSI. Ces deux oprations seront payantes, mais de faible cot ( sous toute rserve et sans confirmation,environ 90 F pourla ROM et autour de 100 F pour GS/OS) - Le guide Apple II dit par Apple est disponible et gratuit (voir plus haut). Tout s'est termin quatre heures du matin pour les plus acharns. pqrire de volumes Prodos DIGICOPY 1.0, un excellent copieur Ces deux programmes sont accompagns de leur documentation. Chacun vaut $10 U.S. Pour le rglement: Fantastic Design PO Box 120 Woodbury, New York 11797 ICONED 1.3 dernire version de l'diteur d'icne de Paul Elseth.Cette version permet de rcuprer les icnes pour les incorporer dans ses propres programmes. Ce programme vaut $15, l'auteur vous donne 10 jours pour l'essayer ou le dtruire. Pour le rglement: Paul Elseth 2739 Fairview Ct,SE Rochester,MN 55901 Dans le dossier JEUX, un freeware : FOUR IN A ROW plus connu en France sous le nom de Puissance 4 Pour le plaisir de l'oeil, deux animations graphiques: POLYEDRES- R Le Masne nous a transmis la ralisation sur APPLE IIe de 4 polydres, parmi ceux qu'il dcrit dans son livre. Nous en avons fait une petite animation en Basic Applesoft. Pour la lancer, retournez sous le finder, ouvrez le dossier POLYEDRES et faites un double-clic sur POLY.BAS ANGERS.SHOW Une animation de J.Rey, quelques photographies de la manifestation du 11 fvrier, digitalises l'aide de Thunderscan. Pour la lancer,faites un double-clic sur le programme basic ANGERS.SHOW. Pour l'arrter, Control-C provoque un break du programme Basic et l'intruction en mode direct BYE permet de retourner sous Finder. Dans le dossier FONTES, la fonte AVANT.GARDE dans lesDESSINS.SHOWu' Y '  '(ANGERS10u:pY- Ys'ANGERS2:qXY s'ANGERS36hX0Y s'ANGERS4*/[XY s'ANGERS5Y)NX(Y&s'ANGERS6*PX4Y,s'ANGERS70\Y Y1s'ANGERS80]Y Y+s'ANGERS9 <tY Y$sDECOMPACT.OBJG: s)DEMO.SHOWI s3DUfw tvwxyB BB BB EEFEB DDFB FFBBBBDBD̻۫BBBBEB3C336E4IꇼʇtDDEDETUTUUyBxwEVUeefxefFvuvuvvvwwwvvwvwxwwwxB"&!B"9!'TuyDyb"!"!""!""!!"22|{w221"B2##˻e6s222"#"#"3"2""2"1"!"3#"32"#HB3 "#3#3"43BCEB"B""229""C3"!)3vUEVt#Ehgh1!B)!!""!!!!!"%κhs!""""#gveDwc5wwvS2"2!""!"!""!F!B"!H$u! ""$A2!$%2""327b""E4"*TWGwDWzA!"B!!B"?2##1!!!"#̩wS$2!"!!"!"lc#2213"##"#3#1%B6B"!!"!!!!!igA $C%As!$9b3"#""32")TzfCzR&vWgS"!6Yt$!B(fvvUDu""!"""G2"!"!!""!"!#3V1DB! "!!""!"B!"BB !!"#c6̻bB #T#B'޵!6șb!""#2"DD"#B&ͧ4efUWt3gheT2K˪z!!""9js"DB!4d4Dv""""B!B2""!"!""B"Gc"52D"B"!"!""B!""!""$lBB S$R&˄!TDBB""5T2'S"5D˪b"fgC#iB!B"3gwdWv3"!!"!+thec""!b"!!!""!"!";""2"B"!"!!!""!"""5b$Ti"$B!$SEB""#B'd"5gB,"egUUffeVVB!5EUUffVUeD!"2!!!&uS!!""2!B2!""!""G2"B!Jb!"3!"B""!""!"""""4fBB!""j1"#sR""7R%S"%UxE#VxgBweTC"DFvgvES"CB"!"yr2W!B#!""!"""!""C1"3"%c!!!""B" !!!C52"!""!k1"guc2""5xv"#v3$#$4EVyEVBg%wgfS3"EVxvweEB"#"iB""$ef7ݣ"5w"F"!"!""!!2"B""*c!F!B!"B52#CB3""B"#l"!(u2""$5S""#""""3$UxE"VfDwdD2#UVBeEC!+R"DuTD5b$T"#"!8Q"!""!$"!%z!BF!"!!"!!!2""D"! X8! J ! [0  "0"0M] "8͠宍򍇠쮇0! "8 `P 㰰 򍪭 ʧ 󬍪  卪 宍 򮍪 {}~ 󮍪 卪 󮍪 ̰ 㰰 İÍÍҠҍǠȰؠǠҠõ ō㍠ᠤ ȍ㠣占ᠤ ԍᠣ占㍠ᠤᠣµ  ֍ÍōР 獍፠ؠ 퍠̠űà Р ج ̠ű ЍР ج 󍍠占獠ؠŰà 덠̠űÍŠ ̠űƠ 䍍 ؠà 客ؠĬčà 򢬸Ĭà 쮢䍠ҠܤİӠİǠ츴퍠ÍōР 獍፠ؠ 퍠̠űÍŠ ưؠؠ 屍ᠤӠ܍፠Ǎᠠ 占ӠԠƍ;"!$fSB43S2#""!!""33EW"DTUBe?UDC"#DEfWfVT4B!lu"7dTDCEVDS"!2!!"!"F2"""!f2!!F"""!"!"""!!"""B"!IwwuC!!#v۩u""!!!"(3D̓CD4D4C3EC26hfhxvU!DktBD CDC2!!!B!""#"86sB!iB1"3Y"!E"!"""!B"B"D "#SA!!XC#""B#TD ۸B"3#T2+"!"##3CWr"C3C44#DC2#[uwWwgV2""K"|TVD22!DB"#v"!"8Gb""42B" 3W!""!!""B!!!!"!!"iA!6b!!#""2n5B#fUVc"!!!!!33CD42#34TDE5B3#"WTDVFEdd432B" %B8ͥEuufT3"D""%V33EUUhC32""%htEx""!"!B !2#"2#z1B 'Q3#VV2"]ݶ2$eER2D!E"#B"%S%2"4"ib""C"!""jۅWvfwD3!D ""!"ZWTUBfvvDDC!"!Yt$Is#2!!!B"3CB3Dwe!%A&6i˄3"3"!#3DEEDTBD 2""(ʧ2B"#˹cB"2" EdgufhDC!*"!"}9eVwxxvTCD!"iR!6vgSA!!""E%wETE4EeeT!$!)f[ȆB !"!B#"CEz"CHvD4"!4EydDCE".#uVUVxDC"!"""mgeUvvT4C""FVB!"EZSB"TB!$2BD !!D!Fkʚwe1%!9flʸB !!Ft"B!"#CFE?"EgwvfwuTE2$UgwfgwuTT""!"#R%EDFxvDC2"!""62MeUTVgwveTDC""Gxt""'22""S"!!$b!"! !!$Q""jBB˼A##!6uVmى~1""!!""4DiF"Vw vUD1!$ExBwTC!"'r9ΥDDEeTDB"""SB"BL83DC3""{!"#B#t""!B" %vSyb!BU Wc32"|E1d!""7dgT}B!F"3$EjF#UgfvggveD!4EVBw?vUTCCuTDETTE2"!(S"#C"mK54BC443C43!"XB!""2$bB5DhfFܺR"(ܫR4AjuBUTUUBS!#TTB5!!Uffg#VfgveU!3DEwxwTDS!U#V4DD?2"!#8"$B"[VDReF5Tcf52#2e22"!"""&b'څ#4XR6ܪr""5wvWWU23""5UC3#B2""%S!!"#eD~B1ByF""3f5DDE53C"$DTVVFUDDC!S52s4D4BD+2""%R"J"Zdi""#d2#"24""GChs""!"""#"&uB" &ݘs3"3BCB"#B"!"!"!" "!T!""yB2 34EWwBb#43CD4432$UuvyXvwg1&XBiR3#3"!"8b"G#2B"fD" !"L5wR""!"#32D"&ݼd2#23"E!B!" "&e!C!"EC} 뗉t"D"""##33""2B"2"#!!"##34TDT"D4C"WS42#"4D2%BB"#r5|"C#3CD3##2"""V3D""!"!%vwwdUU2":yd#23D""#D!""!D" !!"3"!2"#Bgd2!BD"!"!B"!"!""!!"2"B"#DVS""8S"hYB"#B{$EFUTTDDSSD""#4T""!"!9ʪ˃B"!%TSY232F" 5SDS32!"D" !"!!B2!B#!!B"!""!"!"!"""!""B"#B2"#Eܨc32"#b$TXcB"/D$݃YUWvwfgeT4S!"!$gB""#Y˩r"!#Tic232B"!B" T4UD32"""!"!"""!B$"!"3!!!!t!#$exd2EB!"VR's42"%ZUWwwuT4C!!#5e""!"&Bb"B!jc##2B"!!"#T$DDC2!!""!""B"!B!"42B"#"!B!""!!!"!!""#u!BD24D2"CAT2&"!"$޵hBUxwveT4D!B D"""%gB A!U"%hs#D" !!"#ED4TC"!F"!!!B~B!#B!B"""""!""""!"""""33!B!D" !!""#B"!B"E3yEEDVUeDCCB!B"!B"#W˧!&2"GwgBE"!""ET322"!D"!!B!#!B}B!B"""!""!""""#"!BB!!#2D" $f5ݥD4CCD4B3"!!"!#R$ywwxxS!"ld%e"" "D31!"""!D"B"3!%TBB!!""!!!!!!!!!!"B!""""!"!!!!7s"/$$DExͅT5DDT54DCC""#Es'TTUTTB"$ܦGvC!F" !#21!"!"""" UT3'T1F!F!F! !!""!E"&"/(#f2]֍UETeVETdEEB!!%S$tDDUD3""jy42B" "!""!B" !y2!"FBmBB!B!E!"D!D"#U2B"4}(W6R2"2#$E"2"#"!#2"FR2$tDTTDB""|c2"""$""2"#" ""22##23RD#yB!!B!!D5D5E"%ybB"T2#G#D"6RB"!""XDHc"&TDTTD2"&ۚU2" 2""2"#""B2#""""2B3 !4!&vE !!!B !!!!!B!B!BTEeU"#4jcE"/y"U5ETCE4DCC3"9"#iTDUDC32#IvB"!""""!"!" !!#"" !!!F"!52B!BB!!!"B!%v!!t#2""DB!EEFEEtE",&˽%EVTTeEFEDT!!'b"")dDTC2#2";ܧ#Ɩ!D! 4C33""!"B 1!1!"$ ݶ!!"#""2!!"!!"!"!XR""*"!!"5B#wwhSFTBD",%f[eUfvvVVUDT"!#EUB#|ۇvved""#""$exf2""&s""#2Y""3TyclwdgdTD4UCD4CD4X2XvAD$DCDD4CBDCCErF&{AuEEUEUTUUEDCS"%4R"!" ޭB"VwefRB"!!"UU|5WwvVB"B4tC"#Efve21##ESB"3"27y14ibmوdDEHEDKB4h124DCDDCBD43CFF lBByDDeUSCEUbEiU2"!$$ݝ2"VveT!""$4xdCTfT2!B!1zv"%fC32""2#"3"#"2%ݓ2"7ݻv!"{chxUTEiCBDEC]2VRBi"D TDDT3343GrF'4I"iTDVUVVEDDEUb4he!!B"# ܫB"FedS!B !"$Dx{Uxgb##!"S$BD"2B"3#"2$xc""&쇈2ʙT4xeUDgeC4DeCDJR2!~TBD 5UDFU4343FtF(Y2EDEEVUD TC!4D!"!" ޺B#UUT"!!3ydYYyuUcEU2D"Wi4BB"#B3E"%5d""#s#뉉TCHeTEUe32FC39݂F^DD3EeDVUTD33D!B"&̬TT43CDBCDDB""< s4e435!!%43gTxYڌvSDEgB""3"5effH2"#c"&#J""#E&ʙdLˈ˹heUXC3WDD;aFBD FeEeUSC3DEB)jtE4TUFDTTU!F!m!SHR22FB!!"!"$tikˉvVdDT1B#"&T24VS2"&D"%I""##*{T2]툗uUhxC3GDC9bFD4DEeEUUC3CCE!D!&ͽeR223#5d#3##!E"!"\ TF"#Eft!3414Ftizfg"B<"24EEDVUDCC""M2""#MYYuDgD3GCD6r!^BD EeUeTC3C3E!!!!#b"!"!!$Q"!"!E"!"< dXQegr!B"##T2Vdz|EWfX3!CB"$ڬʫ""it""lF˘iuEhTDw337݂!!^DD3DUffTDC4DE""B!TͽaA"!!3#""E"""Le3fz1#uB"W5E3"C!""J˫B ˬ"!32" 439̼,xvUeDgt33KR!!!d443DUfeTD344E""B"#)ۙyB[cU5VtuWEUw1D""}(vTz3Fhu!"3""#uUTZ͹ugTTE"!!B"Yc!B"#$UFTw˺ʗvVfuEyd33MB!B-!"cCCDEUfUUC334G""!)D6"TTEEeuUEEv!D"}#C8TEDD!"E!#""$e3##c5TFwB"!E#"XvgwwyvwvS"!""Z˻̼̼̅BveUwye43LAB"tDCCEfVUfDB3GB"D)2(3C4DEUETC3TB2"""}&2%eDD5xR5T"!EEUW2""#S6TVg2"!!!#gvvffS"""|ݸiBxvfUe44KQ tDDCVfVefTB3E"!!D'b%VTDUUeUTD3ESS"5A"]"4TDDWus#e4UVwxdB" $|̨fwfCC!B!2#wwfwvvffS!""#Bۻ̻XveVwe34LA!dDCDVfTB3F"B 8R&EEDEBU TSCEDC#XA""#DEDDWzyʈxc6fBB"?4Xwv"$d!7cHr!""7˼hgeWw gt33n!E dCD4VffVDB3#HJ%y$DCDUUTSCDD2B"E!CDEEhgfS%z݄YRB"?#4xhvt"%1""!8sJ̺ɫ!!""8iܼ̽˪xUW x3C\BEdDCDDgu43C3#G!!7v6ΥeCDTUEDSCE2!!"$vevfuX˛gSHTyR"!7vB"E2!8wgvzefVR!B" 4gR9D̸weUyC3JrE! ~D344WtD3ED!tDWͦd35VTEECSE!BVfvf쪪޶3""#3B&ͻ2B" $ݦSC4Ff"B"#{fxfVVݖ33SD"5iff"|̻̻dYgeUwwd4C^dC23"3"cC334WS4B34G$"T"C!(FvB"$B23#""Wvvw dDB"5DT" $c"EgB"""6캪Wwgv2B"$͖2Wˇͷve2XveUBTSDDMtTDTD43!t3DTCD3FB7CTB3#$R"e!!"!BBzvfgt1%$!!"3" %C%EVe"E%2mxwhVyvc!!"[gx"2z38rB2xfBT DD3C434C\eUTCd3B3 4Gc!6b '2$BFS"22B"27BB#hwwxDd3YwcIt3C""XxV3"!E%ls6ZͶI"!$D&wvfeB!#2"%̓B"ive34UUEDC$xue UU"~DC3C3DCD3F!#"R;UGVufWUu{b1"igwB늺thVB!#Zvh42$eYTe""$D?yܦܕ"!!29Q""&b""#zvVVffdTTdTUTEhwfhwgge"uTD4D4CC3DVS#3!!"TTETUDUEUfBE2E#igwx7یDB""""EWyvD"#Wie2"!&dU2"2!%eil͔|tB" ""(Q!B"$wB2""gDfeeUeefVUgwwR7xeU EUUTTEUU"FBDDEEUCDDCDC%24"IwxܺS$BB2%"3DC2#YCC""#332#"T3%TCGeBFdB $T$effvfU2" #BF34w#GwfueEwgfeeTTBB! BHTDUFUBT3D2#2D"HBw&wvfR%TDVTEd21!"2!""3"BFd2233!##TDHUeVVUUTEDD""&ܺBvD"B"fgB"{wUu5uxwvC#"!!D"2YUDUUeUTC342#"2"yvgw,Uyfwfs!#eDXvff""2""3ET"""2D1!!"!(xgxxe2Jə˙wffwCV2"$wgeff#nfCESCEwhwd"&R!clUDDUEDD334B1Shwgw,ۈ۩dR!t4FfDD2!ܶ2!$!"3j"!""D"3""8vfBUEyBwUTUf2C1"VvfTSCCYBt"Hu4$3"#DEDSC"FB"B!EeDVtUDTTD6B"C7cYBw,ܻ27u1!cDfeCECAhCT"3DiB!#B?hc!5FDzvC2"ES#xfggfEDEe""DT24C""fvge""5eSD"5VB!B#܅S4FDC4EDDC1#EdZww""$D"$CFxwTgTb#CC#hB:r"#1!%ݔ#U#%D{ܖD1!2"34UUeUD4Vc"!#T3Ugs"BB !!!j" !8b!!!"B"5Ff#!#"#"##"22""8Cwgw"#2"!D5uT!E#B4!"!1$33&tyDB!B"TUEeVDEVvB7dFR!!BB"""{UDDCCZʆCB23"T1B!!!"!#CDh2yvgg#!S4̅U #ΫYAB!"Xd$FKVegfwffweUVSBB#MTEUVR˻˕"!"!"!B"#zB iR!!!"""EfzVvww22"$S4xtT "$g1"""6uD'˺Vt!#BMTUDGb̬̼ܹ2""!DB !DDeDWzvUSDDWbE!!Gxzwx""CT"!C##33423 "gl32B!"2H2KȽژ˙gr"TB"MffvVffhR*̺c" !122;gS3B#"#"&b!!"!B""GWww"Y!!#""""3"F#VjBۃ2!B4"2$f3"D̪vhxvy2"Jܶ"̸C!!!"Ws$wUc"3C4cH2!DU1gQB"hbx3H!5B"B"ER""! !$6ܵD!!B"#DT2323ghާeUVefwvfvfgQ!*!9ݻb!!#4H2{̼RJA%s"fhʹB!"WWwxU7f!WR"!""#WS42! !"5j܅B!!B$CB"WD4#36B V19!'ۼB"B#4z"ʹCA&#fݴB!"G!ZxxT3eS!5S""#4%ythc"E "5Fc1%R#21B.iyDD4TFUU"z۔!˺"!35C3gfvut2hwgv"r""Vy!WB!"HWwwxbY2#3!6eHɃWAE #D$ܧ3KTjUfhgxESB5Ugxʊ4BDXR"2#!""#3323"$3#3"%r"4VDy!R!"H"YwwxyB2jS"5D[c51!B 7#GvC"jr!2Wʻˉ2B3FۺB:>z DIGICOPY.1.01ICONE.EDIT.1.3HDIGIPACK.1.0.GS1qpH ESSAI1.BAS.0ILSPROGRAMMESvK '  '*REMEMBER.SC 8 K4 FINDER.DATAɵK Y REMEMBERK8 8 REM.CMD.SL8 K$ ,SUR.REMEMBERN&K/K/-SUR.DEVER2000_ WKKSUR.KEYFRjK.W: KEY.FR2.NDAjH+W: DEVER2000z5  K+DEVER2000.S||5 K4DTTC2!B"GgfvvgwgBfvgffeViB"3"6'R""Yujvvw!ܼ̹c""|ɇ2ETifxd!![B3'!3"!"$5ʙD!" 6wwyvwg2!""#B"!!B!"$̼B ͹t#e#5C2FvS#33Xjfgx&UgeS""$u"%gvw"!""WV"K$DBB%UEDTuW!!Vt"B" 723#UQ!"#"!!%BX!&fhgixfviyfgx "2""$2B" $TUUez2D" 2&̷"FBB0(y!!!(""!"jRxR%c!!1B"#!!"!F !"%fC!(YZtiuXZwfgsD"$4B DEVER2000.S4 DEVER20004 SUR.DEVER2000 SUR.REMEMBERB REM.CMD.SREMEMBER REMEMBER.S3#xc"4B"3"2#Gt"""8"HbD"IB"#hB"&R"&""!""%r"!!"!"!B"!"!&"!B8bYRIBHBIyɗˇwzFB̼ͼBE ʻB̻BDBBT32#3HSUBBBEEBBB"3DUfw B! !!!B!!!!!"2!!!!"1!!!"#"!!!"!"!""!""!!"!""!"!!"!B" !"3"&S"#"#!D"3DUUD!!"!!!$FD3"!!"!B"!!B!!B?!!!!!!!""!!!"!!!!!""!!!"!!!!"!!"!""!!!"!"!"3"&RD""B"#DTDE1!!"!#DD4DCD43"!B"!!""!!B!!!B!*!!!!!"#"!!"!!"!!""!!B !!"!"!!!""!"!"!!"!B"!2"6RB"#"!D"4DUED!!!!!!!#FDC"!""!E" !!"B!!"!!!!B"B!B !!"!"!"D"!"!!"!!"!!!!"!B"!B""!"2"32#3#4D#""2"24DUUD"!"!"!!$DDED2"!"!B"#B"!!!B!!!!" !!""22""B1!!!"!!"!#gR!"!"!""!"!!!!!!"!!!""!B"!"""!!B".2#D3XvFE23##4EUTT2""!"""$CED4DEC2"!!UC"""!"!B!!B!!!!"#"2"!!"!"!"$ht"!!""""!""!!"!" !"""""""32#T$s""#DBUS"""""!"4CETTEUC2#2"FCB"2""!!!!!B!!B !!"!!"22D1B"!!!"!!!"D6f2!!!!!""!"!"!""""!""""!!42#T3xͥ""#TBUS""!"!"!"DEETTEUDC%B"̧B"2"!!"!"!!!!!"B!3S3ER!"!!B""5EhS3EB!!!""!"!F"!"!"B"!!42"gV""#US!"!E"!"TTDDUUDDCGCSs2""2!!D!!!!"D!B!!%eSDC!!!!!!"6UVzxs"B!!"B!"!"!"!B"!"!"!""!B"""!!!336yBB"US!F"!"DTEEUUEDDUFۅ2B"!B! !!!!!!?!!"EfTC""!!!!!"!#5f!!"!!"!!"!"!"!"!"!"!"D""""!!"4iB"TBUBD" !""!"ETEEBUDDgIۅ2#"2!! !!!B !!!!B4""EeS3"!"!!"!!!"Ug"!!"!"!!!!"!"!"!"""!B""5BcB"TBU2!B" !!""!$UTUEBUEDy˻܅C#"2!!!"!!!B!!B3!!"!!!!25UUD2!!!"!!!"!5hA""!"F"!"!"""!"%ܻͷb""3TBU2B" !""!%UUTUEBUD{C2#!"$2!B! !!"B!%"#4EUU"!!"!"!4gxfxs"!!D""!D"B"2#"B"!B"!2"%̘ȃ"#4UUeU1"!"!"!""5UEDUETd3""J""!!!!"! !#32CDU2!"!"!"#Vfvgx231!E"""!D"E"2"B""3"#˛ے#35BUT""!B"B"5UUTDUED#H"!!!!!"!!#44223"!B!"""!" ETUgxt34c"!""!""33"!"C!'ݾ"35BUT"""!""BUTEUZwyۇz!!B!!!!!!"#4DD2"2!""""""!""#25guD3ExB"B"2"#D"223"2#"*ݺ#2EUUeU"!""!!""UUUV!!!!!!!"!!!"""DED""#!"""D"2#"VdD#3W32""3F" 32"#"2"#32"#"2""2"+B#25UUeU"!""!!""#UBU뗬B>*e ANGERS.SHOW5 DESSINS.SHOW5B PROGRAMMESTB POLYEDRESBGSINFOS5JEUX5 UTILITAIRESTFONTESEDT EXERCICES COUVERTURE.2ARTICLES!!!!!!!!"!"!"!B" #EUD2#2!!"#2B" 33245g܂"23""""3"3""32"#3"33""2##2#"2#")#2BU VS""""""#UUUW+!!!!!!!"!!!!#23EUT3"!!!"62"34Ex˃"#2"2#" #2"#22"#"32"3"""4B s"3EUeVc"!"!"#eUUY!!!!!!""!!"4#4ET"B"!"B"V2"34gxݺ2"3"#2"#2"#"#2"3"32""#2E"%쇊ݽB S"3EUeVS""!"!"$UUU}b !!!!B!!!"!!!!""E!!!"4d2"$Vw۬܄"3D"2"B#"2#2"3"22"2"2#""$$#J˚ܫB2"2BU eR"!""!%UUVB T!%!!!!!!"!!!!B!B!"2#""Fb""4gʼ̸2""#"2""32"3#2#2"3""#2"#D42ͺB""#VUUfS""!""""!%UVFUVe!B!B!!B!!!!B!""V2"#4̺rE"3""3"3"##"32#2"#2B"3CC2ʽʭܣ"!"5UffcB"""B"%eUVFۅ1!!! !"!B!!!!!BB"#22"%U"3$Xʔ"##2B" 2"3""#2#""B"#2B"#"#2B$ڼ۪b!!"##FVcB""!"!""%eUeBUVE܄!BB !!!!!B !!!B")22"$T#S#i̧2"##"#""22"##"#2"3""2"2B"#22'ܬ˛Q!"3USB" !!!""%VUUVDUVx̻ܒ!FB!!!D!!!!!B"#"4S$SĘBB"#3"22"##"224#3"##"22B" #2\ܬݻܸ2""#CR""!!B"EVefU̫A"!!!!B!!!!D"$B5T4x̹sB"*#2"2"#""3""$2#3"32"2!"#2"Mͻ˻B"#2"""!""5VefUVVBUeUYB̺!!!B !!!"!!B!!B!E!!!!B"'224"GcE%ͺt""#2"#""2"#2""#2#2"#2B""3"ݵ4lA"!""!%VVeffUeBUViܺ!!E! !!! !!!!B"#C#gCFHu""32"#2""3""3"##"2""""&d4̶C$DB!"!""5ffVVffeUeUUWʹBB !!!B!FD!"E ##"4B%e3HD,u""3"#"22"2""#"##"#""2"!"!!"2""!"!!"!""UffUfefUVUVeVB ̨ !!!!B!!.!!!"""%WwwC%T37x2#""#""2B" 22"#"3""#""!B"\ܶ!!!"!D"VBfefUVVUUfUh̨xB!B !!!B!!!!B!'AWED2'xBBvB"3"#3"3"3#3"32"32"!B":Db!!!!"!BB"!VVfefeVeVfUeUWwtD{1!BBB!!D!'aB!!hۇS36wwaD"<2"##2"#2"2#"#2!"#!ݵ!!!!""!"!!!VffVVeBf eefVVvd)!!!B !!E!'b!!!4̖D5Br"#2"3#3"3323#23""2"B#"!"S!!"!!"B!VDfeUVVBU EvB!*ܻrBB!!!!BD!"B3!!!#ifB"x"2#"#2#22#22C"3#2"2""#"B! ")!"B!E "!!!!"6EfUfeUUR&˼͂!!B!!BB!D!B!Xww"3""B#"3"B2$"3#2"2#!"!"!"S!!"!!!!!"B !!!!"FffvfeTU!(ɭ!!!B!!BB!BB!E!D)"%ggi̹s2""3"3#B32#2"3"#32"B"!"!"[ݵ""!!B!B! !"6ffvEfVUTTS&!!B!F!F!!!#EiTf˫is"2#"2"3#B2 "2##""3"!B "!!%2!BB!B!!D!!6Dfd434#3$CB(ݒ!#BE!!!B!!!!!!$!B?$3$fSDV̩xxr"32""#B"3"#"22"#""!!""!"3!!!!!!!!"!!"&gfQD $D1![ABF!!"!""!"DB!!"*$EWUCDB#F̺wvgr2"3"#223#2#2#2#"#2"B'"!"!"!"!"!!!"!!"!!"6gfRD#D!!!UB!B""B!B"D!!?!7ʧuDCC2Ffgb"#3#2"3#33"2332#2""!!"!"!"!"!!!" !"!!"!&wfRD#D!$!U!!"""B!!"!!!D${ݙdD33#fhwyfgQ#"#2#2$23CB323"#3B!!!"D!"!"!B! "!6vwBfQ!#1!!IBqEE!!F !!""j̔3C34UhwvWR"2#23232B34324"3#"!"!!!!BB!!!!!!!!E"%fvR"2:aBDE!B"B!E!!B#v܃4332EgwvzxvyuxR"22B32C#C3##3"2B!!B!!"!"""!! !"!!"$fBgfbD""k1B"DV!!!B!!!F4vfV2"C3345Vwgvgggb"#B#433DD34#32"""!"!!"!!!!!"!$fgwvwbE!!|!B#UgB!!!!!!!B!!D!FFvgUD""C33#5VVfvvVfegb""32$F3!243S33"!!"!!!"!!!"B!"ffgvwRE!!%Vg!D!!B!B!!!!!D!!!BWvUUB"4B#45UeTTU$ge2#"C#33DC33CCBDDB""!!!!!!!B!!!!BgwRB!!BEVx!!F"B!B!!!!B/!""gvUD#""433#EUeEEUEEWweCUFTEUVwgD44DBUXwgfA!B "!!"B"!!F !"!!!!#Bwvw1}ABEVx!B!!E "!"B!!B!#!#gvUC3""$4"#EBUEUEVwguh̻D#443WyBB !"!!"!!$wv1!#UUv!BB!B!!"!!2"D!!!!!S2!"hUU2233443EVUEBUVgwweDC3Vŷ""!!!"!"E !!"!!"WwQB!#$UEf!BB!!!""!!2"E!!sB" XvUT2""343"FVeUeBf5˻˻4$3C2FyB""!!D!!"!!!""!"!"gwABB)B5UVV!!!"#3!"#3!!!D!hR$DVvTUS""#34#6VDUfvef"k˻̼WhwxxiQ!"!!"!!"!"B"#"!FBwgRBB+B%UfU!B4UB" #C!!B6DFfwwffT""332#EUVEBUvweSjBB i2B!"!!!"!"!B"B#$"""2"#"6BwgQ"A!!EUfeD!!!B7$e2"!"2!!!!C3FwwfS3#33"EVVTUUVgfd"6B QB!!!!!!!"!!#""#2B" 2""##3#"$VfwwR2!!UUVeE!D"ESB"#1D!!%fVwvhc"23"#5DU VeD29B ̻˺2!B"!""! "!!"!!#2E""4Xfga!UUfU!!B !#UUEETU1B!!B !!"UVVvVhcB"##CCDD43DC#!&gvvufVEDEDCD44BC!!"!"!""!!!"!!"!!"""""2Fxv1!'5UEfUB!2!!!#"""!!D!gc2B"3BB3D3D2"B#"!!!"!!"B!!""!"!!"!!!""!"!"!"!!"24F̸c"#+BVUFfUE$D"!""2$$#$$#!!!D3TUEBD5322""33T3534D2#"""""!"""!"!!"!B" "!!""2B""!"2""!B"C3YC#!-QB"feFfUB!D2!!E"#""!!!D!2"#2#D434#3$331""!""!"""!!"!!!!B""!!!""33#""!!B"!""2#4gvT1!#!+1!#feFfeB!CT2!BBD!!!D""!"#42"3""32442B""E"!"!"!!"B!""!"!!""#T"$!"!!"2"#3V"EB2!^!!%fTUfe"!#DC2!!!!BE!"B!"!!#"#232B"3C433!B"""""!'"!"!"!!""!!"!!!""2GC""!"B!"#FQ~!!!6fTVfV!"!"TC2!B!D!F!F !!"B" #"2C43"33423B"!"""!""!!"!!"!"B!!"&wb!"!!!#B"#Ey1#BffUVeU!!"""32!""B!!B!E!!"D"?22343C34DB2""#DUVWVUTDB""!!"!"!""!!!""Kͼ!!"B"!24DCC4CCSB$feUUfU!!!"!""31"!!!!D!BB!!!!"B"?$""#DC3$DCC"""DUeeffghwA""!"!"!"!!"!!"!"3""B"!#3!!!6fUUVfUB!!D"!!"!!!B!!!"##"2"B$D2#344!"!B"DEUUBfgu!""!!"!"!"B!*܃2""!"!#B"!B"!"3"'WfBUfe"!!!" 2!"!!!B!!DB!!!""#3""3""CDE23"#"!"!B"DBUBfgv!!"!"!""!B!MBRB"!!"!"!"2!"3"!"3B!geTDUff"!!"!!"""!B!!!E!BB"!!"4C"2#"##3D4C""B""DUUVffgwv"!"!!B"!"!B !"E"2!""""3""4C*B!&wuBUVf!"B!"#"!!"!!!F !!"!"#3"B2 3#4DDC""!"B""5UUVffgw!B"!!!"!!! 2"!"2E" 3"!"3D"+B!&xvBUVU""!!"!"!"!!!BB!""2""3"3"C#FTC2B"BB" %UUefvwxsB!"!!!""B!!!K""!#F" 2"!"4CB!heBUfe"""D" !""!!!B!!!!D5""!""3""#"3"2#XT2""!!"""UUffgQ!"!"D"!!B(#"B!"""#"1"4C$xeBUVU"!""#"!!"5R"!!B!!F!!"!!"32""#B" 3zt3"#"!B"2!$UVffwxxA"!"!!!"!""!!!#"!""#B" 2""2!!"DC%Bq!&wweDU&"!"!32!5X!!!""!!!!!!FB!B"*!#""32#B#X32"U!!""UUegwwx""B!!!"!!!42"3"""3"!!BDC%B6wvfDU"!!$S2!!E"!"B!!FB!B"*"""3423FzT221!""EUUfgw""!"!!!Lf2""#" 2"!44W 6gffeUVUU""%R"#3JB"!(!!!!!"""!"$wfWR"9B'""!"DUVfgw!!!"!"!!Ev2!""#""""!DDmVfeefBUeB!"!#"'SEfT2"!!B!!""!"!!6S'#EFVfvhc!+FU1!B"!"!#34B#fVeVfBUe!B!"43$wwۖB"!!!!FB!!!B"8 J!!"!"DEfvwxb!""!"!"!!!"&E!E" "!""!$DDB%fUVffU "!!"B""$ic!!!B! ""!"&LB"!""!!4Ufgwwb!"!!"!!!D5D!2""#B"!""B4DD5feVvfU"!!#BEFx˩ە"!!!!!"!!"#Eܭq!""!"5fVfwv2B!"!!"!!!!"E2C%BC""!"#"1!"4DE EfUgfeUEUE"!%Vehͻ۩ B!!D!!!!"!#!"[D!!!""kuffu!!!"B"B !!!!DUGC2""!""$4"3Uvuf6eVBfUEEU!!$5hܩDb!D!B""!$!!"&{ʽr!"C7bBB!B! !!JEFiC! "!#323ffgw UeVfVfUDEE!!&gܫFQDF !!!"!5B"!"z۽#3B43"WA"B!"B! !;D! "#33%ffwe uUVeUeeSDC!!F#G˘FBB!!B."ESEed!"ZܼܻR#4DEUD#Vfxb!!"B!B !!!,!!""#33#gwfeDUVvVBUCD!""#%hFB!;#fvtFfe"!!8ܺ!$EfuUE3VxB!!!!"!B!'d!!""33#3fgvUB TVwvUUeTUB!"!BgB!D!F!2%wvcVfe"!% ̽b""%VFE#Vc##"!"!!"! !'xjc"! ""C3Wwwu6 EVfwgfeUU !!"!UhBFr!!!!#UTB3!"!"m̽b""GfeS4gu!"!!!!"Hʧgu!2""33gBwF5EUBvfeU!""!#UUFgxzF 1!E!"#"B")b!"33E26wvB"!"!!!!8BDb!B"44xww{CDUffefUe"!"!"VETExegy !!!!B&!"!"!""!"#4D2"!!""B!!"HE !"#VgwuC4UeDEefB!""!"&UUTEFVefyE!B!B"B "!:r!""!""5gR5UTA"!!F&ȍB!!#DTDXeC34eUVUT!""B" 6UDTVUVUfyD""!!""ۭBB!"!"!"WR6ff2"""B "!D4&BB!$344H13zDC2EgeUE!"D"5eDESVVfvy !!!!E!B"2CDDB""!"!Hܻ1!!B" 3S6ggWʷ"2!D!!B"{ݕm"1!!"B34I1#H"2DCfwTUV!!"!"!""%TDDUVgwzD 1!1B!DDEBUfed""!!"$B!!B"3&wx"2!!"!&3; S""3CB4Zݷc!6a"5VxvEUV"3BB""&vUUE4VwDB݂!$DD!!!EVfwxwv2!"!!KQ!D"$'"#3"#!!!"""6S$IT!#DCCD47˅C"514VweUeDwxd2!""xUT4VBD !$TE2DVfgxwwt!"!$[!!*"!"!!&!#32#2!""!33#Z˹v24FنvTA#UCDD44C#1!#A5UvuEVeeC#gUSCY˼BB!4UU2#VfBw vB"!'B1!"B!"""&B3#22DC2"2#24324˹FT3EgFɘgeU1"%BUDDTFCFD"#2$4UfuTEfBxuTTXB04UUBVgww2!"!R"YS!""B"%!"3322#36S3"3#33##3TFVVEUgwD쨈vfb!"4VfeedfEDED2#T"DTUWvE5UB˻htXB.!%UUB!!Vgwwxu!!"!"3!#"""2!!""B"%gx"2#232FS#2"3#32"B""$4gv wvfe2$EfeD6US4F4BUWfUETBUU{!$UUBB!?"gwxR!!!"!""&]C2UDDC!"!"""!"Vgc32"2#3USC32#343# 32"Dhwe~Bvfeb"#VfUVVUU37vfSDd"BUVfVUTDBBq%UTBB! Www""!"!!"$|!D""!:"!"4U퇾2""!""DBC"233C23#3VxxwU[ʘvhffB"#VfeBfS4ugfeVCEEUUVffV̼E˪˼BEݲ#212!6gvwt"!!2!BB!"!"!!!"L3"wxdUCxvggwwVgwwfVBB#2""2"B""DEUUETC3DD̽.GtxsUVdDD33C3WC"!!"x2DefWgyD/gWD$xBeBg wgvwvI!!#C" 22"$5UUEECCܽDˬtg#efUDD33BB6d3!!""xx""DB24WD,S#7˺"7"xwwvfxfUDR!#33"#2"#345UUDEDC̽D?ۼ˕F"EeUDDC""1"#!"!xu3"$34"35GgxB"'x˻ R&BuxgwfwvVTGCC"2"3$DETDDCBE*̻Wz"EUTDDB"$E"!"!""!!$S#2#BBC2$44$DVVh"#W˺Bʃ6eBwWxfgxeEU"DS2B" 2$"4EECDDCE)͙VzUUT4DB#%Fd"1""$DB'322# 3"#22#3#3"wB wxB4xʊuhBgVxVwwuTUj1!"DT2"2"4UDC3C3?˛Vz˹UDD3#UUS$Q!"$ˇh2233C2"2""2""2"%c"% wxx2dVggffy˪vgfwwfwvfEEB!"4U2B" 22"4ETCCB3B̘̪ͷFBD32$UWvUB7R!'˦WB"?4DTDD3"22""8R!"%xwEUxuVvf#wvwwVwvUgEUR"DTS""#2"#3ED3433?ʺʫ̻۪ۙu6dku"!Lچuu"2"#$DUD443"#"3?4"!"6wwTUiyf˚vgwfivVUVTF2"4UD2"2#323ETC##3F4ܼ̻ܻ˙ʝ̄41!=feU""#B"423""343D""FxBxxwxEB'wivgwvfgefUVTH"!"4UDB"#B"3ETD2B3E̼̼&۩xV"!!$feSE"$232$$34##""̙xgwxBD0xhVwvgeeUfeVEz"CET4"#2""3EED224 ̩EܷD#6BFs!B+TS""34D34B"&BvffxvxB/vɘVWwffUeTfeUg"CDT43232##EET23#ܺFܖDE24VFTZF !"BR""#2443SB"]9fVfxwwxvVxvVfUfeVgVB"#DC3322#"#EUUC33̪ Xt4UhEݺc#:BRE"?#3"#C4DG˨5ݺfUfhvxxfW"eVeWwfeF"""432#""3"#DETC2"BB۹T2#|BE ۅC"2E" 43"ZBBBݻwTVVwg5ʩɉvWweDVewwfgVffA"#"3""#3""34DDC3"BDۖiB 3"2""3F ܺwSVVggBBB!VwwEehvgwggvUg2B#"3B" 2"##4DED3#EBE2"#33VB$ ˪fDVWwB0xxtwveewyywveeU#C322B"3B4TDD33F ""5y˻ܨB?ۨʪwvfVvdVffhwTUW!!%UD43 23#B#3TE443BBF ۷3'˽E{ۛygBf)wfWdeffgxgxffww!!""DUD33442"4DD443FB Du9ED")?왚vxwwwwffUgVeFVvVfvgxvwgvfr!""3DUTD33223BCDDEBBݼDR+횙wghvxvwgyvhfeeBU VUUD3ETUeTV1""3#4C33##23DCEB EDB&/wwvwggfwxTXeEtDTCC#D"DCEf1B""#"!""3DCEܼEBB%FۨxBvhfzwBuCVUUD44$EDDVUTUDl"!!F"#3D433DEܻBDD"?wwgevfgwwwxyvy5eVffeEUFfVTEETUV"!"!"""!""32##CC3#C ˼BFED"vgfhefwwhvBw3zu4VeUeffvwvfeT4Uegh!"""2""42"3#33"4 ˼B FD#fXTBUfgwgwBg&xuEDUveUfhwvgfdDVwgir!"!"!"#3#22"#FDDFD"(DDCDDVfwgvvfwwwwBVUffefwgfVUEfVx΂!"B!D"#32B"EBDFD2wBBB36gwwDf%eUVUc"UUefhuVfwgffVTVyxB!!"" 2""2UD23"3BFBE2B:f3UdeUdeffggfefVVUDFxvUVefgfVwfgvwwxfxwg{u1!!"!"D"!"5fdC3"BBDDB;d124UUVwxwwfhwgvVvUvffgegwwvfwwxxv2B"BF"#ffeC"D BBEEB