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 3333333333333333333333333333333333333333333333333333333333333333333333333