ON[$p N ON N6@`  @`! #@%`')+-/1 3@579;=?A C@E`GIKMOQ S@U`WY[]_a c@e`gimoq s@u`wy{} @` @ ` @ ` @ ` @ ` ǀ ɠ @ ` ׀ ٠  @` @`!o   !AaQ@`  @`! #@%`')+-/1 3@579;=?A C@E`GIKMOQ S@U`WY[]_a c@e`gimoq s@u`wy{} @` @ ` @ ` @ ` @ ` ǀ ɠ @ ` ׀ ٠  @` @`!o   !AaQrDESA TTP DESA BAK 6!DESA DOC k!DESA TXT hDUMP APP S)INSTDISKAPP 3INSTSPOOAPP w1LISEZ MOI PRINT APP $TRANS APP M.XDATE PRG 6XDISK PRG XFREE PRG XSPOOL PRG  B`.N4N8NANAN9N0N>0N.RN9VN,N+N:NDNEnNE@NBNDNBNA:NAN,N:N+N0N>NAN8NAfNEN. N+pN*FN7N/jNBN*N/NG"N.NBZNAPN.NH@NN NNNN(NNVNUN{NvNxNNNN NNN,NXlNYNNTNU:NubNPNNnNQ|NqNsNNMfNffNtN\NNZNNNN2NrN*NO6NbNBNNN^N6*O*m - ЭЭм!"ҍ¼.A// Bg?<JNA m"m -So Q m -SBQ(m)M*mN lHhN2X/,?,N\?<N(?<A?<NAXNuNVH?<N7TJ@g0<P`0<(9@Hl?<N\=|BlBlBlBlB,B,B,B,B,B,B,B,B,|B,B,9|9|9|||BBlBlBfB <)@)@)@)|NB,B)|v9|BlBl|'HlHlN>PHl?<N\HlN=TXHl?<N\HlN=X)@NB``|Mg` 9|``|Ng` 9|`|`|Og``g HlNX0.Rn n &PSn0.f HlNXH|$fR?</</ N=` )@B``|Pg` 9|``|Qg` |``|Rg` Bl``|Sg` |``|Tg` |``|Ug` |"``|Vg` B,`` |Wg`g HlNXSn0.f HlNX0. n &@/N;X @g Hl&NXBF`0. n PH|Am0. n PH|ZoX0. n PH|am0. n PH|zo$0. n PH|_g HlHNX0. n PH?N"TARF FmHRn<@`d`|Xg`Bl`T`|Yg` |`B`|Zg` |`0`|g`$`$#H?HlfHltN8 HltNX``f`#H|+f~BlBl|Hl/ N9PPJ@fF9||B,0.Rn n &PSn0.f HlNX/ HlN9P`Hl/ N8PJ@fJ||B,B,0.Rn n &PSn0.f HlNX/ HlN9*P`Hl/ N8PJ@f:9|0.Rn n &PSn0.f HlNX/ HlN8P`rHl/ N8VPJ@fP||||B,0.Rn n &PSn0.f HlNX/ HlN8~P`/ HlHltN7 ` ,g HlNX)KSnf ,f Hl"NX n m ,g Hl@NX0,gA Hg Hl^NX Ne u0Nc"?X` ,Jl*/,HlN3 P?<?<?<N,l\?<NTHlR/<?,?<?N, 9@ @g?,/,Nb\ l`Rg*/,HlN2P?<?<?<N,\?<NT ,Tg$Hl$N2X?<?<?<N+\STRX ,T)@^)lXZ ,ЬTЬX)@ ,Ь\)@~ ,`/ </N8X Jg"HlxN2 X?<?<?<N+l\BV` ,`/ </N7 X)@V ,^g< ,ЬTS//, ^cA `A //,^HlN1` HlN1X ,Zg< ,S/ ,ЬT/ ZcA `A //,ZHlN1b ,\g6 ,~S//, \oAF `A //,\HlN1& ,Vg* VcAf `A //,VHlHN0 ,J"<ҬTҬXҬ`)@f fdBf ,fg* fcA `A //,fHlhN0 )lfbgBg?, <ЬTЬXЬ`/?<BN* /,f?<HN)\)@ n>/,f/`| g| g`N,`(`| g`Nt``|g` Nz`N ```0,P|HH|g` N``|g` N``|g` N``|g` N``|g`N`t`|g| g`N>`^`| g| g`N8`H`| g`N`8`| g`N`(`|g`N``|g` N`N``HlnN+X9@0,g lfX,g`<@@,@g lfHlNXHl@HlN,P0,g*Hl@/,N"X/HlTHltN+HltN\X0,g ,jRj/NX/N\XHlHl,ND/HlbHltN*HltN\X0,g`HlN,NX"0<A>` HlpN\X0SG @n|Hl,gAr `A| /HltN*n HltN\XHlN\X<@t@@@)lN9@P lfHlNXHlHlN+fP` lfH|N9@PB,0,P-@N9@P0,PѮ/.N X`,@gHlNXHlHlN*P0,g*Hl@/,N"X/HlHltN)HltN\X0,g ,jRj/NX/N\XHlHl,ND/HlHltN)<HltN\X0,g`HlN*X"0<A>` HlN\X0SG @n|Hl,gA `A /HltN( HltN\XHlN\X<@t@@@)lN|N9@PB,0,P-@N9@P0,PѮ0,gA `A /Hl,N)P/.N X/HlN)PHlHlN)tP` lfHlNXHlHlN)RP lfv0,g*Hl@/,N"X/HlHltN'HltN\X0,g ,jRj/NX/N\XHlHl,ND/HlHltN'HltN\X lfv,gf0,g`HlN)X"0<A>` Hl,N\X0SG @n|Hl,gA. `A8 /HltN' HltN\XHlN\X lf4Hl@N(X @ o$0,gHlLHlA&H| mA&H|~o A& A& l0<<`HA,HHAf0RFAtAgA2RFAt`<RG0lm,@t2RFAtg0RFAt,0RFAt0AtB|``,H|m&,H| l,H?Hl lHltN `^HlFHltNP,H| o*,H|l,HAH?HltNn\`,H?N.T/HltNP><`?<,HltNn\AH|m.AH| l0<0AHC?HltNn\`nHlFHltNzPAH| o2AH|l"AHAH?HltNn\`AH?N.T/HltNPRG0lm @ o<0,g6AL&H| / Hl pHltN^ HltN\X | Gn<@@@BlB,LN^NuNV ,RRZe0<`"0,lc , l8f0<`0<N^NuNVSlg0,A@B?. NTn . H?N.T/Hl@NP ,S)@9|0. W|@N^NuNV?. ,g"H| \Jg H|~_J|`@`>H| \Jg H|~_JJg H|'VJJg H|"VJ|>N^NuNV?.NT nn0<`?.?<>NdX9@xg0<`0<N^NuNV nam nzn 0.| ``0.N^NuNV nAm nZn 0.| ``0.N^NuNVHl/.N@PJ@g`Hl/.N.PJ@gNHl/.NPJ@g n(g nf. n-P n(f HnNX` HnN>XA-H/./. 0.A~ PNPLN^/W DNuN^NuNVH nB fB`м8 LN^NuNVH n$fBCB`nD6< f႖|NzN^NuNVH0&n$n Bn-J @A)X)XA BEG>O|g|JGn|m` REHl/ NRPO`SEHl/ NPO`&0+H@JGgDG0<0dR@0.BAQ,>QQֆG|0QB`Rn0.g$nB`0R 2.HmB`d .6.HЃR$@ nH|0fRZ"H|9o R"` nH|0f$n R&@g`SE .6.HЃ @B n0L N^NuNVH0&n BnH|bf=| RH|rgH|wgH|ag <`R ,z$@ f*A$H`0* |f` A"Ҽm A"Ҽm <`BzBj Bn+H|+f =|j H|wf?./.Nf\>j `hH|afB0<n?/.N*\> @f?./.N(\>?<B?N Pj `0.n?/.N\>j Gf Bj <`<5G Bj <$%@-J?<B?* NP n!@ n1l L N^NuNV)nz/.NX/. /.N@PN^NuNV`H0BnBnBB9| nRH|=@ .&@$@BG`TH| g(H| gH| gH| g H| f0.f0.gBnB` `H|"f< nfBn`*0.f 0.f=|0,RlA` `"`H|'f: nfBn`*0.f 0.f=|0,RlA` `'`r0.fj0.fd=|H|f. R @H|>f T-@=|` R-@Bn`0,RlA`  R0RG0nmB .g,A H1| A H1|HlHl/.N .g2A H1| Hl0.gA `A //.N 0,R@H/?<HNT\)@><`0A` 2 l RG0lm l 0, lBL N^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN -@?<?.B?<BN -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N6 Bg?./. ?<BN ]|9@xg <` `Blx . N^NuNV/.?<HN\N^NuNV/.?<IN\N^NuNVBn`60.AH0f"0.AH00.AJ0 ` Rn nLmN^NuNVBn`&0.AH0nf0.AHBPRn nLmN^NuNV?>.=|0AH"HPgXHf0(>N^NuNVHl /.NTPJ@f =|`Hl/.N8PJ@f =|`Hl/.NPJ@f=|`f0. |g0/.N XJ@g0<``Bg/.?<NX0. |?/.?<=NlP=@9@x @l0<`0. | ??.N~X0.N^Nu)ID)J@)_< `.`|ug`>< ``|og`><``|xg`>< l* ndf SR- .D-@`0. f Gf .`& Gf .` ./0H/N X 2.RnA0 Gf .`( Gf .` ./0H/N 2 X-@ .fp0.gHSn0.A P m0.A0| |A`0.A0|0 SR`LN^NuNVH&n n f=| A)X)XHlHl?<N]|@0. R@?HnHnHnN.g SR-.H|0f.f SR`J nff>.n RG0lo0,`0> Gl0<`0?HnHnHnNBF0g" nm0RFA SRSGSn` nm SR0Sn`0. g SR.0. g nl SR0RnSn `0. Sn J@g$ Go0RFAH`0<0 SRSG``` SR0. g SR.><0. Sn J@g0RGA SR` SRE?.Hl&/N: /NXHѓLN^NuNVBn n PH|0m4 n PH|9n$0. n PHC|0=@ nR`0.N^NuNVH0&n -n @$PXgVgH|%g nR`H|%f,RBn=|Bn| H|-f=|RH|0f|0R-JHnN"X=@$nH|.fR-JHnNX=@$nH|lf=|RgH-n Gdg Gog Gxg GufB0.g @ ` @0H/Hn?.?NT 0.g0<`0<H` Gcf R @ nRT` Gsf4 @-PX<.` nR nRSF0g nf`J Geg Gfg Ggf, @A)X)X/,/,Hn?.?NP` 0 nR .nl0.g$<.".A` nRSF0f`b .2.SAHЁ-@-@,.` .2SAHЁ @ nSSF0f .n nR` .R-@` nB .L N^NuNV/. HnNhP=@/.HnN8P0.N^NuNVHnHlNPN^NuNVHn /.N&PN^NuNV ng/. nRH?N\`N^NuNV oB"WHNu o0/fpL.NuN^NuNVH0&n$n -KfSg` .L N^NuNVH0&n$n >.-KfS0SGJ@gg`B .L N^NuNVH0&n$n `RRg HHAgHHCL N^NuNVH0&n$n >.SG0ggHHAfRR`HHCL N^NuNV n "n fN^NuNVH0&n$n >.-K0SGJ@gg` .L N^NuNVH0&n$K`Rf L N^NuNV n R @H=@ n g n g n f n R @H=@`0.N^NuNV=| nxg nXf n f0<`f n0m n9n0.|0=@`2 nam0.|a| =@` nAm0.|A| =@0.n o0<``0.N^NuNVBnBHnNX=@ n-f0<=@ nRH=@?.?.N*X=@ @g2 ./0.H/NN 6.HЃ-@ nRH=@` g n 0.g .D` .N^NuNV?< /</.N@ N^NuNV?< /</.N" HN^NuNV/.?<AN\9@xg0<``0<N^NuNV0. Sn J@g6 nH| f?< ?<NX nRH??<NX`N^NuNV0. Sn J@g nRH??<NlX`N^NuNV0. Sn J@g nRH??<N>X`N^NuNVH0&n $KA*-H nf?./ N4\=n`H nf?./ N`\=n`* nf?./ Np\=n` -KBn?.NxTJ@f ndH| f |o@ H-@/./.?.?<@Nj 9@xHg0<`0,xn/./<?.?<@N4 9@x @g0<`hRnR -@`R``` 6.ƼЃ$@ H-@/./.?.?<@N =@9@xHg0<`Blx0.L N^NuNVH$.f BB`J". BnJlVnDJlRnDvd`Bbd nmDdD-@-A LN^NuNV/BnJlRnDJ lRnD 0. -@0.n0. nngD -n N^.JNuN^NuNV/0. -@0.n0. n -n N^.JNuN^NuC                        C          CC  C0123456789abcdefC|A"A"A"A"A "A0"AB"AR"AZ"Ad"Ap"A|"A"A"A"A"C&ncc 1701CazertyuiCqwertyuiC|spock ! C<USS Entreprise>.C&fizzgiggC trucC !C98765CAf"A~"A"A"A"A"A"A"A"A "A"A,"A>"AN"A`"At"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A("AB"AT"At"Av"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A "A "A"A"A "A0"A\"9|CC"2"2 2"2"2"22"2"2"22"2x9|)l)l)l)l)l9|C~A"A"A"A"A"A"A*")|zNuNV/0,P|Hg20,P|8H @fNQ`0,P|? @;b ?,PN T`0,P|HH @fN0,P|8H @g:0,P|? @9b,0,P|8H @f0,P| @bNQ ?,PN .μ6.Ƽރ/NL X`NO?,PN T.N^NuNVHBn0,P|HH|6nn0,P|H|6Cnn0,P|HH @f0<`0,P|HH|6Cl?PlP0.|8H @f0,P|HH @g0,P|? @0.|? @9b0,P|8H @f0,P|HH @g0,P|? @N^NuNV0,P|H @f:0,P|8H @fNJ@=@ ,6.HЃ/NF8X` ?,PNBT`40,P|? @9b&0,P|8H @f 0,P|Hg ?,PN TN^NuNVH>,P|gF Gc,,μ܇` ,,μ܇ m ",ҬTl/NEX`2NI9@P,,2,PH܁ m ",ҬTl/NEhXLN^NuNV/0,P|H @f20,P|8H @g0,P|? @.μNH`=@0.ހ/NDXX`NHB` ?,PN\T.N^NuNV/0,P|H @f0,P|? @.μNG=@0.ހ/NCX`NG` ?,PNT`0,P|Hg,0,P|8H @e0,P|? @9b ?,PNT`0,P|8H @f0,P|Hg0,P|? @.μNF=@0.ހ/NBX`NF` ?,PNT.N^NuNV/0,P|H @f0,P|? @.μNFB=@0.ހ/NB:X`NF$` ?,PN>T`0,P|Hg,0,P|? @9b0,P|8H @g ?,PNT`0,P|8H @f0,P|Hg0,P|? @.μNE`=@0.ހ/NAXX`NEB` ?,PN\T.N^NuNV0,P|H @f:0,P|? @9b,0,P|8H @e0,P|HH @b ?,PNTN^NuNVH0.|8H|g` ND``|g`"ND=@0.|Hg0<`v`n` |g``0.||g`F,g.NDl=@<.H m ",ҬTl/N@TX` ND>0<```|g`r|ND=@<.̼0,f(,g"B,NC=@0.܀/N?X`"NC=@0.܀0,g/N?X``|g` NC=@ ,6.HЃ/N?X`d`|g`XNC=@>.|μެ0.| @c ` /N?ZX0.|Hg0<`` 0<``````0<LN^NuNV0,P|H @c|0,P|HH @f>0,P|8H @e.0,P|8H @g0,P|? @9bNB?,PNT`,0,P|8H @g0,P|? @Hl,NZP0,P|H @fHlN'(X`\0,P|8H @g0,P|? @9cN&`6N'0,P|H @f|N>4=@0,P|Hg?.NAT/Hl0NZP0,P|H @fHl0HlHl BHlN`z0,fH,gBB,N==@>.μ6.Ƽރ/N9X/Hl HHlN `,N==@?.NART/Hl0HlHl NHlN`&0.|?NAtT/HlHl VHlN?,PN' TJ@gN%`HlHlNrP.N^NuNVHBn0,P|HH|6nn0,P|H|6Cnn0,P|HH @f0<`0,P|HH|6Cl?PlP0.|8H @fHl \Hl,NZP0,P|HH @fHlN%X`~N%0,P|? @X/HlHl lHlN?.N%&TJ@gN#`?<,HlN2N\HlHlNrP`R?,PN$TJ@gN#`>HlHlNZP?.N$TJ@gN#`?<,HlN1\HlHlNrP`Hl rHl,NZPN$X?,PN$T>0.|? @9cN#<`0,P|8H @f 0,P|HH @fHlN# X`0,P|? @HlHlNZP?.N"TJ@gN!t`?<,HlN/\HlHlNrPLN^NuNV?0,P|Hg0,P|H @dHlN!4X``0,P|H @fHl |Hl,NZP0,P|? @?,PN!TJ@gN `*0,P|HH?,H?HlHl HlN`Hl Hl,NZP0,P|8H @fHlN bX`0,P|? @?,PN!.TJ@gN`*0,P|HH?,H?HlHl HlN` 0,P|HH|g`0,P|Hgj0,P|H @f0,P|8Hg0,P|8H @f&0,P|?Hl HlN HlNVX`t0,P|8H @e.0,P|8H @g0,P|8H @g0,P|? @Hl Hl,NZPN3=@?.0,P|?,H?Hl HlN`0Hl Hl,NZP0,P|?,H?Hl HlN ` ` |g`Hl Hl,NZP0,P|8H @f:0,P|?,H?,gA `A $ /Hl HlN`8,gA 0 `A 4 /0,P|?,H?Hl (HlN`j` |g`^0,P|? @4fHl 8N0X`B0,P|8H @f0,P||g`Hl DHl,NZP``|g`Hl JHl,NZP``|g`>Hl NHl,NZPN2=@HlHlNZP?.N5T/HlNrP`|`|g`Hl THl,NZP`b`|g`HlNhX`L`|g`Hl XHl,NZP`2`|g`Hl \Hl,NZP``|g`Hl bHl,NZP`,0,P|? @:g0,P|? @;f Hl fNX`N`0,P|H @fA t `A x /Hl,NZP0,P|8H @e.0,P|8H @g0,P|8H @g0,P|? @0,P|8H @g$0,P|? @9c0,P|HH @e0gN:`0,P|HH|g`Hl N,X``|g`2HlHlNZP,gA `A /HlNrP`n`|g`bHlHlNZP,gA `A /HlNrP`4,gA `A /HlNZPHlHlNrP````0,P|HHg.?<0,P|HHA HA/Hl,N$t `Hl Hl,NZPN0,P|8H @g0,P|? @9c HlNX`"?,PN"TJ@gN`HlHlNZP``>N^NuNV/0,P|H @f0,P|8H @f,g0,P|HfHl Hl,NZP`:Hl Hl,NZP?<0<2,P|IA  HA/Hl,N#& 0,P|?,H?Hl 4HlN N,~=@ ,6.HЃ/N(vX/HlNrP`\Hl :Hl,NZP?<0<2,P|IA < HA/Hl,N" ?,PNTJ@gN`HlHlNZP`0,P|HgA ^ `A d /Hl,NZP0,P|? @9cNX`0,P|8H @f0,P|Hf HlNBX`XN&0,P|HHg0,P|HH`0<?Hl jHlN ?,PN(TJ@gN`HlHlNrP.N^NuNVH?<bHl,N"4\?<0,P|HA p HA/Hl,N!x >,P|gHl Hl,NrP Gc,,μ܇` ,,μ܇ m ",ҬTm Hl,Hl HlN HlN.X`J Gf0,g*/N&|X/Hl,Hl HlNHlNX`/N&RX/HlNrP`r,gHl Hl,NrPN*9@P,,2,PH܁ m ",ҬTm Hl,Hl HlN HlNX`/N%X/HlNrPLN^NuNV/ 0,P|HgHlNJX`Hl Hl,NZP0,P| @c40,P|HH?,H?0,P|H?Hl HlN`<0,P|HH?,H?0,P|?N-BT/HlHl HlN&_N^NuNV/0,P|H @f0,P|8H @fHlNX`0,P|HH @fA `A /Hl,NZP0,P|Hg0<s`0<u?Hl,N\0,P|? @?,PNTJ@gN`*0,P|HH?,H?HlHl HlN`l0,P|Hgx0,P|8H @d0,P|H @c0,P|HH @ fHl Hl,NZP0,P|H @fr0,P|8H @db0,P|?0,P|8Hg,H`,H?0,P|HH?0,P|8Hg,H`,H?Hl HlN`d0,P|H @fJ0,P|8H @f:0,P|?,H?0,P|HH?,H?HlHlN` HlNfX` HlNZX`0,P|HH @fA `A /Hl,NZP0,P|8Hg:0,P|HH?,H?0,P|?,H?HlHlN`80,P|HH?,H?0,P|?,H?Hl,HlN`0,P|HH @fA6 `A: /Hl,NZPNb0,P|? @9c HlN`X`>?,PN|TJ@gN8`*Hl0,P|HH?,H?Hl>HlN`0,P|8H @fHlNX`0,P|HH @fAF `AJ /Hl,NZPN0,P|? @.μN$R=@0.ހ/N JX/HlXHlN `N$"=@?.N'T/HlNrP,gA\ `A` /HlNrP0<02,P|IIA?HlN\`>?,PN TJ@gN N`*0,P|HH?,H?HlHldHlN.N^NuNV/0,P|H @f0,P|HH @ fAl `Ar /Hl,NZP0,P|HgAx `A| /Hl,NrP0,P|? @.μN"=@0.ހ0,P|HH?,H?/NX/HlHlN`V>.μN"l=@0.ހ0,P|HH?,H?/N%X/HlHlHlN`P>.H nlHlHlNZP0,P|HH?,H?/N%hX/HlHlHlN`>?,PN TJ@gN Z`*0,P|HH?,H?HlHlHlN`x0,P|HgR0,P|8H @d0,P|HH @ fA `A /Hl,NZPN 0,P|8Hg:0,P|HH?,H?0,P|?,H?HlHlN`80,P|HH?,H?0,P|?,H?HlHlN`0,P|HH @ fA `A /Hl,NZPN &0,P|? @9c HlN $X`>?,PN @TJ@gN`*Hl0,P|HH?,H?HlHlN`0,P|8H @f0,P|HfHlNX`0,P|HH @ fA `A /Hl,NZPN p0,P|? @.μNx=@0.ހ0,P|HH?,H?/NZX/HlHlN`V>.μN$=@0.ހ0,P|HH?,H?/N"rX/HlHlHlN`0,P|Hg80,P|HH?,H??.N"T/HlHl HlN`<0,P|HH?,H?0.|?N"T/HlHlHlN`>?,PN$TJ@gN`*0,P|HH?,H?HlHl HlN.N^NuNV0,P|g Hl(NX`,0,P|A|/Hl.HlN HlN|XN^NuNV/0,P|H @fHl8Hl,NZP0,P|Hg0<l`0<w?Hl,N\,gA> `AB /HlNZP0<02,P|IIA?HlNZ\0,P|? @.μN=@0.ހ/NX/HlNPHlFHlNP`D>.μN=@0.ހ/N X/HlNPHlHlNP`(>.H/NX/HlNPHlHlNP`"?,PNTJ@gN`HlHlNbP`0,P|Hg0,P|8H @fNHlHHl,NZPN0,P|HH?,H?0,P|?,H?HlNHlN`0,P|? @9b0,P|8H @fN,`ZHl^Hl,NZPN0,P|HH?,H?HlbHlN ?,PN$TJ@gN`HlHlNrP`HlhHl,NZPN0,P|HH?,H?HllHlN 0,P|8H @f0,P|HfHlNX`d0,P|? @.μN =@0.ހ/NX/HlN8PHlrHlN*P`:N=@?.NT/HlN PHl|HlNPHlHlNP`Hl|HlNPHlHlNP`"?,PN\TJ@gN`HlHlNP.N^NuNVH0,P|H @f0,P|? @9b0,P|8H @dN`0,P|HH @cHlNX`?<0<2,P|IIAt HA/Hl,N 0,P|HH @f?<xHl,N\0,P|Hg0<l`0<r?Hl,N\?,PNdTJ@gN `HlHlNZP`>,P|8OμHG?<0<A~ HA/Hl,N Gf?<xHl,N<\0,P|Hg0<l`0<r?Hl,N\NA&H0,P|8HJ@g0<02,P|IIA`,#0<02,P|IIg2,P|II`2<A,0<02,P|ABLN^NuNVHlNXN^NuNVHlNXN^NuNVH0,gA `A /Hl,NZPHlHlNZP/.HlNrP,gHltHlNrPHlFHlNZP?<Hl@HlN ` Hl@NfX< @oR><`>HlHlNrPHlFHlNrP?<0<A@A/HlN RG02HAm9|LN^NuNV/ ?<.Hl,N l\&@0,P|HA HH?/ N J\&_N^NuNVH<@t@0.|8H|g`(0.|?,H?HlHlN ``|g`(0.|?,H?HlHlN ``|g`(0.|?,H?HlHlN ``|g`(0.|?,H?HlHlN `V`|g`(0.|?,H?HlHlN `&`|g`4N=@0.|?,H??.HlHlN``|g`RN=@0.|?,H?0.|H?HlHlN?.NTJ@g0<``` |g`0.||g`,glNf=@<.H m ",ҬTm$HlFHlNrP/NX/HlNrP`/N*X/HlNrPHlHlNZP`:N=@|0.H/N^X/HlFHlHltN0<``` |g`|N=@<.̼0,f<,g6B,N=@ 6.ƼЃ,)@n/NtX/HlNrP`ZNR=@ 6.ƼЃ,)@n0,g/N.|μެ0.| @c ` /NjX/HlNrP,gA `A /HlNrP?.N4TJ@g0<``Hl HlNZP0<```0<LN^NuNV?<,HlN\0.|HHg,H`,H?HlN\0<02.|pIIA?HlN\0.|HHgA& `A* /HlNrP0.|H|g``X`|g|g|g`@|Hl.HltNZPHl8HlNZP0<`,`Hl>HlNZP0<```?<)HlN\0<N^NuNV0,P|H @cHlDHl,NZP0,P|H @f0<w`0<l?Hl,N\0,P|HH @ff0,P|8H @e0,P|8H @g0,P|? @9cN`0N?,PN(TJ@gN`HlHlHlLHlN`d0,P|8H @e0,P|8H @g0,P|? @0.H=@Rn nm=GBn`0.|gx0gB0f<:<8.,gAX `A\ /HlNrP0<0n?HlN\`0<<:8.,H?HlN\0<0n?HlN\`J0gF02.SAAg8,gA` `Ad /HlNrP0<02.SAA?HlN\BE0.H=@Rn no0g& Dg ,gAh `Al /HlNrP<<8:B,^Bn`0.|gx0gB0f<:<8.,gAp `At /Hl^NrP0<0n?Hl^N\`0<<:8.,H?Hl^N\0<0n?Hl^N\`J0gF02.SAAg8,gAx `A| /Hl^NrP0<02.SAA?Hl^Nr\BE0.H=@Rn no0g& Dg ,gA `A /Hl^NrP,g$,^g?</HlN\Hl^HlNrP`Hl^HlNZPLN^NuNV/ &n?<?<?<NB\HlNlXHlNlXHl$NlXHlNNlXHl~NlXHlNlXHlNlXHlNlXHl2NlXHllNlXHlNlXHlNlXHlNlXHl NlX/<HlDNlPHlNlXHlNlXHlNlXHlNlXHl6NlXHlpNlXHlNlXHlNlXHlNlXHlJNlXHlHlNlPHlNlXHlNlXHlNlXHlBNlXHlNlXHlNlXHlNlXg / Hl4NlP?<NbT&_N^NuNVH&n>. Hl>NlX Gl0`0<9@x/ NjX?<?<?<NB\?<N TLN^NuNV?>. g/,?<IN~\ g/,?<IN~\ g/,?<IN~\A Hg0,g?,?<>N~X0,g?,?<>N~XHlNlXHlF?<N\HlTNPXHl^?<N\`?<?<?<NB\?<N~TH| fHlNlX?NN^NuNV/ &n?<?<?<NB\?<p?<?<NB\/ ?<N \?<?<?<NB\?<q?<?<NB\&_N^NuNV/ &nfS &_N^NuNVH0&n$n >.?/ / N / NXL N^NuNVH0&n$n / / NrP/ NXL N^NuNVH0&n$n >.?/ / N KB/ N`XL N^NuNVH0&n. / N@X$@B L N^NuNVH0&n$n / HlNZP/ / NZPHl/ NrPL N^NuNVH&n,f`&` H|amH|zn H| RfLN^NuNVH&n` H|amH|zn H| RfLN^NuNVH&n/ NtX lf / NlX`0,g$`H| fB,H?NTf`A Hg``XH| f<@@`4,g.H| f,f|`"`,gB,?< NDTH?N8Tf`&` H| fB,|??<N~XfLN^NuNVH. G `/,HlFHlzNl 0,lf:0,|A?HlNl\HlNlX?<?<?<NB\?<NT nl?N~XBl0,|A?HlNl\ loA `A /HlHlN Hl?<N \Hl4NDXHl>?<N \HlFN,XHlL?<N t\?<?<?<NB\?<N~TH| g H|fHlNlXH|f ?<NT?,?< NBXJg HlNNlX`00,|A?HlNl\?<?<?<NB\?<NTBgHl?</N~X/HlFHl>HlNHlHlDNlP?<?<?<NB\A LN^NuNVH..,. f0<` d0<`0<LN^NuNVH lcP?,HlbHlFN HlFN tX0,f A Hg,f HltN,XHlN"X lc?,HlvHlFN `HlHlFNP|HlFNX)lB`| lX )@@BF` l@AAFRF Fm l@/(N$X/HlAF P/N HlFNxX lPd0,f A Hg / </NX  f HlN:XR 2,¼mNHlNXLN^NuNVH0,f rg ,bf )|r`BFSb lRH Gl| ,bg>0|g`)|rBb`$`|g`<<r` 0HѬr```40g(HlNlX?<?<?<NB\?<N~T`)|r0fhLN^NuNVH../HlHl6N BF`A6H| f A60RF FmA6 LN^NuNV,g?<HlnN\B, ,ЬT//,NP @g?<HlnN\ ,rf,f?<HlnN\B,/,r/,NP @f&HlNlX?<?<?<NB\?<NtT0,g>Bl=l4 ,rf&Hl NlX?<?<?<NB\?<N4T` ,rf<@H9@Hn/<?,?<?N~ g&Hl2NlX?<?<?<NB\?<NT ,Ѯ .9@4 .=@Np`HHn/<?,?<?N~ g&HlNNlX?<?<?<NB\?<NXTRRT?.NT/Hl@NrP0.N^NuNV/,r/,NTP @f&HltNlX?<?<?<NB\?<NT0,gXSl ,0&<@ ,0)@0 ,rf&HlNlX?<?<?<NB\?<NT` ,rf9|9|Hn/<?,?<?N~ g&HlNlX?<?<?<NB\?<N6T ,Ѯ .&<@ .)@0N`HHn/<?,?<?N~ g&HlNlX?<?<?<NB\?<NTR.H?NT/Hl@NrP.N^NuNVH..B`, &<AHA& .RH|mA& LN^NuNVH>.B`&0HH|AHA 0@>RH|mA LN^NuNV?. H@|APH|APA >N^NuNVH>.&n `H???<NB\fLN^NuNVHBF`b ,42 Ё)@< l V/NX?HlHlHlNB`RHAH|mRF0leLN^NuNVH&n?<Hl/ N J@g0<`b?<Hl V/N J@f0<`BV<`,H|0m H|9oH| g0<`RR H|m0<LN^NuNV,g,gHlDHlNrPA N^NuNV?B, lf0,lc`fRlBG`. l8AH| f0<` l8AHARG GmB,0,gA `A /Hl,NZP0,g,0,g& l8/(NZX/HlFHl"HlN`V/, l8/(NP @m l8 (/Hl(HlN ` l8 (/Hl.HlN lf`0,g HlNJX0,g ,jRj/NX/N,XHlHl,N/Hl4HltNHltNXHlNX 80,le` l8/(/,N(P @g<@@,@Bl lf0,lc`RlBG`. l8AH| f0<` l8AHARG GmB, 80,le`h lfP , l8fB0,g HlN$X0,g ,jRj/NX/NXHlNXHlBNX , l8gF>N^NuNV/ &n0,g/ HlFNlP`A Hg / HlVNlP&_N^NuNVH>,xDG&|/.HlpNlP Gm$0ln0A Pg 0A&P f0D@?HlvA &@/N / HlNlPLN^NuNVH0-l40,g| ,42, Ё$@ &@ . "+c -@`LBG . n"(d`RG0 .` .-@0,G> %#Sf` ,4-@ nX  nX n  nX n RlL N^NuNVHBG<,SF`L0Fo <`D:FE ,42 Ё-@ n(( .f .` .d<SF`>RG0<fLN^NuNVH0.. S|&n:F$KX S"R e f )d$&QXRFGcL N^NuNVH0..  c* (b//.NP`-n߮-n&n$n Yd n"P S k f (jX`ܵcP n"P R k f< (j2f" & n$ &n` &$Y`Y`fJ . Юj/./.aP-nX`/. .X/aP-n ` $ n& $n`L N^NuNV?`Hl?<N\HlN@XHl?<N\HlN(XHl?<Np\?<?<?<NB\?<N~TH| g H|fHlNlXH|f ?<NTBg?<NBXJgb>N^NuNV nH|Am nH|Zo( nH|am nH|zo ?<N~T`0 n(H|:g ?<N~T` nH?NT|AN^Nuinitput pixelget pixellinehorizontal linefilled rectanglefilled polygonebit blttext bltshow mousehide cursortransform mouseundraw spritedraw spritecopy rasterformcontour fillEevlblDsassembleur  Version 1.0DESA - Copyright LORICIELS Octobre 1986Auteur: Eric Lvnez Erreur interne sur setjmp Option vide !nom2 doit tre spar de -f !nom2 est manquant !nnn doit tre spar de -l !nnn est manquant !nnn doit tre spar de -o !nnn est manquant !lbl doit tre spar de -w !lbl est manquant !lbl doit comporter 3 caractres !lbl doit tre alphabtique !L'option -%c est inconnue !+METAnom2 est manquant !+DRInom2 est manquant !+STDnom2 est manquant !+MEGAnom2 est manquant !L'option %s est inconnue !Un seul nom de programme !Il faut un nom de programme !Mauvaise adresse d'origine !Les options -p et -f sont incompatibles !Le nombre maximum de labels doit tre compris entre %ld et %ldLes options -x et -y sont incompatibles !L'option -q doit tre utilis avec l'option -p0x$#%s:Pas assez de mmoire (%ld octets au lieu de %ld) Pas assez de mmoire (%ld octets au lieu de %ld) Taille du fichier = %ld octet%s s Longueur impaire: dernier octet non trait %s: Fichier trop petit %s: Fichier d'un mauvais type Section TEXT de longueur impaire Dernier octet transfr dans la section DATA Mauvaise longueur de la section LBL Section TEXT : %ld mot%s (de $%lx $%lx) sSection TEXT nulle ?! Section DATA : %ld octet%s (de $%lx $%lx) sSection BSS : %ld octet%s (de $%lx $%lx) sSection LBL : %ld label%s sSection REL : %ld adresse%s sPas assez de mmoire (%ld octets au lieu de %ld) @CBNsection TEXTRecherche des labels TEXT  %-10s %s%s org.orgtext.textdc.l.dc.lAdresse relogeableAdresse relogeable%s %-14.12s%-10s%-10s %s /* %s */;%sAdresse relogeableInstruction incomplete%s %-14.12s%-10s%-10s %s /* %s */;%sdc.l.dc.lAdresse relogeableInstruction incomplete%s %-14.12s%-10s%-10s %s /* %s */;%s %s Recherche des labels DATA Erreur sur adresse DATA relogeable equ.equ*%ld%-10s%-10s %sdata.datasection DATAErreur sur adresse DATA relogeable %s %-14.12s%-10s%-10s %s dc.l.dc.lsection BSSbss.bssds.b.ds.b %-10s %ld %-10s %ld ds.b.ds.b%s %-10s%-10s %ld equ.equ%s%s*+%ld*%ld%-10s%-10s %s end.endRecherche des labels LBL Trop de labels (> %ld) Tri des %u labels Fin de l'impression Fin de la sauvegarde %s %-14.12s%-10s%-10s dc.b.dc.b%d %.12s movep.%c%c%d,%s%s(%c%d)%s%s(%c%d),%c%dbtstbchgbclrbset%c%d,btstbchgbclrbset%s%s,%smoves (60810)oriandieori%s%s,%sSRsr%s%s,%sCCRccr????andisubiaddi????eoricmpi????ori%s%s,#%s,%s%s%s,%s%s,movea#%s%s%s%s%smove#%slea%s,%c%dchk%s%s,%c%d%s,%c%dbreak #%d (68010)peaswap%c%dext.%c%dnbcdsys1sys2usertaststtrap#%dlink%c%d,#%dunlk%c%dmove%s,%c%dUSPusp%c%d,%sUSPusprtd (68010)resetnopstoprtertstrapvrtrmovec (68010)jsrjmp%s en arrieremove.wmove from ccr (68010),CCR,ccr,SR,srSR,sr,move from ccr (68010),CCR,ccr,SR,srSR,sr,lemclrnegnotnegxdbfdbt rahilscccsneeqvcvsplmigeltgtle%c%d,st f hilscccsneeqvcvsplmigeltgtlesubqaddq#%d,rasrhilscccsneeqvcvsplmigeltgtle.s%s (hors section)%s %s.l%s (hors section)moveq#%d,%c%d%s%s,%c%ddivmul%s%s,%c%d%s,%c%dexg%c%d,%c%d%c%d,%c%dsbcdabcd-(%c%d),-(%c%d)%c%d,%c%dorand%c%d,%sorand%s%s,%c%d#%s,D,d%s,%c%dsubaadda.l.w#%s,%c%d%s%s,%c%dExtension du signe%s%s,%c%d%s,%c%dsubxaddx-(%c%d),-(%c%d)%c%d,%c%dsubadd%c%d,%ssubadd#%s,%c%d%s%s,%c%d%s%s,%c%d%s%s,%c%d%s,%c%d1010graph: %scmpa.,A,a#cmpm(%c%d)+,(%c%d)+eor%c%d,cmp,%c%d#aslsroroaslsroro1111eadc.w.dc.wIllegal ,bwl?%c%d%c%d(%c%d)(%c%d)+-(%c%d)%d(%c%d)%d(%c%dAbsolu court (Absolu court en %s%s)(PC)(pc)(PC(pc?ea?.l.w (68020)?ea??ea?movem.%s,%s%s,%s/D/d-D-d-D7-d7/A/a-A-a-A7-a7Usage: desa.ttp nom1 [-abcdeghijkmnpqrstuvxyz] [-l nnn] [-o nnn] [-f nom2] [-w lbl][+DRI nom2] [+STD nom2] [+META nom2] [+MEGA nom2] nom1: nom du programme dsassembler -a : ne pas utiliser les labels sur disque -b : branchements longs sans extension '.l' -c : non-affichage du code objet -d : mettre ':' aprs chaque label -e : prvenir si l'on a des jmp ou jsr en arrire -f : nom du fichier de sortie = nom2 (dfaut = aucun) -g : mettre le nom des registres en majuscule -h : nombre hexadcimal au format C -i : conversion de dbra en dbf -j : conversion en majuscule de TOUT le programme -k : fichier du type core-image -l : nombre maximum de labels en dcimal (dfaut = %ld) -m : format Motorola des instructions (dfaut = DRI) -n : numrotation des lignes -o : adresse d'origine en hexadcimal (dfaut = 0) -p : impression des rsultats -q : ne pas initialiser l'imprimante avec l'option -p -r : non-affichage des remarques -s : adressage absolu court autoris (dfaut = interdit) -t : remplacer les espaces par des tabulations -u : chanes encadres par guillemets (dfaut = apostrophes) -v : ne pas mettre d'apostrophes ou de guillemets dans les chanes -w : dbut du nom des labels (dfaut = '%s') -x : non-affichage des rfrences -y : uniquement affichage des rfrences -z : ne pas traduire les bcc.s *+4 +DRI : runion des options -b -c -d -t -v -x -z -f nom2 +STD : runion des options -c -m -t -x -f nom2 +META : runion des options -c -e -m -t -v -x -f nom2 +MEGA : runion des options -b -c -d -g -h -i -t -x -f nom2 %s desa: Appuyez sur RETURN pour sortir du programme Dernire adresse traite = %s%lx Le disque %c: est plein ! Abandon du dsassemblage ! Le disque %c: est plein ! Mettez un autre disque,%s et appuyez sur si c'est possible, RETURN sinon ESC La sauvegarde continue sur le nouveau disque Le disque %c: n'a pas chang ! Erreur la rouverture de %s Appuyez sur RETURN pour continuer imprimer, sinon appuyez sur ESC Trop de labels (> %ld) %s%u %s%sErreur interne sur label %s des %u rfrences References des %u labels : Reference du label : : $%-11s Erreur sur dernire adresse relogeable %7ld Erreur sur adresse relogeable Recouvrement d'adresses relogeables TEXT relogeable incomplet Erreur sur lecture d'un octet TEXT Erreur sur adresse relogeable Recouvrement d'adresses relogeables DATA relogeable incomplet Erreur sur lecture d'un octet DATA %5u%s%u  equ.equ%s%s*+%ld*%ld%-10s%-10s %s: Impression %s Sauvegarde %s Aucune erreur dtecteErreur fondamentaleLecteur non prtCommande inconnueErreur CRCMauvaise requteErreur positionnementMdia inconnuSecteur non trouvPas de papierErreur d'critureErreur de lectureErreur gnraleEcriture protgeChangement de mdiaPriphrique inconnuMauvais secteur au formatageInsrez un autre disqueNumro de fonction non valableFichier non trouvNom d'accs non trouvTrop de fichiers ouvertsSaisie impossibleNumro de rfrence non valableMmoire insuffisanteAdresse du bloc mmoire non valable Mauvaise description du lecteurPlus d'autre fichierErreur de rangErreur interneFormat de chargement du programme incorrectErreur sur setblock%s: Erreur inconnue numro %d%s. Appuyez sur RETURN ds que l'imprimante est prte, sinon ESC CON:AUX:PRN:@$??rawCON:AUX:PRT: %d ]j06801030302800 1DESA V1.022/09/86 2- # - F0110030 9[....................................................]001  DESA ~~~ Dsassembleur68000 pourlagammeSTd'ATARI Version1.0 ~~~ Manueld'utilisation ~~~ CopyrightLORICIELSOctobre1986 Auteur:EricLEVENEZ  Reproductioninterdite,loidu11Mars1957 Tousdroitsrservs.  -LORICIELSestunemarquedpose. -ATARIST,STBASICetTOSsontdesmarquesdposesparATARI Corp. -GEMestunemarquedposeparDigitalResearchInc. -EPSONestunemarquedposeparEpsonCorp. -AS68,LINK68etRELMODsontcopyrightparDigitalResearch Inc. -ASSEM,CONVERTdeMETACOMCOsontcopyrightTenchstarLtd. -GST-LINKestunemarquedposeparGSTHoldingsLtd. -MEGAMAXCestunemarquedposeparMegamaxInc.  TABLEDESMATIERES = 1-Introduction.)5 2-Miseenroute.(6 2.1-Configurationdefonctionnement.6 2.2-Conventionsutilisesdanscemanuel. 7 3-Limitesd'undsassembleur.7 4-Dsassemblagesurcran.9 5-Dsassemblagesurdisque.10 6-Dsassemblagesurimprimante.11 7-Dsassemblageenvued'unrassemblage.12 7.1-Limites .'12 7.2-Dsassemblagestandard.13 7.3-DsassemblagepourMETACOMCO.14 7.4-DsassemblagepourDRI.15 7.5-DsassemblagepourMEGAMAX.16 8-DsassemblagedelaROM.17 8.1-DumpdelaROM. 17 8.2-DsassemblagedelaROM.18 9-Optionsdedsassemblage.19 9.1-Utilisationdesoptions.19 9.2-Optionsdeconfiguration.20 9.2.1-OptionA.20 9.2.2-OptionK.20 9.2.3-OptionL.20 9.2.4-OptionO.20 9.2.5-OptionX.21 9.2.6-OptionY.21  9.3-Optionsdesortie.22 9.3.1-OptionC.22 9.3.2-OptionF.22 9.3.3-OptionN.22 9.3.4-OptionP.23 9.3.5-OptionQ.23 9.3.6-OptionR.23 9.3.7-OptionT.24 9.3.8-OptionW.24 9.4-Optionsd'adaptation.25 9.4.1-OptionB.25 9.4.2-OptionE.25 9.4.3-OptionD.25 9.4.4-OptionG.25 9.4.5-OptionH.25 9.4.6-OptionI.26 9.4.7-OptionJ.26 9.4.8-OptionM.26 9.4.9-OptionS.26 9.4.10-OptionU.26 9.4.11-OptionV.27 9.4.12-OptionZ.27 9.5-Optionsgroupes.28 9.5.1-OptionSTD.28 9.5.2-OptionMETA.28 9.5.3-OptionDRI.28 9.5.4-OptionMEGA.28 9.6-Listedesoptions.29 10-Utilitaires.)30 10.1-dump.)30 10.2-print.(31 10.3-trans.(32 10.4-xdisk.(33 10.5-xspool.'35 10.6-xfree.(36 10.7-xdate.(36 11-Structured'unprogramme.37 11.1-En-tted'unprogramme.37 11.2-SectionTEXT.!37 11.2-SectionDATA.!37 11.4-SectionBSS."38 11.5-SectionLBL."38 11.6-SectionREL."39 11.7-Programmecore-image.40     1-Introduction ~ DESAestundsassembleur68000adaptlagammeSTd'ATARI. Ilpermetdeconvertirenlangaged'assemblage68000tout programmefonctionnantsurcesordinateurs.   DESAestfourniavec7utilitaires:unspooler,XSPOOL,un Ramdisk,XDISK,unprogrammed'impression,PRINT,unprogrammede dumpmmoire,DUMP,unprogrammedeconversion,TRANS,un programmedonnantlatailledelammoirelibre,XFREEetun programmedemandantl'heureauboot,XDATE.  PourpouvoirutiliserpleinementDESA,laconnaissancedu 68000estncessaire. Commetoutdsassembleur,DESAadeslimites,ellesse trouventdtaillesdanslechapitre3.Ellessontinhrentes toutdsassembleuretviennentdufaitqu'undsassembleurne connatquelersultatetnonlacause. Etpouraiderl'utilisateur,seuljuge,DESAfournit,dans touslescasqu'ilpensedouteux,descommentairesindiquantce quinevapas.L'utilisateurpeutalorsconserverlersultat fourniparDESA,maisilpeutaussilemodifierenutilisant n'importequelditeurdetexte. DESAestundsassembleurdeuxpasses.Danslapremire passe,ilrelvetouteslesrfrencesdeslabels,etdansla seconde,ilafficheleprogrammedsassemblaveclabelset commentaires.LeslabelssontgnrsautomatiquementparDESA partird'unnomgnriquequiest,pardfaut,"lbl".Ilcrera doncdeslabelsdelaforme"lbl23".Depluscertainsprogrammes contiennentlenomdeleurslabels(voirchapitre11),etdansce casDESAutiliseraceslabels. DESArepreaussilestextesASCIIlorsdudsassemblage.Il fournitainsideslignesdutype: dc.b'Entrezunnombre',0 DESAdonneunesortiecompatibleavecunassembleurau standardMotorola.Ilpermetdoncunrassemblagesansaucune modificationdutextefourni! DESAafficheenfinunelistedetouteslesrfrences (labels)contenuesdansleprogramme,ilpermetainsidereprer lespointsd'entreainsiquelespartiesnon-utilisesd'un programme(casdescompilateursutilisantdesbibliothques).  2-Miseenroute ~ 2.1-Configurationdefonctionnement DESAncessite: -unordinateurATARIdelagammeST(520,520+ou1040) -unlecteurdedisquettes -unmoniteurmonochrome,deprfrence,maisDESAmarcheaussi avecunmoniteurcouleurouunetlvision. DESAestplusagrableutilisersil'ondispose: -d'uneimprimante,etdeprfrencecompatibleEPSON -d'undeuximelecteurdedisquettes(720Kparexemple),ou d'undisquedur  2.2Conventionsutilisesdanscemanuel PourlancerunprogrammesousGEM,ilfautdouble-cliquer l'icneportantlenomduprogramme.Sileprogrammencessitedes paramtres,leprogrammedoits'appeler"*.ttp",oubienl'ondoit utiliserl'option"Installeruneapplication"dumenu"Options"du GEM. Ilexistedesinterprteursdecommande,marchantsousTOS, fournisavecdescompilateurs,quipermettentdelancerun programmeentapantsonnomsuividesesparamtres.C'estceque l'onappelledesshells. Danscemanuel,touslesexemplessontdonnssousformede lignesdecommande.Parexemple,pourlancerDESAenvuedu dsassemblagesurl'imprimante,detoto.prg,cemanuelindiquera detaper: "desa.ttptoto.prg-p". SivouslancezDESApartirduGEM,ilvousfaudradonc double-cliquerl'icne"desa.ttp",etentrer"toto.prg-p"dansla zonededialogueduGEM. Sivousdisposezd'unedespremiresversionduTOSenROM, ilvousfaudrarecopierlefichier"desktop.inf"crparunTOS enRAM.Eneffetlesprogrammesdutype"*.ttp"nesontpas reconnusparceTOS. Sivousutilisezunshell,ilvousfaudraentrerlaligne entire. L'appeldeDESAsefaitdelamaniresuivante: "desa.ttpNomProg[-options][+options]" NomProgestlenomduprogrammedsassembler,et"options" sontdesoptionsfacultativesdcritesdanslechapitre9.En l'absencedetoutparamtreetenl'absencedunomduprogramme dsassembler,DESAaffichelalistedetouteslesoptions disponibles.  3-Limitesd'undsassembleur ~ DESAdsassemblecorrectementtoutprogrammebienstructur, c'estdirerespectantlesconventionsdcritesdanslechapitre 11. Mais,hlas,ilexistedesprogrammesquinerespectentpas cettergle.C'estenparticulierlecasquandunprogrammemetun texteenpleindanslasectionTEXT,rserveaucodeexcutable, etnondanslasectionDATA.DanscecasDESAnepeutafficherle textesousformedetexte,ill'afficheradoncsousforme d'instructions68000,siellesexistent.Siellesn'existentpas, ilfournirauneinstructiondutype"dc.w",cequipourra,sans problme,treassemblparuncompilateur.Detelscaspeuvent trereprsgrceauxcommentairesdutype"illegal". Lamodificationd'unprogrammedsassemblparDESA,envue d'unrassemblagedoittreeffectuavecprcaution.Ajouterou supprimerdesinstructionsnepose,engnral,pasdeproblmede partlefaitqueDESA"labellise"entirementlesprogrammes.Mais ilpeutarriverqueleprogrammenefassepasrfrence directementuneadressecommedansl'exemple"move.l#1,12(a5)". Danscecastoutemodificationrisqued'entrainerdesdcalages d'adresse,etl'adresse12(a5)auraitddevenir,parexemple, 14(a5).Dansuntelcas,DESA,commetoutdsassembleurest impuissant.Eneffetseulleprogrammesourcepeutclairerceque leprogrammeestsensfaire:"move.l#1,valeur-debut(a5)".  4-Dsassemblagesurcran ~ Pardfaut,DESAdsassemblesurl'cran.Ainsipour dsassemblerleprogramme"toto.tos"setrouvantsurledisque "C",ilfaudralancerDESApar: "desa.ttpc:\toto.tos" Pourarrtermomentanmentl'affichage,utilisez"Ctrl-S", pourlerelancer"Ctrl-Q".Unarrtdfinitifs'effectuepar "Ctrl-C".Cescodesnesontactifsquelorsd'unaffichage. DESA,enl'absencedetoutparamtre,affichelersultatdu dsassemblagesurl'cran,puisilaffichelesrfrencesdu programme(labels).Ilattend,enfin,lafrappedelatouche pourretourneraushellouauGEM.  5-Dsassemblagesurdisque ~ Pourenregistrerlersultatd'undsassemblagedansun fichier,surdisque,ilsuffitd'utiliserl'option-f.Parexemple ledsassemblagede"c:\toto.tos"verslefichier"b:\toto.lst"se faitparlacommande: "desa.ttpc:\toto.tos-fb:\toto.lst" Danscecas"toto.lst"contiendratoutledsassemblageainsi quelatabledesrfrences. Lorsquel'ondsasssembleungrosprogramme,lersultatpeut avoirunetaillenorme.Etdanscecas,siaucoursdel'criture surdisque,DESAs'aperoitqueledisqueestplein,ildemandera sonchangement,etcontinueralasauvegardesurlenouveaudisque. Maiscecin'estpossiblequesilasauvegardeetleprogramme sourcenesontpassurlemmedisque.Eneffetleprogramme sourcedoittreaccessibletoutmomentparDESA. Pouracclrerledsassemblaged'ungrosprogramme,vous pouvezutiliserleRAMdiskXDISK.Voirlechapitre10.4. Pourgagnerdelaplacesurdisque,ilpeuttreutile d'utiliserl'option-tquitransformetoutesuited'espacespar unetabulation(codeASCII9).Voirchapitre9.3.7. Parexemple,enutilisantXDISKavec770KendriveC,sur unemachinede1Moctets,ledsassemblageduSTBASICpar: "desa.ttpc:\basic.prg+metac:\basic.asm" met4minutes30pourlarecherchedes4515labels(passe1), puis11minutes40pourlasauvegardedes587Kde"basic.asm"sur leRAMdisk.  6-Dsassemblagesurimprimante ~ Pourenvoyerlersultatdudsassemblagesurvotre imprimante,ilsuffitd'utiliserl'option-p.Cetteoptionsuppose quel'imprimantesoitcompatibleEPSON,etquelepapierutilis soitd'unelongueurde11pouces.L'impressionseferaraisonde 58lignesparpage.Exemple: "desa.ttptoto.prg-p" Sil'imprimantenerpondpascescaractristiques,il faudra,deplus,utiliserl'option-q.Parexemple:  "desa.ttptoto.tos-pq" Siaucoursdel'impression,l'imprimantesetrouvebloque pendantplusde30secondes,DESAprviendral'utilisateurenlui demandants'ilveutarrterledsassemblage,oubiens'ille reprendaprsrparationdel'incident.Cecipeutarriversi l'imprimantemanquedepapier.Eneffetledsassemblaged'un programmepeutdemanderunegrandequantitdepapier,parexemple leSTBASICncessiteplusde600pages... Pouraugmenterlavitessed'impression,etpourlibrer l'ordinateurplusrapidement,vouspouvezutiliserlespooler XSPOOL.Voirlechapitre10.5.  7-Dsassemblageenvued'unrassemblage ~* 7.1-Limites Lerassemblaged'unprogrammepartirdursultatfourni parDESAesttoujourspossible,maisleslimitesviennentsouvent del'assembleurquiservirareconstruireleprogramme.Eneffet touslesassembleursinterprtentunprogrammesourced'unefaon diffrente.Ils'agitdanslaplupartdutempsd'uneoptimisation ducode,commeparexemplelechangementd'un"bra.l"en"bra.s", ouleremplacementd'un"add.la2,a1"parun"adda.la2,a1". Sil'assembleurutilisremplaceuneinstructionparune autrequivalente,maispluscourte,desproblmespeuvent survenirpourdesadressesrelativescalcules.Voirchapitre3. Sil'assembleurpossdeunedirectiveluiinterdisantde tellespratiques,ilfaudral'employer. Cetteoptimisationducoderaliseparlesassembleursn'a pasquedesmauvaiscts,eneffetellepeutservirrassembler unprogrammepourobteniruncodepluscourtetplusperformant. PouradapterlasortiedeDESAl'entred'unassembleur particulier,DESAdisposedenombreusesoptionsdcritesau chapitre9.4.  7.2-Dsassemblagestandard DESApermetd'obteniruncodesourcestandardd'unprogramme enutilisantl'option"+std".Cetteoptionestdcritedansle chapitre9.5.1.Parexemple,pourdsassembler"toto.prg",la commande "desa.ttptoto.prg+stdtoto.s" peuttreutilise.Lefichier"toto.s"estunfichierenlangage d'assemblage68000auformatMotorola.Normalementtoutassembleur devraittrecapabledelerassemblercorrectement,hlastrs peud'assembleurssontcapablesd'assembleruntelfichiersansy mettre"leurgraindesel".  7.3-DsassemblagepourMETACOMCO PouradapterlasortiedeDESAaumacroassembleurde Metacomco,ilfaututiliserl'option"+meta"dcriteauchapitre 9.5.2,commeparexemple:  "desa.ttptoto.prg+metatoto.asm" Lerassemblagesefaisantpar  "assem.prgtoto.asmtototo.o"  "convert.prgtoto.otototo.bin" "link.prgtoto-nolist-nosym". LespremiresversionsdumacroassembleurdeMetacomco remplacentsystmatiquementles"jsradresse"pardes"bsr adresse"si'adresse'estdfiniavantl'instruction.Cecifournit uncodepluscourt.L'option-epermetdeprvenirl'utilisateur d'untelcas.Voirchapitre9.4.2. Cechangementdecode,hormislefaitqu'ilpeutentranerun mauvaisrassemblage(voirchapitre3),interditl'utilisationde jsr(oujmp)d'uneamplitudesuprieure32Koctets!Eneffet l'instruction"bsr.l"utiliseundplacementsur16bits,etnon sur32.Etdonctout"jsr"uneadressetroploigne(vers l'arrire)entranerauneerreurd'assemblage. LemacroassembleurdeMetacomcosedbrouille,enajoutant deszross'illefaut,pourquechaquesectionduprogramme comporteunnombred'octetsmultiplede4.Cecipeut,lencore, entranerdesdcalagesdecode. LelinkerdeGST(link.prg)placelasectionDATAdansla sectionTEXT,cequipeutavoirdefacheusesconsquencessile programmeutiliseledbutdelasectionDATAcommerepre.Si c'estpossible,ilvautmieuxutiliserlelinkerdeDRI(link68).  7.4-DsassemblagepourDRI  PouradapterlasortiedeDESAl'entredel'assembleurde DigitalResearch,ilfaututiliserl'option"+dri"dcritedansle chapitre9.5.3,commeparexemple: "desa.ttptoto.prg+dritoto.s". Puisonrassemblepar: "as68.prg-l-ntoto.s" "link68.prgtoto" "relmod.prgtoto". Lespremiresversionsde"as68"neveulentpascompilerles instructions"bcc.sadresse",o'adresse'estsitueunmotdu branchement,c'est--direlesbcc.s*+4(*estl'adressedudbut del'instruction).L'option-z,contenuedansl'option"+dri", ordonneDESAderemplacertousles"bcc.s*+4"pardes"dc.w" suivisducodehexadel'instructiondebranchement.Voirchapitre 9.4.12.  7.5-DsassemblagepourMEGAMAX LecompilateurCdeMEGAMAXcomporteunassembleurintgrdu type"asm{}".LasortiedeDESApeuttreadaptecet assembleurenutilisantl'option"+mega"dcritedanslechapitre 9.5.4,commeparexemple: "desa.ttptoto.prg+megatoto.h" Maiscommel'assembleurestintgraucompilateurC,le fichier"toto.h"nepeutservirdirectement.Ilfaudradonc, l'aided'unditeurdetexte,supprimertouteslesparties inutilesdufichier"toto.h"pournegarderquedessous- programmesexcutablesdansuncontexteC.Cet"purage"devra srementtrefaitavecunditeurdetextesautreque "editor.prg"limitdestextesde32K.  8-DsassemblagedelaROM ~ 8.1-DumpdelaROM DESAnepeutdsassemblerquedesfichiersprsentssur disque.PourdsassemblerlaROMdel'ATARI,ilfautdonc pralablementlachargerdansunfichier,cetteoprationpeut trefaiteaveclaligneBASICsuivante,tapedanslafentre "Command": bsave"c:\rom.img",&hfc0000,192*1024 Lacommande"bsave"estdcritedans"L'ouvragede prsentationduBASICATARI"enpageC-9.Ellenemarcheavecde laROM,quesilasauvegardesefaitsurXDISKetnonsurune unitnormalededisque! Cetteoprationdecopiagepeuttrefaite,sansproblme, avecleprogrammeDUMPdcritauchapitre10.1. Ainsi,lacommandesuivantepeutservircopierles192Kdu TOSenROM(sivousl'avez,biensr!): "dump.ttpfc0000192rom.img".  8.2DsassemblagedelaROM Ledsassemblagesurcransefaitalorspar: "desa.ttprom.img-dkofc0000-nsl7000" L'option-kindiquequelefichiern'estpasunprogramme, maisestunereprsentationdecelui-cipouruneadressedonne. Cetteadresseestd'ailleursfixeparl'option-o.L'option-l permetderserverassezdeplacepourtousleslabelstrouvs. IlesthorsdequestionderassemblerlaROM,parcequele code68000etlesdonnessonttropmlangs;DESAnepeuten effetreprerlesdonnesdesinstructionsenl'absencede sectionsbienspares,commec'estlecaspourlesfichierscore- image.Cedsassemblagenepeutservirquepourl'tudedecette ROM. QuelqueschiffrespourledsassemblagedelaROMsurleRAM diskXDISK(avec1Mdemmoire):  -larecherchedeslabels(passe1deDESA)prend9minutes, -leurtriprend36secondes(6832labels), -l'affichagedudsassemblage(passe2)prend2heures(62336 lignes), -etl'affichagedesrfrencesprend4minutes.  9-Optionsdedsassemblage ~ 9.1-Utilisationdesoptions UnelignedecommandedeDESAestdutype: "desa.ttpNomProg[-options][+options]" NomProgestlenomduprogrammedsassembler,parexemple "b:\toto.prg"ou"c:\dossier\prog.prg". '-options'sontdesoptionsquipeuventtre,soitspares lesunesdesautres: "-p-x-l7000-i" soitgroupes.Maisdanscecas,siuneoptionutiliseun paramtre,cetteoptiondoittreladerniredelaliste,et s'ilexisteplusieursdecesoptions,ilfaudralessparer.De plusuneoptionncessitantunparamtreattendcelui-cijuste derrireunblanc.Parexemple: "-pxil7000" "-dkofc0000-nsl7000". Lesoptions'+'nesontquedesgroupementsd'options,c'est- -direqu'ellesregroupent,pouruneraisondecommodit d'utilisation,plusieursoptions'-'. Lesoptions'+'peuventtreutilisesaveclesoptions'-', commeparexemple: "desa.ttptoto.prg+metatoto.asm-wadr". L'ordredesoptionsestindiffrent,ainsitoutesleslignes suivantessontidentiques: "desa.ttptoto.prg+metatoto.asm" "desa.ttptoto.prg-cemtvxftoto.asm" "desa.ttp-cemtoto.prg-vxtftoto.asm" "desa.ttp-tec-ftoto.asmtoto.prg-xmv".  9.2Optionsdeconfiguration Lesoptionsdeconfigurationsontlesoptions-a-k-l-o-x et-y.Ellespermettentd'indiquerDESAcequ'ilva dsassembler,etcommentlefaire. 9.2.1-OptionA L'option-apermetdenepasutiliserleslabelssetrouvant surledisquedanslasectionLBL.Voirlechapitre11.5. 9.2.2-OptionK L'option-ksertindiquerqueleprogrammedsassembler n'estpasunprogrammeTOS(voirchapitre11.7),maisqu'ils'agit d'unprogrammedutype"core-image",c'est--direunecopiedela mmoirereprsentantunprogrammeuneadressedonne.C'estle casduTOSenRAMquis'appelle"tos.img". 9.2.3-OptionL Cetteoptionsertrserverdelaplacepourleslabelsdu dsassemblage.PardfautDESArservedelaplacepour5000 labels;sicen'estpasassez,ilfaututiliser-laveccomme paramtrelenombredcimalmaximumdelabels.Parexemple: "-l7000" 9.2.4-OptionO Cetteoptionsertfixerl'originedudsassemblageune adressefixe.Pardfautcetteadresseestzro. Normalementcetteoptionestutiliseavecl'option-kpour ledsassemblagedeprogrammestournantdesemplacementsfixes (parexemplelaROM).Cetteoptionncessitecommeparamtre l'adressehexadcimaledel'origine,commeparexemple: "-ofc0000" Aveccetteoption,touteslesadressesrelogeablesseront ajustesenfonctiondel'adressed'origine.  9.2.5-OptionX Cetteoptionsertindiquerquel'onnedsirepaslaliste desrfrencesdeslabels.Pardfautcettelisteestdonne. 9.2.6-OptionY Cetteoption,inversedel'option-x,sertindiquerque l'onnedsirequelalistedesrfrences.Pardfaut,lelisting dudsassemblageestfourni,bienentendu.  9.3-Optionsdesortie Lesoptionsdesortiepermettentdechoisirleformatde sortiedudsassemblage.Cesoptionssont-c-f-n-p-q-r-tet -w. 9.3.1-OptionC Cetteoptionsertsupprimerl'affichageducodeobjet, ainsiquelesadressesdesinstructions.Cetteoptionsertlorsque l'ondsireobtenirunfichiersourceassembleur. 9.3.2-OptionF Cetteoptionsertenvoyerlersultatdudsassemblagevers unfichiersurdisque.Pardfautcersultatestaffichsur l'cran.L'option-fabesoincommeparamtred'unnomdefichier. Silefichiern'existepas,ilseracr,s'ilexistedj,son anciencontenuseraperdu.  Siledisque,setrouveplein,lorsd'undsassemblage,DESA demandera,sic'estpossible,deplacerunnouveaudisquepour continuerlasauvegarde.Celle-cisecontinuerasurledeuxime disqueenutilisantlemmenomquesurlepremier.Cecin'est possiblequesilefichierdsassembleretlefichierdesortie nesetrouventpassurlemmedisque. Voirlechapitre5. 9.3.3-OptionN Cetteoptionsertnumroterleslignes,encommenant1, etde1en1.Pardfautiln'yapasdenumroration.  9.3.4-OptionP Cetteoptionsertenvoyerlasortiedudsassemblagevers l'imprimante.L'imprimanteestsupposecompatibleEPSONetest supposepossderdupapierde11poucesdelong(66lignespar page). L'impressionseferaraisonde58lignesparpage.Avecun sautautomatiqueentrechaquepagepourviterlapliuredu papier. DESA,pourcela,envoiel'imprimantelescodes d'initialisationsuivants: Escape"@"Pourinitialiserl'imprimante,  Escape"C"$66Pourdfinirlalongueur d'impression66lignesparpage.  Escape"N"$8Poursauter8lignesentrechaque page. Sivotreimprimantenecomprendpascescodes,vouspouvez utiliserl'option-qquisupprimeleurenvoi. Voirlechapitre6. Pourlibrerl'ordinateurtrsrapidement,vouspouvez utiliserlespoolerXSPOOLdcritauchapitre10.5. 9.3.5-OptionQ Cetteoption,quis'utiliseavecl'option-p,permetdene pasinitialiserl'imprimante,danslecasparexempleovotre imprimanten'estpascompatibleEPSON,ousivousn'utilisezpas dupapier11pouces(taillestandard),maisdu12pouces,par exemple. 9.3.6-OptionR Cetteoptionsertnepasafficherlesremarquesincluses danslasortiedeDESA.  9.3.7-OptionT Cetteoptionpermetderemplacertoutesuited'espacespar unetabulation(codeASCII9).Ellepermetdoncd'obtenirun fichierbeaucouppluscourtsurdisque. Ellen'estactivequelorsd'unesauvegardesurdisque, autrementdit,ellenemarchepas(heureusement)avecl'option-p, ousansl'option-f. Unfichierquiatcraveccetteoptionnepeutpastre imprimparleGEM,c'est--direendouble-cliquantl'icnedu fichier,puisencliquantl'option"imprimer",carlescodesde tabulationspassentmall'impression. Pourimprimeraprscoupuntelfichier,vouspouvezutiliser leprogrammePRINT,dcritauchapitre10.2. 9.3.8-OptionW Cetteoptionsertchangerlenomgnriquedeslabelscrs parDESA.Ils'agitdetroislettresalphabtiquespouvant comporterlecaractresoulign.Pardfautcenomest'lbl'. Cetteoptionabesoincommeparamtredunomgnriquedetrois lettres,commeparexemple: "-wadr"  9.4Optionsd'adaptation Lesoptionsd'adaptationpermettentdefournirunesortiela plusidoinepossiblel'assembleurquevousutilisez.Cesoptions sont-b-e-d-g-h-i-j-m-s-u-vet-z. 9.4.1-OptionB Cetteoptionindiquequel'ondsiredesbranchementslongs sansextension.C'estdirequesiDESAtrouveuneinstructiondu type"bra.l",illaremplaceraparun"bra"simple.Parcontreles "bra.s"resterontinchangs. 9.4.2-OptionE CetteoptionindiqueDESAdeprvenir,paruncommentaire, tousles"jsr"ou"jmp"faisantrfrenceuneadressevers l'arrire. CetteoptionestfaitepourlemacroassembleurdeMetacomco quioptimisecetypedebranchement. 9.4.3-OptionD CetteoptionindiqueDESAdeplacerdes":"aprschaque labelsurdisque. 9.4.4-OptionG CetteoptionindiqueDESAdemettreenmajusculetousles nomsderegistre.Ilconvertiradonc"a4"en"A4",et"sr"en "SR". 9.4.5-OptionH CetteoptionindiqueDESAd'crirelesnombreshexadcimaux auformatC.C'estdirequ'ilremplacera"$1c"par"0x1c". CetteoptionestfaitepourlecompilateurMEGAMAXC.  9.4.6-OptionI CetteoptionindiqueDESAdeconvertirtoutesles instructions"dbra"en"dbf". 9.4.7-OptionJ CetteoptionindiqueDESAdeconvertirtoutleprogrammeen majuscule,commentairesetlabelscompris. Ilfautfaireattentionaufaitquesileslabelsviennentdu disque,ilpeutexisterdeslabelsenmajusculeetenminuscule, etquecertainsdeceslabelspeuventtregaux.Danscecas,il faut,soitutiliserl'option-a,soitnepasutilisercetteoption -j. 9.4.8-OptionM CetteoptionindiqueDESAd'utiliserlespseudo- instructionsauformatMotorolasanspointdevantchacuned'elles. AveccetteoptionDESAcrira"data"etnonplus".data". 9.4.9-OptionS Cetteoptionsertautoriserlemoded'adressageabsolu court.Pardfaut,cemodeestinterdit. Eneffetlesprogrammesdel'ATARISTutilisenttrsrarement cemoded'adressage.Etl'apparitiond'untelmodedansun programmeindique,engnral,quelecodedsassemblest bizarre,etdoncqu'ilestpossiblequel'onsoitentrainde dsassemblerunezonededonnes. LemacroassembleurdeMetacomcooptimiselesadressages absoluslongsenabsoluscourts.Unprogrammecritaveccelui-ci doitdonctredsassemblavecl'option-s. 9.4.10-OptionU CetteoptionindiqueDESAd'utiliserdesguillemetspour encadrerleschanesdecaractres,etnonpasdesapostrophes.  Ainsil'instruction:dc.b'Message',0 seraremplacpar:dc.b"Message",0  9.4.11-OptionV CetteoptionindiqueDESAdenepasmettrelescaractres apostropheetguillemetdansunechane.Pardfaut,ces caractressontpermis. Ainsi:.dc.b'aujourd''hui',0 deviendra:.dc.b'aujourd' .dc.b$27 .dc.b'hui',0 9.4.11-OptionZ CetteoptionindiqueDESAdenepastraduirelesbcc.s*+4. Elleestfaitepourl'assembleurdeDRI. Ainsidansl'exemplesuivant: bra.s lbl23 nop lbl23rts l'instruction"bra.s"seraremplacepar"dc.w$6002"pour quelespremiresversionsdel'assembleur"as68"nefassentpas d'erreur.  9.5-Options_groupes Pourfaciliterl'utilisationdesoptionsdutype'-', certainesd'entreellesonttregroupessousunnomgnrique commenantpar'+'. Cesoptionssont+std+meta+driet+mega. Lesoptions'-'peuventtremlangesauxoptions'+'. 9.5.1-OptionSTD L'option"+std"estsynonymedesoptions"-cmtxf".Ellea besoin,commepour-f,dunomd'unfichierdesortie.Cetteoption sertobtenirunsourcestandard.Voirlechapitre7.2. 9.5.2-OptionMETA L'option"+meta"estsynonymedesoptions"-cemtvxf".Ellea besoin,commepour-f,dunomd'unfichierdesortie.Cetteoption sertobtenirunsourcecompatibleaveclemacroassembleurde Metacomco.Voirlechapitre7.3. 9.5.3-OptionDRI L'option"+dri"estsynonymedesoptions"-bcdtvxzf".Ellea doncbesoin,commepour-f,dunomd'unfichierdesortie.Cette optionestfaitepourobtenirunsourcecompatibleavec l'assembleurdeDRI.Voirlechapitre7.4. 9.5.4-OptionMEGA L'option"+mega"estsynonymedesoptions"-bcdghitxf".Elle abesoin,commepour-f,dunomd'unfichierdesortie.Cette optionestfaitepourobtenirunsourcecompatibleavecle compilateurMEGAMAXC.Voirlechapitre7.5.  9.6-Listedesoptionsdisponibles VoicilalistedetouteslesoptionsreconnuesparDESA.Pour plusdedtails,voirleschapitresci-dessus. -a:nepasutiliserleslabelssurdisque -b:branchementslongssansextension'.l' -c:non-affichageducodeobjet -d:mettre':'aprschaquelabel -e:prvenirsil'onadesjmpoujsrenarrire -fnom:nomdufichierdesortie=nom(dfaut=aucun) -g:mettrelenomdesregistresenmajuscule -h:nombrehexadcimalauformatC -i:conversiondedbraendbf -j:conversionenmajusculedeTOUTleprogramme -k:fichierdutypecore-image -lnnn:nombremaximumdelabelsendcimal(dfaut=5000) -m:formatMotoroladesinstructions(dfautDRI) -n:numrotationdeslignes -onnn:adressed'origineenhexadcimal(dfaut=0) -p:impressiondesrsultats -q:nepasinitialiserl'imprimanteavecl'option-p -r:non-affichagedesremarques -s:adressageabsolucourtautoris(dfaut=interdit) -t:remplacerlesespacespardestabulations -u:chanesencadresparguillemets(dfaut=apostrophes) -v:pasd'apostrophesoudeguillemetsdansleschanes -wccc:dbutdunomdeslabels(dfaut='lbl') -x:non-affichagedesrfrences -y:uniquementaffichagedesrfrences -z:nepastraduirelesbcc.s*+4 +drinom:runiondesoptions-b-c-d-t-v-x-z-fnom +stdnom:runiondesoptions-c-m-t-x-fnom +metanom:runiondesoptions-c-e-m-t-v-x-fnom +meganom:runiondesoptions-b-c-d-g-h-i-t-x-fnom  10-Utilitaires ~ DESAestlivravecles7utilitaires:DUMP,PRINT,TRANS, XDISK,XSPOOL,XFREEetXDATE.Cesutilitairespeuventtre utilissindpendammentdeDESA. 10.1-dump L'utilitaireDUMPpermetd'enregistrersurdisqueunepartie delammoire,gnralementlaROM.Lalignedecommande permettantd'enregistrerlaROMde192Koctetscommenant l'adressehexadcimale$fc0000danslefichierrom.imgest: "dump.ttpfc0000192rom.img" LepremierparamtredeDUMPestl'adressehexadcimalede dpart.Lesecondestlalongueurdelazoneendcimaletenkilo octets.Letroisimeestlenomdufichier.  10.2-print L'utilitairePRINTpermetl'impressiondetoutfichierASCII pouvantcomporterdestabulations(tousles4ou8caractres).De plus,PRINTnumroteleslignesensortie.Ceprogrammeinitialise l'imprimantecommel'option-pdeDESA,ilnemarchedoncqu'avec uneimprimantecompatibleEPSON. PRINTestparticulirementfaitpourimprimerlesfichiers crsparDESAaveclesoptions-ct. L'appeldePRINTsefaitparunelignedecommandedela forme: "print.ttp[-]noms". Leparamtreoptionel"-"indiquequel'ondsiredes tabulationsde4,sinon,pardfaut,lestabulationssontde8. "noms"estunelistedenomsdefichierimprimer. Parexemplepourimprimerlefichier"toto.asm",ilfaut utiliserlalignedecommandesuivante: "print.ttptoto.asm" Etpourimprimertroisfichiersenuneseulecommande: "print.ttpprog1.sprog2.asmprog3.s" PRINTpermetdedfinirlesfichiersimprimerparunnom gnrique,comportantlessymboles"*"et"?". Parexemple: "print.ttpb:\*.asm" imprimeratouslesfichierscomportantl'extension"asm"du driveB,et "print.ttpc:\sources\*.*-b:\lisez.moi" imprimera,avecunetabulationde4,touslesfichiersdu dossier"sources"dudriveC,ainsiquelefichier"lisez.moi"du driveB. Sivousutilisezunespcificationdutype"*.*",ilfaut faireattentionnepasmettredesprogrammesexcutablesdansle directorycourant,sinonl'imprimanterisquedes'affoler! Aucasol'imprimantenerpondraitpaspendant30secondes, PRINTdemandel'utilisateurs'ilveutpoursuivrel'impression (aprscorrectiondel'incident).  10.3-trans TRANSestunprogrammequilitunfichieretleconvertiten fichiersourceCouassembleur.Cetteconversionesttrssimple carelleconsisteenunesuitedecaractreshexadcimaux. ParexempleuneconversionenCd'unprogrammedonneraun fichierdetextequisera,parexemple: "0x60,0x1a,0x0,..." UntelfichierpeuttreexploitdansunprogrammeCparun appeldutype: staticcharprog[]={ #include"fichier.h" }; Uneconversionenassembleurdonnerait,parexemple: " dc.b $60,$1a,$0,..." Etseraitutiliseparunappeldutype: prog: data include "fichier.h" UnappelTRANSsefaitparunelignedecommandedutype: "trans.ttpsourcedest[-m|-p]" o"source"estlefichiersourceet"dest"estlefichierde destination. Leparamtreoptionnel"-m"indiquequel'ondsireun fichiersourceassembleurdutype"dc.b". Leparamtre"-p"indiquequel'ondsireunsource assembleurdutype".dc.b". Etenl'absenced'undecesdeuxparamtres,lefichiercr seraunfichiersourceC.  10.4-xdisk XDISKestunRAMdisk.Ilestcretconfigurparle programmeINSTDISK. PourinstallerXDISKilfautdfinirdeuxchoses:lataille utileduRAMdisk,etlenomdudriveoilserainstall. Sivousnedisposezquede512Kdemmoire,leRAMdiskne pourragureutiliserplusde100K;maissivousdisposezde1M octet,ilpourratresuprieur720K. Ilfautbienchoisircettetaille,carsielleesttrop petite,leRAMdiskserainutilisable.Maissielleesttrop grande,ilneresteraplusdeplacepouraucuneapplication;etde plus,certainesapplicationsquisemblenttourner,risquentde "dborder"parunbesoinurgentdeplacemmoire! Ilfautensuitechoisirlenomdulecteuroseplacera XDISK.Sivousnedisposezpasd'undisquedur,cenomseraC, sinonilseraD,ouE. Unefoisceschoixdfinis,lacrationduprogramme "xdisk.prg"(dansledirectorycourant)sefaitavecleprogramme INSTDISKparunelignedutype: "instdisk.ttpTailleLecteur". Parexemple,pourconfigurerunRamdiskde400KendriveC, lalignedecommandesera: "instdisk.ttp400C". Acestadedel'installation,leprogramme"xdisk.prg"vient d'trecr,maispaslanc. PourlancerXDISKaveclesparamtresprdfinis,ilsuffit alorsd'utiliserlacommande: "xdisk.prg" IlfautmaintenantprvenirleGEMdel'arrived'unnouveau lecteur.Celasefaitencliquantl'icne"DISQUEA",puisen choisissantl'option"Installeruneunitdedisque..."dumenu "Options".Ilfautalorsentrerlenomdel'unit("C"par exemple),etl'tiquetted'icne,("RAMDISK"parexemple).Voir le"Manueld'utilistion"del'ATARISTdanslechapitre5,section "options". VouspouvezalorsutiliserleRAMdiskcommen'importequel lecteurdedisquettes.Maisn'oubliezpasdesauvegarderson contenuavantd'teindrel'ordinateur!  PourqueXDISKs'installeautomatiquementchaquemisesous tension,ilsuffitdesauvegarderlebureauetdecopierle fichier"xdisk.prg"dansledossier"auto"dudisquedeboot.Si cedossiern'existepas,ilfaudralecrer. Eneffet,toutprogrammesetrouvantdansledossier "\auto"seraautomatiquementlancchaquebootdusystme.Il fautnoterquecesprogrammesserontlancsdansl'ordreoils onttenregistrs. INSTDISKpermetdecrerleprogramme"xdisk.prg"etdele configurer.MaisXDISK,unefoiscr,peuttreutilis sparment.PourcelaXDISKpermetdechangerlatailleduRAM diskaulancement. Celasefaitparunelignedecommandedutype: "xdisk.prgtaille" Ainsi,sil'onutiliseleprogramme"xdisk.prg"telqu'ila tcrparINSTDISKci-dessus(100KendriveC),laligne suivantepermetdelancerleRAMdiskavecunetaillede300K: "xdisk.prg300". PourchangerledriveduRAMdisk,ilfautreconfigurerXDISK parINSTDISK.  10.5-xspool XSPOOLestunspoolerpourl'imprimante.ToutcommeXDISKil fautd'abordleconfigurer,etdoncchoisirlatailleutiledece spooler. Sivousnedisposezquede512Kdemmoire,unetaillede20K estacceptable.Sivousdisposezdeplusdemmoire,unetaillede 100Kesttrsconfortable. LacrationetlaconfigurationdeXSPOOLsefaitpar INSTSPOOgrceunelignedecommandedutype: "instspoo.ttptaille" Parexemplepourconfigurerunspoolerde100K,ilfaut utiliserlalignedecommandesuivante: "instspoo.ttp100". INSTSPOOcrealorsleprogramme"xspool.prg"dansle directorycourant,maisilnelelancepas. Pourcela,ilfaututiliserunelignedecommandedutype: "xspool.prg" Pourquelespoolerselanceautomatiquementchaqueboot, ilsuffitdelemettredansledossier"auto".Voirl'installation deXDISKauchapitre10.4. XSPOOLpeutaussitreutilisindpendammentdeINSTSPOOpar unelignedecommandedelaforme: "xspool.prgtaille" Parexemple,enutilisantleprogramme"xspool.prg"crpar INSTSPOOci-dessus,onpeutlancerlespooleravecunetaillede 30K(etnonplusde100K)parlacommande: "xspool.prg30". XSPOOLpermetdelibrertrsrapidementl'imprimantelors d'uneimpression.XSPOOLpeuttreutilisavecn'importequel programme,etenparticulieravecPRINTetDESA.  10.6-xfree XFREEpermetdeconnatrelataillelibredel'ordinateur,il selanceparunecommandedutype: "xfree.prg" XFREEn'attendpaslafrapped'unetouchecarilest normalementplacdansledossier"auto"endernireposition (derniercharg).Ilindiquealorslaplacelibreaprsleboot. 10.7-xdate XDATEestunprogrammequidemandeladateetl'heurepour mettrejourl'horlogedusystme.Iln'effectueaucune vrificationquantlavaliditdeladate. XDATEestgnralementplacenpremirepositiondansle dossier"auto"(premiercharg). Sivousdisposezd'unmatrielfaisantcettemisel'heure (cartouche),XDATEestbiensrsuperflu.  11-Structured'unprogramme ~ Touslesprogrammesmarchantsurlesordinateursdelagamme ATARISTontlammestructure.Cettestructureestdcritedans cechapitre. 11.1-En-tteduprogramme Toutprogrammecomporteunen-ttedelaformesuivante: type 2octets:Motmagiquevalant$601a l_text4octets:LongueurdelasectionTEXT l_data4octets:LongueurdelasectionDATA l_bss4octets:LongueurdelasectionBSS l_lbl4octets:LongueurdelasectionLBL filler10octets:Rserv Aprsceten-tte,ontrouvelessectionsTEXT,DATA,LBLet REL.Cessections,ainsiquelasectionBSS,sontdcritesdans leschapitresquisuivent.Ellessontfacultativesetpeuventne pasapparatre. 11.2-SectionTEXT C'estdanscettesectionquesetrouventlesinstructions 68000quicomposentleprogramme.Cettesectionatassemble pourmarcherl'adresse0. 11.3-SectionDATA C'estdanscettesectionquesetrouventlesdonnes initialisesainsiquelesmessages.Sicettesectionestbien prsente,DESAladsassemblerasansproblme.Parcontresielle estabsente,c'estsrementqu'ellesetrouvenoyedansla sectionTEXT,DESAnepourralatrouver.  11.4-SectionBSS Cettesectionnesetrouvepasdanslefichierduprogramme carils'agitdelasectiondesdonnesnon-initialises,comme parexemplelesbuffers.Seulesalongueurestfourniedansl'en- tte. MaisDESAarrivelareconstituerenanalysanttoutesles rfrencesfaitesdanscettezone. 11.5-SectionLBL Cettesectionestfacultative,etnesertpasdirectementau programme.Ils'agituniquementd'unezonededonnesrserve desprogrammesdutypedebuggersymbolique. Eneffetcettezonecontienttouteslesrfrencesdu programme,c'est--direunetablecomportantlesnomsetles valeursdeslabelsdonnsdansleprogrammesource. Cettesectionestassezraretrouverdansdesprogrammes carelleprendinutilementdelaplace.Eneffet,unefoisle programmeaupoint,elledevientinutileetrallongelatailledu programmesurdisque. Sicettezoneexiste,elleseraanalyseavecprofitpar DESA.Parcontresiellen'existepas,DESAs'enpasseraet donneratoutseulunnomauxlabels.Voirl'utilisationde l'option-wdanslechapitre9.3.8pourchangerlenomdeslabels gnrsparDESA. IlfautremarquerqueDESAnefabriquedeslabelsquequand celaestncessaire.ParcontresilasectionLBLexiste,DESA utiliseratousleslabelsqu'ilytrouvera,mmeceuxquine serventjamais.Doncpourvoirsiunsous-programmeestutilis, c'est--dires'ilest"labelis",ilfaudrautiliserl'option-a quiindiqueDESAdenepasutiliserlasectionLBLsielle existe. IlsepeutquecettesectionLBLnecomportepasdelabels maisdesdonnespourd'autresprogrammes.Cen'estabsolumentpas gravepourleprogrammelui-mme,maiscepeuttrebloquantpour DESA.Danscecasilfaudradoncutiliserl'option-apour interdirel'utilisationdecettesection.  11.6-SectionREL Cettesectioncomportetouteslesadresses,sousformede dplacement,desinstructionsreloger. Eneffet,commenousavonsvu,lasectionTEXTestfaitepour marcherl'adresse0,etellenemarchejamaisl! LasectionRELpermetdoncauchargeurduprogrammede modifiertouteslesinstructionsabsoluesduprogramme(adressage absolulong)enajoutantcesinstructionsl'adressede chargementduprogramme. LalongueurdelasectionRELn'estpasenregistredansle programme,elleestcalculeenenlevantlatailleduprogramme lasommedetouteslesautressections. C'estgrcecettesectionquelesprogrammespeuvent tournern'importequelendroitdelammoire.Etcecisans fo rcmentutiliserlesmodesd'adressagerelatifdu68000. C'estaussigrcecettesectionqueDESApeutreprerles constantesdeslabels. Parexemplel'instruction move.l$4ba,d0 est-soitunerfrence"_hz_200",compteur200Hzdu systme,situen$0004ba,  -soitunerfrenceuneadressesituedansle programmeen$0004ba+offset,offsettant l'adressedechargementduprogramme. DESAfaitladistinctionentrecesdeuxchoixenremarquant queseuleladeuximesolutionestuneinstructionrelogeable,et estdoncindiquedanslasectionREL.  11.7-Programmecore-image Lesprogrammesdutypecore-imagesontdesprogrammesqui sontenfaitdesdumpsdelammoire.C'estlecasduprogramme tos.img. Detelsprogrammessontenregistrssurdisqueenunseul bloc,etnepeuventmarcherqu'uneadresseprcise.Lesoptions -ket-opermettentdedsassemblercetypedeprogramme. Maisdufaitquelesdiffrentessectionssontabsentes,DESA nepourrareconnatrelesinstructionsdesdonnes. --ooOOOoo-- 06801030302800 1DESA V1.022/09/86 2- # - F0110030 9[....................................................]001  DESA ~~~ Dsassembleur68000 pourlagammeSTd'ATARI Version1.0 ~~~ Manueld'utilisation ~~~ CopyrightLORICIELSOctobre1986 Auteur:EricLEVENEZ  Reproductioninterdite,loidu11Mars1957 Tousdroitsrservs.  -LORICIELSestunemarquedpose. -ATARIST,STBASICetTOSsontdesmarquesdposesparATARI Corp. -GEMestunemarquedposeparDigitalResearchInc. -EPSONestunemarquedposeparEpsonCorp. -AS68,LINK68etRELMODsontcopyrightparDigitalResearch Inc. -ASSEM,CONVERTdeMETACOMCOsontcopyrightTenchstarLtd. -GST-LINKestunemarquedposeparGSTHoldingsLtd. -MEGAMAXCestunemarquedposeparMegamaxInc.  TABLEDESMATIERES = 1-Introduction.)5 2-Miseenroute.(6 2.1-Configurationdefonctionnement.6 2.2-Conventionsutilisesdanscemanuel. 7 3-Limitesd'undsassembleur.7 4-Dsassemblagesurcran.9 5-Dsassemblagesurdisque.10 6-Dsassemblagesurimprimante.11 7-Dsassemblageenvued'unrassemblage.12 7.1-Limites.'12 7.2-Dsassemblagestandard.13 7.3-DsassemblagepourMETACOMCO.14 7.4-DsassemblagepourDRI.15 7.5-DsassemblagepourMEGAMAX.16 8-DsassemblagedelaROM.17 8.1-DumpdelaROM. 17 8.2-DsassemblagedelaROM.18 9-Optionsdedsassemblage.19 9.1-Utilisationdesoptions.19 9.2-Optionsdeconfiguration.20 9.2.1-OptionA.20 9.2.2-OptionK.20 9.2.3-OptionL.20 9.2.4-OptionO.20 9.2.5-OptionX.21 9.2.6-OptionY.21  9.3-Optionsdesortie.22 9.3.1-OptionC.22 9.3.2-OptionF.22 9.3.3-OptionN.22 9.3.4-OptionP.23 9.3.5-OptionQ.23 9.3.6-OptionR.23 9.3.7-OptionT.24 9.3.8-OptionW.24 9.4-Optionsd'adaptation.25 9.4.1-OptionB.25 9.4.2-OptionE.25 9.4.3-OptionD.25 9.4.4-OptionG.25 9.4.5-OptionH.25 9.4.6-OptionI.26 9.4.7-OptionJ.26 9.4.8-OptionM.26 9.4.9-OptionS.26 9.4.10-OptionU.26 9.4.11-OptionV.27 9.4.12-OptionZ.27 9.5-Optionsgroupes.28 9.5.1-OptionSTD.28 9.5.2-OptionMETA.28 9.5.3-OptionDRI.28 9.5.4-OptionMEGA.28 9.6-Listedesoptions.29 10-Utilitaires.)30 10.1-dump.)30 10.2-print.(31 10.3-trans.(32 10.4-xdisk.(33 10.5-xspool.'35 10.6-xfree.(36 10.7-xdate.(36 11-Structured'unprogramme.37 11.1-En-tted'unprogramme.37 11.2-SectionTEXT.!37 11.2-SectionDATA.!37 11.4-SectionBSS."38 11.5-SectionLBL."38 11.6-SectionREL."39 11.7-Programmecore-image.40     1-Introduction ~ DESAestundsassembleur68000adaptlagammeSTd'ATARI. Ilpermetdeconvertirenlangaged'assemblage68000tout programmefonctionnantsurcesordinateurs.   DESAestfourniavec7utilitaires:unspooler,XSPOOL,un Ramdisk,XDISK,unprogrammed'impression,PRINT,unprogrammede dumpmmoire,DUMP,unprogrammedeconversion,TRANS,un programmedonnantlatailledelammoirelibre,XFREEetun programmedemandantl'heureauboot,XDATE.  PourpouvoirutiliserpleinementDESA,laconnaissancedu 68000estncessaire. Commetoutdsassembleur,DESAadeslimites,ellesse trouventdtaillesdanslechapitre3.Ellessontinhrentes toutdsassembleuretviennentdufaitqu'undsassembleurne connatquelersultatetnonlacause. Etpouraiderl'utilisateur,seuljuge,DESAfournit,dans touslescasqu'ilpensedouteux,descommentairesindiquantce quinevapas.L'utilisateurpeutalorsconserverlersultat fourniparDESA,maisilpeutaussilemodifierenutilisant n'importequelditeurdetexte. DESAestundsassembleurdeuxpasses.Danslapremire passe,ilrelvetouteslesrfrencesdeslabels,etdansla seconde,ilafficheleprogrammedsassemblaveclabelset commentaires.LeslabelssontgnrsautomatiquementparDESA partird'unnomgnriquequiest,pardfaut,"lbl".Ilcrera doncdeslabelsdelaforme"lbl23".Depluscertainsprogrammes contiennentlenomdeleurslabels(voirchapitre11),etdansce casDESAutiliseraceslabels. DESArepreaussilestextesASCIIlorsdudsassemblage.Il fournitainsideslignesdutype: dc.b'Entrezunnombre',0 DESAdonneunesortiecompatibleavecunassembleurau standardMotorola.Ilpermetdoncunrassemblagesansaucune modificationdutextefourni! DESAafficheenfinunelistedetouteslesrfrences (labels)contenuesdansleprogramme,ilpermetainsidereprer lespointsd'entreainsiquelespartiesnon-utilisesd'un programme(casdescompilateursutilisantdesbibliothques).  2-Miseenroute ~ 2.1-Configurationdefonctionnement DESAncessite: -unordinateurATARIdelagammeST(520,520+ou1040) -unlecteurdedisquettes -unmoniteurmonochrome,deprfrence,maisDESAmarcheaussi avecunmoniteurcouleurouunetlvision. DESAestplusagrableutilisersil'ondispose: -d'uneimprimante,etdeprfrencecompatibleEPSON -d'undeuximelecteurdedisquettes(720Kparexemple),ou d'undisquedur  2.2Conventionsutilisesdanscemanuel PourlancerunprogrammesousGEM,ilfautdouble-cliquer l'icneportantlenomduprogramme.Sileprogrammencessitedes paramtres,leprogrammedoits'appeler"*.ttp",oubienl'ondoit utiliserl'option"Installeruneapplication"dumenu"Options"du GEM. Ilexistedesinterprteursdecommande,marchantsousTOS, fournisavecdescompilateurs,quipermettentdelancerun programmeentapantsonnomsuividesesparamtres.C'estceque l'onappelledesshells. Danscemanuel,touslesexemplessontdonnssousformede lignesdecommande.Parexemple,pourlancerDESAenvuedu dsassemblagesurl'imprimante,detoto.prg,cemanuelindiquera detaper: "desa.ttptoto.prg-p". SivouslancezDESApartirduGEM,ilvousfaudradonc double-cliquerl'icne"desa.ttp",etentrer"toto.prg-p"dansla zonededialogueduGEM. Sivousdisposezd'unedespremiresversionduTOSenROM, ilvousfaudrarecopierlefichier"desktop.inf"crparunTOS enRAM.Eneffetlesprogrammesdutype"*.ttp"nesontpas reconnusparceTOS. Sivousutilisezunshell,ilvousfaudraentrerlaligne entire. L'appeldeDESAsefaitdelamaniresuivante: "desa.ttpNomProg[-options][+options]" NomProgestlenomduprogrammedsassembler,et"options" sontdesoptionsfacultativesdcritesdanslechapitre9.En l'absencedetoutparamtreetenl'absencedunomduprogramme dsassembler,DESAaffichelalistedetouteslesoptions disponibles.  3-Limitesd'undsassembleur ~ DESAdsassemblecorrectementtoutprogrammebienstructur, c'estdirerespectantlesconventionsdcritesdanslechapitre 11. Mais,hlas,ilexistedesprogrammesquinerespectentpas cettergle.C'estenparticulierlecasquandunprogrammemetun texteenpleindanslasectionTEXT,rserveaucodeexcutable, etnondanslasectionDATA.DanscecasDESAnepeutafficherle textesousformedetexte,ill'afficheradoncsousforme d'instructions68000,siellesexistent.Siellesn'existentpas, ilfournirauneinstructiondutype"dc.w",cequipourra,sans problme,treassemblparuncompilateur.Detelscaspeuvent trereprsgrceauxcommentairesdutype"illegal". Lamodificationd'unprogrammedsassemblparDESA,envue d'unrassemblagedoittreeffectuavecprcaution.Ajouterou supprimerdesinstructionsnepose,engnral,pasdeproblmede partlefaitqueDESA"labellise"entirementlesprogrammes.Mais ilpeutarriverqueleprogrammenefassepasrfrence directementuneadressecommedansl'exemple"move.l#1,12(a5)". Danscecastoutemodificationrisqued'entrainerdesdcalages d'adresse,etl'adresse12(a5)auraitddevenir,parexemple, 14(a5).Dansuntelcas,DESA,commetoutdsassembleuroest impuissant.Eneffetseulleprogrammesourcepeutclairerceque leprogrammeestsensfaire:"move.l#1,valeur-debut(a5)".  4-Dsassemblagesurcran ~ Pardfaut,DESAdsassemblesurl'cran.Ainsipour dsassemblerleprogramme"toto.tos"setrouvantsurledisque "C",ilfaudralancerDESApar: "desa.ttpc:\toto.tos" Pourarrtermomentanmentl'affichage,utilisez"Ctrl-S", pourlerelancer"Ctrl-Q".Unarrtdfinitifs'effectuepar "Ctrl-C".Cescodesnesontactifsquelorsd'unaffichage. DESA,enl'absencedetoutparamtre,affichelersultatdu dsassemblagesurl'cran,puisilaffichelesrfrencesdu programme(labels).Ilattend,enfin,lafrappedelatouche pourretourneraushellouauGEM.  5-Dsassemblagesurdisque ~ Pourenregistrerlersultatd'undsassemblagedansun fichier,surdisque,ilsuffitd'utiliserl'option-f.Parexemple ledsassemblagede"c:\toto.tos"verslefichier"b:\toto.lst"se faitparlacommande: "desa.ttpc:\toto.tos-fb:\toto.lst" Danscecas"toto.lst"contiendratoutledsassemblageainsi quelatabledesrfrences. Lorsquel'ondsasssembleungrosprogramme,lersultatpeut avoirunetaillenorme.Etdanscecas,siaucoursdel'criture surdisque,DESAs'aperoitqueledisqueestplein,ildemandera sonchangement,etcontinueralasauvegardesurlenouveaudisque. Maiscecin'estpossiblequesilasauvegardeetleprogramme sourcenesontpassurlemmedisque.Eneffetleprogramme sourcedoittreaccessibletoutmomentparDESA. Pouracclrerledsassemblaged'ungrosprogramme,vous pouvezutiliserleRAMdiskXDISK.Voirlechapitre10.4. Pourgagnerdelaplacesurdisque,ilpeuttreutile d'utiliserl'option-tquitransformetoutesuited'espacespar unetabulation(codeASCII9).Voirchapitre9.3.7. Parexemple,enutilisantXDISKavec770KendriveC,sur unemachinede1Moctets,ledsassemblageduSTBASICpar: "desa.ttpc:\basic.prg+metac:\basic.asm" met4minutes30pourlarecherchedes4515labels(passe1), puis11minutes40pourlasauvegardedes587Kde"basic.asm"sur leRAMdisk.  6-Dsassemblagesurimprimante ~ Pourenvoyerlersultatdudsassemblagesurvotre imprimante,ilsuffitd'utiliserl'option-p.Cetteoptionsuppose quel'imprimantesoitcompatibleEPSON,etquelepapierutilis soitd'unelongueurde11pouces.L'impressionseferaraisonde 58lignesparpage.Exemple: "desa.ttptoto.prg-p" Sil'imprimantenerpondpascescaractristiques,il faudra,deplus,utiliserl'option-q.Parexemple:  "desa.ttptoto.tos-pq" Siaucoursdel'impression,l'imprimantesetrouvebloque pendantplusde30secondes,DESAprviendral'utilisateurenlui demandants'ilveutarrterledsassemblage,oubiens'ille reprendaprsrparationdel'incident.Cecipeutarriversi l'imprimantemanquedepapier.Eneffetledsassemblaged'un programmepeutdemanderunegrandequantitdepapier,parexemple leSTBASICncessiteplusde600pages... Pouraugmenterlavitessed'impression,etpourlibrer l'ordinateurplusrapidement,vouspouvezutiliserlespooler XSPOOL.Voirlechapitre10.5.  7-Dsassemblageenvued'unrassemblage ~* 7.1-Limites Lerassemblaged'unprogrammepartirdursultatfourni parDESAesttoujourspossible,maisleslimitesviennentsouvent del'assembleurquiservirareconstruireleprogramme.Eneffet touslesassembleursinterprtentunprogrammesourced'unefaon diffrente.Ils'agitdanslaplupartdutempsd'uneoptimisation ducode,commeparexemplelechangementd'un"bra.l"en"bra.s", ouleremplacementd'un"add.la2,a1"parun"adda.la2,a1". Sil'assembleurutilisremplaceuneinstructionparune autrequivalente,maispluscourte,desproblmespeuvent survenirpourdesadressesrelativescalcules.Voirchapitre3. Sil'assembleurpossdeunedirectiveluiinterdisantde tellespratiques,ilfaudral'employer. Cetteoptimisationducoderaliseparlesassembleursn'a pasquedesmauvaiscts,eneffetellepeutservirrassembler unprogrammepourobteniruncodepluscourtetplusperformant. PouradapterlasortiedeDESAl'entred'unassembleur particulier,DESAdisposedenombreusesoptionsdcritesau chapitre9.4.  7.2-Dsassemblagestandard DESApermetd'obteniruncodesourcestandardd'unprogramme enutilisantl'option"+std".Cetteoptionestdcritedansle chapitre9.5.1.Parexemple,pourdsassembler"toto.prg",la commande "desa.ttptoto.prg+stdtoto.s" peuttreutilise.Lefichier"toto.s"estunfichierenlangage d'assemblage68000auformatMotorola.Normalementtoutassembleur devraittrecapabledelerassemblercorrectement,hlastrs peud'assembleurssontcapablesd'assembleruntelfichiersansy mettre"leurgraindesel".  7.3-DsassemblagepourMETACOMCO PouradapterlasortiedeDESAaumacroassembleurde Metacomco,ilfaututiliserl'option"+meta"dcriteauchapitre 9.5.2,commeparexemple:  "desa.ttptoto.prg+metatoto.asm" Lerassemblagesefaisantpar  "assem.prgtoto.asmtototo.o"  "convert.prgtoto.otototo.bin" "link.prgtoto-nolist-nosym". LespremiresversionsdumacroassembleurdeMetacomco remplacentsystmatiquementles"jsradresse"pardes"bsr adresse"si'adresse'estdfiniavantl'instruction.Cecifournit uncodepluscourt.L'option-epermetdeprvenirl'utilisateur d'untelcas.Voirchapitre9.4.2. Cechangementdecode,hormislefaitqu'ilpeutentranerun mauvaisrassemblage(voirchapitre3),interditl'utilisationde jsr(oujmp)d'uneamplitudesuprieure32Koctets!Eneffet l'instruction"bsr.l"utiliseundplacementsur16bits,etnon sur32.Etdonctout"jsr"uneadressetroploigne(vers l'arrire)entranerauneerreurd'assemblage. LemacroassembleurdeMetacomcosedbrouille,enajoutant deszross'illefaut,pourquechaquesectionduprogramme comporteunnombred'octetsmultiplede4.Cecipeut,lencore, entranerdesdcalagesdecode. LelinkerdeGST(link.prg)placelasectionDATAdansla sectionTEXT,cequipeutavoirdefacheusesconsquencessile programmeutiliseledbutdelasectionDATAcommerepre.Si c'estpossible,ilvautmieuxutiliserlelinkerdeDRI(link68).  7.4-DsassemblagepourDRI  PouradapterlasortiedeDESAl'entredel'assembleurde DigitalResearch,ilfaututiliserl'option"+dri"dcritedansle chapitre9.5.3,commeparexemple: "desa.ttptoto.prg+dritoto.s". Puisonrassemblepar: "as68.prg-l-ntoto.s" "link68.prgtoto" "relmod.prgtoto". Lespremiresversionsde"as68"neveulentpascompilerles instructions"bcc.sadresse",o'adresse'estsitueunmotdu branchement,c'est--direlesbcc.s*+4(*estl'adressedudbut del'instruction).L'option-z,contenuedansl'option"+dri", ordonneDESAderemplacertousles"bcc.s*+4"pardes"dc.w" suivisducodehexadel'instructiondebranchement.Voirchapitre 9.4.12.  7.5-DsassemblagepourMEGAMAX LecompilateurCdeMEGAMAXcomporteunassembleurintgrdu type"asm{}".LasortiedeDESApeuttreadaptecet assembleurenutilisantl'option"+mega"dcritedanslechapitre 9.5.4,commeparexemple: "desa.ttptoto.prg+megatoto.h" Maiscommel'assembleurestintgraucompilateurC,le fichier"toto.h"nepeutservirdirectement.Ilfaudradonc, l'aided'unditeurdetexte,supprimertouteslesparties inutilesdufichier"toto.h"pournegarderquedessous- programmesexcutablesdansuncontexteC.Cet"purage"devra srementtrefaitavecunditeurdetextesautreque "editor.prg"limitdestextesde32K.  8-DsassemblagedelaROM ~ 8.1-DumpdelaROM DESAnepeutdsassemblerquedesfichiersprsentssur disque.PourdsassemblerlaROMdel'ATARI,ilfautdonc pralablementlachargerdansunfichier,cetteoprationpeut trefaiteaveclaligneBASICsuivante,tapedanslafentre "Command": bsave"c:\rom.img",&hfc0000,192*1024 Lacommande"bsave"estdcritedans"L'ouvragede prsentationduBASICATARI"enpageC-9.Ellenemarcheavecde laROM,quesilasauvegardesefaitsurXDISKetnonsurune unitnormalededisque! Cetteoprationdecopiagepeuttrefaite,sansproblme, avecleprogrammeDUMPdcritauchapitre10.1. Ainsi,lacommandesuivantepeutservircopierles192Kdu TOSenROM(sivousl'avez,biensr!): "dump.ttpfc0000192rom.img".  8.2DsassemblagedelaROM Ledsassemblagesurcransefaitalorspar: "desa.ttprom.img-dkofc0000-nsl7000" L'option-kindiquequelefichiern'estpasunprogramme, maisestunereprsentationdecelui-cipouruneadressedonne. Cetteadresseestd'ailleursfixeparl'option-o.L'option-l permetderserverassezdeplacepourtousleslabelstrouvs. IlesthorsdequestionderassemblerlaROM,parcequele code68000etlesdonnessonttropmlangs;DESAnepeuten effetreprerlesdonnesdesinstructionsenl'absencede sectionsbienspares,commec'estlecaspourlesfichierscore- image.Cedsassemblagenepeutservirquepourl'tudedecette ROM. QuelqueschiffrespourledsassemblagedelaROMsurleRAM diskXDISK(avec1Mdemmoire):  -larecherchedeslabels(passe1deDESA)prend9minutes, -leurtriprend36secondes(6832labels), -l'affichagedudsassemblage(passe2)prend2heures(62336 lignes), -etl'affichagedesrfrencesprend4minutes.  9-Optionsdedsassemblage ~ 9.1-Utilisationdesoptions UnelignedecommandedeDESAestdutype: "desa.ttpNomProg[-options][+options]" NomProgestlenomduprogrammedsassembler,parexemple "b:\toto.prg"ou"c:\dossier\prog.prg". '-options'sontdesoptionsquipeuventtre,soitspares lesunesdesautres: "-p-x-l7000-i" soitgroupes.Maisdanscecas,siuneoptionutiliseun paramtre,cetteoptiondoittreladerniredelaliste,et s'ilexisteplusieursdecesoptions,ilfaudralessparer.De plusuneoptionncessitantunparamtreattendcelui-cijuste derrireunblanc.Parexemple: "-pxil7000" "-dkofc0000-nsl7000". Lesoptions'+'nesontquedesgroupementsd'options,c'est- -direqu'ellesregroupent,pouruneraisondecommodit d'utilisation,plusieursoptions'-'. Lesoptions'+'peuventtreutilisesaveclesoptions'-', commeparexemple: "desa.ttptoto.prg+metatoto.asm-wadr". L'ordredesoptionsestindiffrent,ainsitoutesleslignes suivantessontidentiques: "desa.ttptoto.prg+metatoto.asm" "desa.ttptoto.prg-cemtvxftoto.asm" "desa.ttp-cemtoto.prg-vxtftoto.asm" "desa.ttp-tec-ftoto.asmtoto.prg-xmv".  9.2Optionsdeconfiguration Lesoptionsdeconfigurationsontlesoptions-a-k-l-o-x et-y.Ellespermettentd'indiquerDESAcequ'ilva dsassembler,etcommentlefaire. 9.2.1-OptionA L'option-apermetdenepasutiliserleslabelssetrouvant surledisquedanslasectionLBL.Voirlechapitre11.5. 9.2.2-OptionK L'option-ksertindiquerqueleprogrammedsassembler n'estpasunprogrammeTOS(voirchapitre11.7),maisqu'ils'agit d'unprogrammedutype"core-image",c'est--direunecopiedela mmoirereprsentantunprogrammeuneadressedonne.C'estle casduTOSenRAMquis'appelle"tos.img". 9.2.3-OptionL Cetteoptionsertrserverdelaplacepourleslabelsdu dsassemblage.PardfautDESArservedelaplacepour5000 labels;sicen'estpasassez,ilfaututiliser-laveccomme paramtrelenombredcimalmaximumdelabels.Parexemple: "-l7000" 9.2.4-OptionO Cetteoptionsertfixerl'originedudsassemblageune adressefixe.Pardfautcetteadresseestzro. Normalementcetteoptionestutiliseavecl'option-kpour ledsassemblagedeprogrammestournantdesemplacementsfixes (parexemplelaROM).Cetteoptionncessitecommeparamtre l'adressehexadcimaledel'origine,commeparexemple: "-ofc0000" Aveccetteoption,touteslesadressesrelogeablesseront ajustesenfonctiondel'adressed'origine.  9.2.5-OptionX Cetteoptionsertindiquerquel'onnedsirepaslaliste desrfrencesdeslabels.Pardfautcettelisteestdonne. 9.2.6-OptionY Cetteoption,inversedel'option-x,sertindiquerque l'onnedsirequelalistedesrfrences.Pardfaut,lelisting dudsassemblageestfourni,bienentendu.  9.3-Optionsdesortie Lesoptionsdesortiepermettentdechoisirleformatde sortiedudsassemblage.Cesoptionssont-c-f-n-p-q-r-tet -w. 9.3.1-OptionC Cetteoptionsertsupprimerl'affichageducodeobjet, ainsiquelesadressesdesinstructions.Cetteoptionsertlorsque l'ondsireobtenirunfichiersourceassembleur. 9.3.2-OptionF Cetteoptionsertenvoyerlersultatdudsassemblagevers unfichiersurdisque.Pardfautcersultatestaffichsur l'cran.L'option-fabesoincommeparamtred'unnomdefichier. Silefichiern'existepas,ilseracr,s'ilexistedj,son anciencontenuseraperdu.  Siledisque,setrouveplein,lorsd'undsassemblage,DESA demandera,sic'estpossible,deplacerunnouveaudisquepour continuerlasauvegarde.Celle-cisecontinuerasurledeuxime disqueenutilisantlemmenomquesurlepremier.Cecin'est possiblequesilefichierdsassembleretlefichierdesortie nesetrouventpassurlemmedisque. Voirlechapitre5. 9.3.3-OptionN Cetteoptionsertnumroterleslignes,encommenant1, etde1en1.Pardfautiln'yapasdenumroration.  9.3.4-OptionP Cetteoptionsertenvoyerlasortiedudsassemblagevers l'imprimante.L'imprimanteestsupposecompatibleEPSONetest supposepossderdupapierde11poucesdelong(66lignespar page). L'impressionseferaraisonde58lignesparpage.Avecun sautautomatiqueentrechaquepagepourviterlapliuredu papier. DESA,pourcela,envoiel'imprimantelescodes d'initialisationsuivants: Escape"@"Pourinitialiserl'imprimante,  Escape"C"$66Pourdfinirlalongueur d'impression66lignesparpage.  Escape"N"$8Poursauter8lignesentrechaque page. Sivotreimprimantenecomprendpascescodes,vouspouvez utiliserl'option-qquisupprimeleurenvoi. Voirlechapitre6. Pourlibrerl'ordinateurtrsrapidement,vouspouvez utiliserlespoolerXSPOOLdcritauchapitre10.5. 9.3.5-OptionQ Cetteoption,quis'utiliseavecl'option-p,permetdene pasinitialiserl'imprimante,danslecasparexempleovotre imprimanten'estpascompatibleEPSON,ousivousn'utilisezpas dupapier11pouces(taillestandard),maisdu12pouces,par exemple. 9.3.6-OptionR Cetteoptionsertnepasafficherlesremarquesincluses danslasortiedeDESA.  9.3.7-OptionT Cetteoptionpermetderemplacertoutesuited'espacespar unetabulation(codeASCII9).Ellepermetdoncd'obtenirun fichierbeaucouppluscourtsurdisque. Ellen'estactivequelorsd'unesauvegardesurdisque, autrementdit,ellenemarchepas(heureusement)avecl'option-p, ousansl'option-f. Unfichierquiatcraveccetteoptionnepeutpastre imprimparleGEM,c'est--direendouble-cliquantl'icnedu fichier,puisencliquantl'option"imprimer",carlescodesde tabulationspassentmall'impression. Pourimprimeraprscoupuntelfichier,vouspouvezutiliser leprogrammePRINT,dcritauchapitre10.2. 9.3.8-OptionW Cetteoptionsertchangerlenomgnriquedeslabelscrs parDESA.Ils'agitdetroislettresalphabtiquespouvant comporterlecaractresoulign.Pardfautcenomest'lbl'. Cetteoptionabesoincommeparamtredunomgnriquedetrois lettres,commeparexemple: "-wadr"  9.4Optionsd'adaptation Lesoptionsd'adaptationpermettentdefournirunesortiela plusidoinepossiblel'assembleurquevousutilisez.Cesoptions sont-b-e-d-g-h-i-j-m-s-u-vet-z. 9.4.1-OptionB Cetteoptionindiquequel'ondsiredesbranchementslongs sansextension.C'estdirequesiDESAtrouveuneinstructiondu type"bra.l",illaremplaceraparun"bra"simple.Parcontreles "bra.s"resterontinchangs. 9.4.2-OptionE CetteoptionindiqueDESAdeprvenir,paruncommentaire, tousles"jsr"ou"jmp"faisantrfrenceuneadressevers l'arrire. CetteoptionestfaitepourlemacroassembleurdeMetacomco quioptimisecetypedebranchement. 9.4.3-OptionD CetteoptionindiqueDESAdeplacerdes":"aprschaque labelsurdisque. 9.4.4-OptionG CetteoptionindiqueDESAdemettreenmajusculetousles nomsderegistre.Ilconvertiradonc"a4"en"A4",et"sr"en "SR". 9.4.5-OptionH CetteoptionindiqueDESAd'crirelesnombreshexadcimaux auformatC.C'estdirequ'ilremplacera"$1c"par"0x1c". CetteoptionestfaitepourlecompilateurMEGAMAXC.  9.4.6-OptionI CetteoptionindiqueDESAdeconvertirtoutesles instructions"dbra"en"dbf". 9.4.7-OptionJ CetteoptionindiqueDESAdeconvertirtoutleprogrammeen majuscule,commentairesetlabelscompris. Ilfautfaireattentionaufaitquesileslabelsviennentdu disque,ilpeutexisterdeslabelsenmajusculeetenminuscule, etquecertainsdeceslabelspeuventtregaux.Danscecas,il faut,soitutiliserl'option-a,soitnepasutilisercetteoption -j. 9.4.8-OptionM CetteoptionindiqueDESAd'utiliserlespseudo- instructionsauformatMotorolasanspointdevantchacuned'elles. AveccetteoptionDESAcrira"data"etnonplus".data". 9.4.9-OptionS Cetteoptionsertautoriserlemoded'adressageabsolu court.Pardfaut,cemodeestinterdit. Eneffetlesprogrammesdel'ATARISTutilisenttrsrarement cemoded'adressage.Etl'apparitiond'untelmodedansun programmeindique,engnral,quelecodedsassemblest bizarre,etdoncqu'ilestpossiblequel'onsoitentrainde dsassemblerunezonededonnes. LemacroassembleurdeMetacomcooptimiselesadressages absoluslongsenabsoluscourts.Unprogrammecritaveccelui-ci doitdonctredsassemblavecl'option-s. 9.4.10-OptionU CetteoptionindiqueDESAd'utiliserdesguillemetspour encadrerleschanesdecaractres,etnonpasdesapostrophes.  Ainsil'instruction:dc.b'Message',0 seraremplacpar:dc.b"Message",0  9.4.11-OptionV CetteoptionindiqueDESAdenepasmettrelescaractres apostropheetguillemetdansunechane.Pardfaut,ces caractressontpermis. Ainsi:.dc.b'aujourd''hui',0 deviendra:.dc.b'aujourd' .dc.b$27 .dc.b'hui',0 9.4.11-OptionZ CetteoptionindiqueDESAdenepastraduirelesbcc.s*+4. Elleestfaitepourl'assembleurdeDRI. Ainsidansl'exemplesuivant: bra.s lbl23 nop lbl23rts l'instruction"bra.s"seraremplacepar"dc.w$6002"pour quelespremiresversionsdel'assembleur"as68"nefassentpas d'erreur.  9.5-Options_groupes Pourfaciliterl'utilisationdesoptionsdutype'-', certainesd'entreellesonttregroupessousunnomgnrique commenantpar'+'. Cesoptionssont+std+meta+driet+mega. Lesoptions'-'peuventtremlangesauxoptions'+'. 9.5.1-OptionSTD L'option"+std"estsynonymedesoptions"-cmtxf".Ellea besoin,commepour-f,dunomd'unfichierdesortie.Cetteoption sertobtenirunsourcestandard.Voirlechapitre7.2. 9.5.2-OptionMETA L'option"+meta"estsynonymedesoptions"-cemtvxf".Ellea besoin,commepour-f,dunomd'unfichierdesortie.Cetteoption sertobtenirunsourcecompatibleaveclemacroassembleurde Metacomco.Voirlechapitre7.3. 9.5.3-OptionDRI L'option"+dri"estsynonymedesoptions"-bcdtvxzf".Ellea doncbesoin,commepour-f,dunomd'unfichierdesortie.Cette optionestfaitepourobtenirunsourcecompatibleavec l'assembleurdeDRI.Voirlechapitre7.4. 9.5.4-OptionMEGA L'option"+mega"estsynonymedesoptions"-bcdghitxf".Elle abesoin,commepour-f,dunomd'unfichierdesortie.Cette optionestfaitepourobtenirunsourcecompatibleavecle compilateurMEGAMAXC.Voirlechapitre7.5.  9.6-Listedesoptionsdisponibles VoicilalistedetouteslesoptionsreconnuesparDESA.Pour plusdedtails,voirleschapitresci-dessus. -a:nepasutiliserleslabelssurdisque -b:branchementslongssansextension'.l' -c:non-affichageducodeobjet -d:mettre':'aprschaquelabel -e:prvenirsil'onadesjmpoujsrenarrire -fnom:nomdufichierdesortie=nom(dfaut=aucun) -g:mettrelenomdesregistresenmajuscule -h:nombrehexadcimalauformatC -i:conversiondedbraendbf -j:conversionenmajusculedeTOUTleprogramme -k:fichierdutypecore-image -lnnn:nombremaximumdelabelsendcimal(dfaut=5000) -m:formatMotoroladesinstructions(dfautDRI) -n:numrotationdeslignes -onnn:adressed'origineenhexadcimal(dfaut=0) -p:impressiondesrsultats -q:nepasinitialiserl'imprimanteavecl'option-p -r:non-affichagedesremarques -s:adressageabsolucourtautoris(dfaut=interdit) -t:remplacerlesespacespardestabulations -u:chanesencadresparguillemets(dfaut=apostrophes) -v:pasd'apostrophesoudeguillemetsdansleschanes -wccc:dbutdunomdeslabels(dfaut='lbl') -x:non-affichagedesrfrences -y:uniquementaffichagedesrfrences -z:nepastraduirelesbcc.s*+4 +drinom:runiondesoptions-b-c-d-t-v-x-z-fnom +stdnom:runiondesoptions-c-m-t-x-fnom +metanom:runiondesoptions-c-e-m-t-v-x-fnom +meganom:runiondesoptions-b-c-d-g-h-i-t-x-fnom  10-Utilitaires ~ DESAestlivravecles7utilitaires:DUMP,PRINT,TRANS, XDISK,XSPOOL,XFREEetXDATE.Cesutilitairespeuventtre utilissindpendammentdeDESA. 10.1-dump L'utilitaireDUMPpermetd'enregistrersurdisqueunepartie delammoire,gnralementlaROM.Lalignedecommande permettantd'enregistrerlaROMde192Koctetscommenant l'adressehexadcimale$fc0000danslefichierrom.imgest: "dump.ttpfc0000192rom.img" LepremierparamtredeDUMPestl'adressehexadcimalede dpart.Lesecondestlalongueurdelazoneendcimaletenkilo octets.Letroisimeestlenomdufichier.  10.2-print L'utilitairePRINTpermetl'impressiondetoutfichierASCII pouvantcomporterdestabulations(tousles4ou8caractres).De plus,PRINTnumroteleslignesensortie.Ceprogrammeinitialise l'imprimantecommel'option-pdeDESA,ilnemarchedoncqu'avec uneimprimantecompatibleEPSON. PRINTestparticulirementfaitpourimprimerlesfichiers crsparDESAaveclesoptions-ct. L'appeldePRINTsefaitparunelignedecommandedela forme: "print.ttp[-]noms". Leparamtreoptionel"-"indiquequel'ondsiredes tabulationsde4,sinon,pardfaut,lestabulationssontde8. "noms"estunelistedenomsdefichierimprimer. Parexemplepourimprimerlefichier"toto.asm",ilfaut utiliserlalignedecommandesuivante: "print.ttptoto.asm" Etpourimprimertroisfichiersenuneseulecommande: "print.ttpprog1.sprog2.asmprog3.s" PRINTpermetdedfinirlesfichiersimprimerparunnom gnrique,comportantlessymboles"*"et"?". Parexemple: "print.ttpb:\*.asm" imprimeratouslesfichierscomportantl'extension"asm"du driveB,et "print.ttpc:\sources\*.*-b:\lisez.moi" imprimera,avecunetabulationde4,touslesfichiersdu dossier"sources"dudriveC,ainsiquelefichier"lisez.moi"du driveB. Sivousutilisezunespcificationdutype"*.*",ilfaut faireattentionnepasmettredesprogrammesexcutablesdansle directorycourant,sinonl'imprimanterisquedes'affoler! Aucasol'imprimantenerpondraitpaspendant30secondes, PRINTdemandel'utilisateurs'ilveutpoursuivrel'impression (aprscorrectiondel'incident).  10.3-trans TRANSestunprogrammequilitunfichieretleconvertiten fichiersourceCouassembleur.Cetteconversionesttrssimple carelleconsisteenunesuitedecaractreshexadcimaux. ParexempleuneconversionenCd'unprogrammedonneraun fichierdetextequisera,parexemple: "0x60,0x1a,0x0,..." UntelfichierpeuttreexploitdansunprogrammeCparun appeldutype: staticcharprog[]={ #include"fichier.h" }; Uneconversionenassembleurdonnerait,parexemple: " dc.b $60,$1a,$0,..." Etseraitutiliseparunappeldutype: prog: data include "fichier.h" UnappelTRANSsefaitparunelignedecommandedutype: "trans.ttpsourcedest[-m|-p]" o"source"estlefichiersourceet"dest"estlefichierde destination. Leparamtreoptionnel"-m"indiquequel'ondsireun fichiersourceassembleurdutype"dc.b". Leparamtre"-p"indiquequel'ondsireunsource assembleurdutype".dc.b". Etenl'absenced'undecesdeuxparamtres,lefichiercr seraunfichiersourceC.  10.4-xdisk XDISKestunRAMdisk.Ilestcretconfigurparle programmeINSTDISK. PourinstallerXDISKilfautdfinirdeuxchoses:lataille utileduRAMdisk,etlenomdudriveoilserainstall. Sivousnedisposezquede512Kdemmoire,leRAMdiskne pourragureutiliserplusde100K;maissivousdisposezde1M octet,ilpourratresuprieur720K. Ilfautbienchoisircettetaille,carsielleesttrop petite,leRAMdiskserainutilisable.Maissielleesttrop grande,ilneresteraplusdeplacepouraucuneapplication;etde plus,certainesapplicationsquisemblenttourner,risquentde "dborder"parunbesoinurgentdeplacemmoire! Ilfautensuitechoisirlenomdulecteuroseplacera XDISK.Sivousnedisposezpasd'undisquedur,cenomseraC, sinonilseraD,ouE. Unefoisceschoixdfinis,lacrationduprogramme "xdisk.prg"(dansledirectorycourant)sefaitavecleprogramme INSTDISKparunelignedutype: "instdisk.ttpTailleLecteur". Parexemple,pourconfigurerunRamdiskde400KendriveC, lalignedecommandesera: "instdisk.ttp400C". Acestadedel'installation,leprogramme"xdisk.prg"vient d'trecr,maispaslanc. PourlancerXDISKaveclesparamtresprdfinis,ilsuffit alorsd'utiliserlacommande: "xdisk.prg" IlfautmaintenantprvenirleGEMdel'arrived'unnouveau lecteur.Celasefaitencliquantl'icne"DISQUEA",puisen choisissantl'option"Installeruneunitdedisque..."dumenu "Options".Ilfautalorsentrerlenomdel'unit("C"par exemple),etl'tiquetted'icne,("RAMDISK"parexemple).Voir le"Manueld'utilistion"del'ATARISTdanslechapitre5,section "options". VouspouvezalorsutiliserleRAMdiskcommen'importequel lecteurdedisquettes.Maisn'oubliezpasdesauvegarderson contenuavantd'teindrel'ordinateur!  PourqueXDISKs'installeautomatiquementchaquemisesous tension,ilsuffitdesauvegarderlebureauetdecopierle fichier"xdisk.prg"dansledossier"auto"dudisquedeboot.Si cedossiern'existepas,ilfaudralecrer. Eneffet,toutprogrammesetrouvantdansledossier "\auto"seraautomatiquementlancchaquebootdusystme.Il fautnoterquecesprogrammesserontlancsdansl'ordreoils onttenregistrs. INSTDISKpermetdecrerleprogramme"xdisk.prg"etdele configurer.MaisXDISK,unefoiscr,peuttreutilis sparment.PourcelaXDISKpermetdechangerlatailleduRAM diskaulancement. Celasefaitparunelignedecommandedutype: "xdisk.prgtaille" Ainsi,sil'onutiliseleprogramme"xdisk.prg"telqu'ila tcrparINSTDISKci-dessus(100KendriveC),laligne suivantepermetdelancerleRAMdiskavecunetaillede300K: "xdisk.prg300". PourchangerledriveduRAMdisk,ilfautreconfigurerXDISK parINSTDISK.  10.5-xspool XSPOOLestunspoolerpourl'imprimante.ToutcommeXDISKil fautd'abordleconfigurer,etdoncchoisirlatailleutiledece spooler. Sivousnedisposezquede512Kdemmoire,unetaillede20K estacceptable.Sivousdisposezdeplusdemmoire,unetaillede 100Kesttrsconfortable. LacrationetlaconfigurationdeXSPOOLsefaitpar INSTSPOOgrceunelignedecommandedutype: "instspoo.ttptaille" Parexemplepourconfigurerunspoolerde100K,ilfaut utiliserlalignedecommandesuivante: "instspoo.ttp100". INSTSPOOcrealorsleprogramme"xspool.prg"dansle directorycourant,maisilnelelancepas. Pourcela,ilfaututiliserunelignedecommandedutype: "xspool.prg" Pourquelespoolerselanceautomatiquementchaqueboot, ilsuffitdelemettredansledossier"auto".Voirl'installation deXDISKauchapitre10.4. XSPOOLpeutaussitreutilisindpendammentdeINSTSPOOpar unelignedecommandedelaforme: "xspool.prgtaille" Parexemple,enutilisantleprogramme"xspool.prg"crpar INSTSPOOci-dessus,onpeutlancerlespooleravecunetaillede 30K(etnonplusde100K)parlacommande: "xspool.prg30". XSPOOLpermetdelibrertrsrapidementl'imprimantelors d'uneimpression.XSPOOLpeuttreutilisavecn'importequel programme,etenparticulieravecPRINTetDESA.  10.6-xfree XFREEpermetdeconnatrelataillelibredel'ordinateur,il selanceparunecommandedutype: "xfree.prg" XFREEn'attendpaslafrapped'unetouchecarilest normalementplacdansledossier"auto"endernireposition (derniercharg).Ilindiquealorslaplacelibreaprsleboot. 10.7-xdate XDATEestunprogrammequidemandeladateetl'heurepour mettrejourl'horlogedusystme.Iln'effectueaucune vrificationquantlavaliditdeladate. XDATEestgnralementplacenpremirepositiondansle dossier"auto"(premiercharg). Sivousdisposezd'unmatrielfaisantcettemisel'heure (cartouche),XDATEestbiensrsuperflu.  11-Structured'unprogramme ~ Touslesprogrammesmarchantsurlesordinateursdelagamme ATARISTontlammestructure.Cettestructureestdcritedans cechapitre. 11.1-En-tteduprogramme Toutprogrammecomporteunen-ttedelaformesuivante: type 2octets:Motmagiquevalant$601a l_text4octets:LongueurdelasectionTEXT l_data4octets:LongueurdelasectionDATA l_bss4octets:LongueurdelasectionBSS l_lbl4octets:LongueurdelasectionLBL filler10octets:Rserv Aprsceten-tte,ontrouvelessectionsTEXT,DATA,LBLet REL.Cessections,ainsiquelasectionBSS,sontdcritesdans leschapitresquisuivent.Ellessontfacultativesetpeuventne pasapparatre. 11.2-SectionTEXT C'estdanscettesectionquesetrouventlesinstructions 68000quicomposentleprogramme.Cettesectionatassemble pourmarcherl'adresse0. 11.3-SectionDATA C'estdanscettesectionquesetrouventlesdonnes initialisesainsiquelesmessages.Sicettesectionestbien prsente,DESAladsassemblerasansproblme.Parcontresielle estabsente,c'estsrementqu'ellesetrouvenoyedansla sectionTEXT,DESAnepourralatrouver.  11.4-SectionBSS Cettesectionnesetrouvepasdanslefichierduprogramme carils'agitdelasectiondesdonnesnon-initialises,comme parexemplelesbuffers.Seulesalongueurestfourniedansl'en- tte. MaisDESAarrivelareconstituerenanalysanttoutesles rfrencesfaitesdanscettezone. 11.5-SectionLBL Cettesectionestfacultative,etnesertpasdirectementau programme.Ils'agituniquementd'unezonededonnesrserve desprogrammesdutypedebuggersymbolique. Eneffetcettezonecontienttouteslesrfrencesdu programme,c'est--direunetablecomportantlesnomsetles valeursdeslabelsdonnsdansleprogrammesource. Cettesectionestassezraretrouverdansdesprogrammes carelleprendinutilementdelaplace.Eneffet,unefoisle programmeaupoint,elledevientinutileetrallongelatailledu programmesurdisque. Sicettezoneexiste,elleseraanalyseavecprofitpar DESA.Parcontresiellen'existepas,DESAs'enpasseraet donneratoutseulunnomauxlabels.Voirl'utilisationde l'option-wdanslechapitre9.3.8pourchangerlenomdeslabels gnrsparDESA. IlfautremarquerqueDESAnefabriquedeslabelsquequand celaestncessaire.ParcontresilasectionLBLexiste,DESA utiliseratousleslabelsqu'ilytrouvera,mmeceuxquine serventjamais.Doncpourvoirsiunsous-programmeestutilis, c'est--dires'ilest"labelis",ilfaudrautiliserl'option-a quiindiqueDESAdenepasutiliserlasectionLBLsielle existe. IlsepeutquecettesectionLBLnecomportepasdelabels maisdesdonnespourd'autresprogrammes.Cen'estabsolumentpas gravepourleprogrammelui-mme,maiscepeuttrebloquantpour DESA.Danscecasilfaudradoncutiliserl'option-apour interdirel'utilisationdecettesection.  11.6-SectionREL Cettesectioncomportetouteslesadresses,sousformede dplacement,desinstructionsreloger. Eneffet,commenousavonsvu,lasectionTEXTestfaitepour marcherl'adresse0,etellenemarchejamaisl! LasectionRELpermetdoncauchargeurduprogrammede modifiertouteslesinstructionsabsoluesduprogramme(adressage absolulong)enajoutantcesinstructionsl'adressede chargementduprogramme. LalongueurdelasectionRELn'estpasenregistredansle programme,elleestcalculeenenlevantlatailleduprogramme lasommedetouteslesautressections. C'estgrcecettesectionquelesprogrammespeuvent tournern'importequelendroitdelammoire.Etcecisans forcmentutiliserlesmodesd'adressagerelatifdu68000. C'estaussigrcecettesectionqueDESApeutreprerles constantesdeslabels. Parexemplel'instruction move.l$4ba,d0 est-soitunerfrence"_hz_200",compteur200Hzdu systme,situen$0004ba,  -soitunerfrenceuneadressesituedansle programmeen$0004ba+offset,offsettant l'adressedechargementduprogramme. DESAfaitladistinctionentrecesdeuxchoixenremarquant queseuleladeuximesolutionestuneinstructionrelogeable,et estdoncindiquedanslasectionREL.  11.7-Programmecore-image Lesprogrammesdutypecore-imagesontdesprogrammesqui sontenfaitdesdumpsdelammoire.C'estlecasduprogramme tos.img. Detelsprogrammessontenregistrssurdisqueenunseul bloc,etnepeuventmarcherqu 'uneadresseprcise.Lesoptions -ket-opermettentdedsassemblercetypedeprogramme. Maisdufaitquelesdiffrentessectionssontabsentes,DESA nepourrareconnatrelesinstructionsdesdonnes. --ooOOOoo--               $D E S A   &~~~   Desassembleur 68000  pour la gamme ST d'ATARI  "Version 1.0    &~~~   Manuel d'utilisation   &~~~    Copyright LORICIELS Octobre 1986 Auteur: Eric LEVENEZ Reproduction interdite, loi du 11 Mars 1957 Tous droits reserves.                                        - LORICIELS est une marque deposee. - ATARI ST, ST BASIC et TOS sont des marques deposees par ATARI Corp. - GEM est une marque deposee par Digital Research Inc. - EPSON est une marque deposee par Epson Corp. - AS68, LINK68 et RELMOD sont copyright par Digital Research Inc. - ASSEM, CONVERT de METACOMCO sont copyright Tenchstar Ltd. - GST-LINK est une marque deposee par GST Holdings Ltd. - MEGAMAX C est une marque deposee par Megamax Inc.      TABLE DES MATIERES =    1 - Introduction .) 5   2 - Mise en route .( 6  2.1 - Configuration de fonctionnement . 6 2.2 - Conventions utilisees dans ce manuel . 7  3 - Limites d'un desassembleur . 7   4 - Desassemblage sur ecran . 9   5 - Desassemblage sur disque . 10   6 - Desassemblage sur imprimante . 11   7 - Desassemblage en vue d'un reassemblage . 12  7.1 - Limites .' 12 7.2 - Desassemblage standard . 13 7.3 - Desassemblage pour METACOMCO . 14 7.4 - Desassemblage pour DRI . 15 7.5 - Desassemblage pour MEGAMAX . 16   8 - Desassemblage de la ROM . 17  8.1 - Dump de la ROM . 17 8.2 - Desassemblage de la ROM . 18  9 - Options de desassemblage . 19  9.1 - Utilisation des options . 19  9.2 - Options de configuration . 20 9.2.1 - Option A . 20 9.2.2 - Option K . 20 9.2.3 - Option L . 20 9.2.4 - Option O . 20 9.2.5 - Option X . 21 9.2.6 - Option Y . 21    9.3 - Options de sortie . 22  9.3.1 - Option C . 22 9.3.2 - Option F . 22 9.3.3 - Option N . 22 9.3.4 - Option P . 23 9.3.5 - Option Q . 23 9.3.6 - Option R . 23 9.3.7 - Option T . 24 9.3.8 - Option W . 24  9.4 - Options d'adaptation . 25 9.4.1 - Option B . 25 9.4.2 - Option E . 25 9.4.3 - Option D . 25 9.4.4 - Option G . 25 9.4.5 - Option H . 25 9.4.6 - Option I . 26 9.4.7 - Option J . 26 9.4.8 - Option M . 26 9.4.9 - Option S . 26 9.4.10- Option U . 26 9.4.11- Option V . 27 9.4.12- Option Z . 27  9.5 - Options groupees . 28 9.5.1 - Option STD . 28 9.5.2 - Option META . 28 9.5.3 - Option DRI . 28 9.5.4 - Option MEGA . 28  9.6 - Liste des options . 29   10 - Utilitaires .) 30  10.1 - dump .) 30 10.2 - print .( 31 10.3 - trans .( 32 10.4 - xdisk .( 33 10.5 - xspool .' 35 10.6 - xfree .( 36 10.7 - xdate .( 36  11 - Structure d'un programme . 37  11.1 - En-tete d'un programme . 37 11.2 - Section TEXT .! 37 11.2 - Section DATA .! 37 11.4 - Section BSS ." 38 11.5 - Section LBL ." 38 11.6 - Section REL ." 39 11.7 - Programme core-image . 40         1 - Introduction ~   DESA est un desassembleur 68000 adapte a la gamme ST d'ATARI. Il permet de convertir en langage d'assemblage 68000 tout programme fonctionnant sur ces ordinateurs.  DESA est fourni avec 7 utilitaires : un spooler, XSPOOL, un Ram disk, XDISK, un programme d'impression, PRINT, un programme de dump memoire, DUMP, un programme de conversion, TRANS, un programme donnant la taille de la memoire libre, XFREE et un programme demandant l'heure au boot, XDATE.  Pour pouvoir utiliser pleinement DESA, la connaissance du 68000 est necessaire.  Comme tout desassembleur, DESA a des limites, elles se trouvent detaillees dans le chapitre 3. Elles sont inherentes a tout desassembleur et viennent du fait qu'un desassembleur ne connait que le resultat et non la cause.  Et pour aider l'utilisateur, seul juge, DESA fournit, dans tous les cas qu'il pense douteux, des commentaires indiquant ce qui ne va pas. L'utilisateur peut alors conserver le resultat fourni par DESA, mais il peut aussi le modifier en utilisant n'importe quel editeur de texte.  DESA est un desassembleur deux passes. Dans la premiere passe, il releve toutes les references a des labels, et dans la seconde, il affiche le programme desassemble avec labels et commentaires. Les labels sont generes automatiquement par DESA a partir d'un nom generique qui est, par defaut, "lbl". Il creera donc des labels de la forme "lbl23". De plus certains programmes contiennent le nom de leurs labels (voir chapitre 11), et dans ce cas DESA utilisera ces labels.  DESA repere aussi les textes ASCII lors du desassemblage. Il fournit ainsi des lignes du type : dc.b 'Entrez un nombre ',0  DESA donne une sortie compatible avec un assembleur au standard Motorola. Il permet donc un reassemblage sans aucune modification du texte fourni!  DESA affiche enfin une liste de toutes les references (labels) contenues dans le programme, il permet ainsi de reperer les points d'entree ainsi que les parties non-utilisees d'un programme (cas des compilateurs utilisant des bibliotheques).         2 - Mise en route ~   2.1 - Configuration de fonctionnement   DESA necessite :  - un ordinateur ATARI de la gamme ST (520, 520+ ou 1040)  - un lecteur de disquettes  - un moniteur monochrome, de preference, mais DESA marche aussi avec un moniteur couleur ou une television.    DESA est plus agreable a utiliser si l'on dispose :  - d'une imprimante, et de preference compatible EPSON  - d'un deuxieme lecteur de disquettes (720K par exemple), ou d'un disque dur    2.2 Conventions utilisees dans ce manuel   Pour lancer un programme sous GEM, il faut double-cliquer l'icone portant le nom du programme. Si le programme necessite des parametres, le programme doit s'appeler "*.ttp", ou bien l'on doit utiliser l'option "Installer une application" du menu "Options" du GEM.  Il existe des interpreteurs de commande, marchant sous TOS, fournis avec des compilateurs, qui permettent de lancer un programme en tapant son nom suivi de ses parametres. C'est ce que l'on appelle des shells.   Dans ce manuel, tous les exemples sont donnes sous forme de lignes de commande. Par exemple, pour lancer DESA en vue du desassemblage sur l'imprimante, de toto.prg, ce manuel indiquera de taper :  "desa.ttp toto.prg -p".  Si vous lancez DESA a partir du GEM, il vous faudra donc double-cliquer l'icone "desa.ttp", et entrer "toto.prg -p" dans la zone de dialogue du GEM.  Si vous disposez d'une des premieres version du TOS en ROM, il vous faudra recopier le fichier "desktop.inf" cree par un TOS en RAM. En effet les programmes du type "*.ttp" ne sont pas reconnus par ce TOS.   Si vous utilisez un shell, il vous faudra entrer la ligne entiere.    L'appel de DESA se fait de la maniere suivante :  "desa.ttp NomProg [-options] [+options]"  NomProg est le nom du programme a desassembler, et "options" sont des options facultatives decrites dans le chapitre 9. En l'absence de tout parametre et en l'absence du nom du programme a desassembler, DESA affiche la liste de toutes les options disponibles.           3 - Limites d'un desassembleur ~   DESA desassemble correctement tout programme bien structure, c'est a dire respectant les conventions decrites dans le chapitre 11.  Mais, helas, il existe des programmes qui ne respectent pas cette regle. C'est en particulier le cas quand un programme met un texte en plein dans la section TEXT, reservee au code executable, et non dans la section DATA. Dans ce cas DESA ne peut afficher le texte sous forme de texte, il l'affichera donc sous forme d'instructions 68000, si elles existent. Si elles n'existent pas, il fournira une instruction du type "dc.w", ce qui pourra, sans probleme, etre assemble par un compilateur. De tels cas peuvent etre reperes grace aux commentaires du type "illegal".  La modification d'un programme desassemble par DESA, en vue d'un reassemblage doit etre effectue avec precaution. Ajouter ou supprimer des instructions ne pose, en general, pas de probleme de part le fait que DESA "labellise" entierement les programmes. Mais il peut arriver que le programme ne fasse pas reference directement a une adresse comme dans l'exemple "move.l #1,12(a5)". Dans ce cas toute modification risque d'entrainer des decalages d'adresse, et l'adresse 12(a5) aurait du devenir, par exemple, 14(a5). Dans un tel cas, DESA, comme tout desassembleur est impuissant. En effet seul le programme source peut eclairer ce que le programme est sense faire : "move.l #1,valeur-debut(a5)".           4 - Desassemblage sur ecran ~   Par defaut, DESA desassemble sur l'ecran. Ainsi pour desassembler le programme "toto.tos" se trouvant sur le disque "C", il faudra lancer DESA par :  "desa.ttp c:\toto.tos"  Pour arreter momentanement l'affichage, utilisez "Ctrl-S", pour le relancer "Ctrl-Q". Un arret definitif s'effectue par "Ctrl-C". Ces codes ne sont actifs que lors d'un affichage.  DESA, en l'absence de tout parametre, affiche le resultat du desassemblage sur l'ecran, puis il affiche les references du programme (labels). Il attend, enfin, la frappe de la touche  pour retourner au shell ou au GEM.          5 - Desassemblage sur disque ~   Pour enregistrer le resultat d'un desassemblage dans un fichier, sur disque, il suffit d'utiliser l'option -f. Par exemple le desassemblage de "c:\toto.tos" vers le fichier "b:\toto.lst" se fait par la commande :  "desa.ttp c:\toto.tos -f b:\toto.lst"  Dans ce cas "toto.lst" contiendra tout le desassemblage ainsi que la table des references.   Lorsque l'on desasssemble un gros programme, le resultat peut avoir une taille enorme. Et dans ce cas, si au cours de l'ecriture sur disque, DESA s'apercoit que le disque est plein, il demandera son changement, et continuera la sauvegarde sur le nouveau disque. Mais ceci n'est possible que si la sauvegarde et le programme source ne sont pas sur le meme disque. En effet le programme source doit etre accessible a tout moment par DESA.  Pour accelerer le desassemblage d'un gros programme, vous pouvez utiliser le RAM disk XDISK. Voir le chapitre 10.4.  Pour gagner de la place sur disque, il peut etre utile d'utiliser l'option -t qui transforme toute suite d'espaces par une tabulation (code ASCII 9). Voir chapitre 9.3.7.  Par exemple, en utilisant XDISK avec 770K en drive C, sur une machine de 1M octets, le desassemblage du ST BASIC par:  "desa.ttp c:\basic.prg +meta c:\basic.asm"  met 4 minutes 30 pour la recherche des 4515 labels (passe 1), puis 11 minutes 40 pour la sauvegarde des 587K de "basic.asm" sur le RAM disk.         6 - Desassemblage sur imprimante ~   Pour envoyer le resultat du desassemblage sur votre imprimante, il suffit d'utiliser l'option -p. Cette option suppose que l'imprimante soit compatible EPSON, et que le papier utilise soit d'une longueur de 11 pouces. L'impression se fera a raison de 58 lignes par page. Exemple :  "desa.ttp toto.prg -p"  Si l'imprimante ne repond pas a ces caracteristiques, il faudra, de plus, utiliser l'option -q. Par exemple :  "desa.ttp toto.tos -pq"   Si au cours de l'impression, l'imprimante se trouve bloquee pendant plus de 30 secondes, DESA previendra l'utilisateur en lui demandant s'il veut arreter le desassemblage, ou bien s'il le reprend apres reparation de l'incident. Ceci peut arriver si l'imprimante manque de papier. En effet le desassemblage d'un programme peut demander une grande quantite de papier, par exemple le ST BASIC necessite plus de 600 pages...  Pour augmenter la vitesse d'impression, et pour liberer l'ordinateur plus rapidement, vous pouvez utiliser le spooler XSPOOL. Voir le chapitre 10.5.         7 - Desassemblage en vue d'un reassemblage ~*  7.1 - Limites  Le reassemblage d'un programme a partir du resultat fourni par DESA est toujours possible, mais les limites viennent souvent de l'assembleur qui servira a reconstruire le programme. En effet tous les assembleurs interpretent un programme source d'une facon differente. Il s'agit dans la plupart du temps d'une optimisation du code, comme par exemple le changement d'un "bra.l" en "bra.s", ou le remplacement d'un "add.l a2,a1" par un "adda.l a2,a1".  Si l'assembleur utilise remplace une instruction par une autre equivalente, mais plus courte, des problemes peuvent survenir pour des adresses relatives calculees. Voir chapitre 3.  Si l'assembleur possede une directive lui interdisant de telles pratiques, il faudra l'employer.  Cette optimisation du code realisee par les assembleurs n'a pas que des mauvais cotes, en effet elle peut servir a reassembler un programme pour obtenir un code plus court et plus performant.  Pour adapter la sortie de DESA a l'entree d'un assembleur particulier, DESA dispose de nombreuses options decrites au chapitre 9.4.        7.2 - Desassemblage standard   DESA permet d'obtenir un code source standard d'un programme en utilisant l'option "+std". Cette option est decrite dans le chapitre 9.5.1. Par exemple, pour desassembler "toto.prg", la commande  "desa.ttp toto.prg +std toto.s"  peut etre utilisee. Le fichier "toto.s" est un fichier en langage d'assemblage 68000 au format Motorola. Normalement tout assembleur devrait etre capable de le reassembler correctement, helas tres peu d'assembleurs sont capables d'assembler un tel fichier sans y mettre "leur grain de sel".        7.3 - Desassemblage pour METACOMCO   Pour adapter la sortie de DESA au macro assembleur de Metacomco, il faut utiliser l'option "+meta" decrite au chapitre 9.5.2, comme par exemple:  "desa.ttp toto.prg +meta toto.asm"  Le reassemblage se faisant par  "assem.prg toto.asm to toto.o" "convert.prg toto.o to toto.bin" "link.prg toto -nolist -nosym".  Les premieres versions du macro assembleur de Metacomco remplacent systematiquement les "jsr adresse" par des "bsr adresse" si 'adresse' est defini avant l'instruction. Ceci fournit un code plus court. L'option -e permet de prevenir l'utilisateur d'un tel cas. Voir chapitre 9.4.2.  Ce changement de code, hormis le fait qu'il peut entrainer un mauvais reassemblage (voir chapitre 3), interdit l'utilisation de jsr (ou jmp) d'une amplitude superieure a 32 K octets! En effet l'instruction "bsr.l" utilise un deplacement sur 16 bits, et non sur 32. Et donc tout "jsr" a une adresse trop eloignee (vers l'arriere) entrainera une erreur d'assemblage.  Le macro assembleur de Metacomco se debrouille, en ajoutant des zeros s'il le faut, pour que chaque section du programme comporte un nombre d'octets multiple de 4. Ceci peut, la encore, entrainer des decalages de code.  Le linker de GST (link.prg) place la section DATA dans la section TEST, ce qui peut avoir de facheuses consequences si le programme utilise le debut de la section DATA comme repere. Si c'est possible, il vaut mieux utiliser le linker de DRI (link68).          7.4 - Desassemblage pour DRI   Pour adapter la sortie de DESA a l'entree de l'assembleur de Digital Research, il faut utiliser l'option "+dri" decrite dans le chapitre 9.5.3, comme par exemple :  "desa.ttp toto.prg +dri toto.s".  Puis on reassemble par :  "as68.prg -l -n toto.s" "link68.prg toto" "relmod.prg toto".   Les premieres versions de "as68" ne veulent pas compiler les instructions "bcc.s adresse", ou 'adresse' est situee a un mot du branchement, c'est-a-dire les bcc.s *+4 (* est l'adresse du debut de l'instruction). L'option -z, contenue dans l'option "+dri", ordonne a DESA de remplacer tous les "bcc.s *+4" par des "dc.w" suivis du code hexa de l'instruction de branchement. Voir chapitre 9.4.12.         7.5 - Desassemblage pour MEGAMAX  Le compilateur C de MEGAMAX comporte un assembleur integre du type "asm { }". La sortie de DESA peut etre adaptee a cet assembleur en utilisant l'option "+mega" decrite dans le chapitre 9.5.4, comme par exemple :  "desa.ttp toto.prg +mega toto.h"  Mais comme l'assembleur est integre au compilateur C, le fichier "toto.h" ne peut servir directement. Il faudra donc, a l'aide d'un editeur de texte, supprimer toutes les parties inutiles du fichier "toto.h" pour ne garder que des sous- programmes executables dans un contexte C. Cet "epurage" devra surement etre fait avec un editeur de textes autre que "editor.prg" limite a des textes de 32K.           8 - Desassemblage de la ROM ~   8.1 - Dump de la ROM   DESA ne peut desassembler que des fichiers presents sur disque. Pour desassembler la ROM de l'ATARI, il faut donc prealablement la charger dans un fichier, cette operation peut etre faite avec la ligne BASIC suivante, tapee dans la fenetre "Command" :  bsave "c:\rom.img",&hfc0000,192*1024  La commande "bsave" est decrite dans "L'ouvrage de presentation du BASIC ATARI" en page C-9. Elle ne marche avec de la ROM, que si la sauvegarde se fait sur XDISK et non sur une unite normale de disque !  Cette operation de copiage peut etre faite,sans probleme, avec le programme DUMP decrit au chapitre 10.1. Ainsi, la commande suivante peut servir a copier les 192K du TOS en ROM (si vous l'avez, bien sur!) :  "dump.ttp fc0000 192 rom.img".       8.2 Desassemblage de la ROM   Le desassemblage sur ecran se fait alors par :  "desa.ttp rom.img -dko fc0000 -nsl 7000"  L'option -k indique que le fichier n'est pas un programme, mais est une representation de celui-ci pour une adresse donnee. Cette adresse est d'ailleurs fixee par l'option -o. L'option -l permet de reserver assez de place pour tous les labels trouves.  Il est hors de question de reassembler la ROM, parce que le code 68000 et les donnees sont trop melanges; DESA ne peut en effet reperer les donnees des instructions en l'absence de sections bien separees, comme c'est le cas pour les fichiers core- image. Ce desassemblage ne peut servir que pour l'etude de cette ROM.  Quelques chiffres pour le desassemblage de la ROM sur le RAM disk XDISK (avec 1M de memoire) :  - la recherche des labels (passe 1 de DESA) prend 9 minutes, - leur tri prend 36 secondes (6832 labels), - l'affichage du desassemblage (passe 2) prend 2 heures (62336 lignes), - et l'affichage des references prend 4 minutes.         9 - Options de desassemblage ~   9.1 - Utilisation des options   Une ligne de commande de DESA est du type :  "desa.ttp NomProg [-options] [+options]"  NomProg est le nom du programme a desassembler, par exemple "b:\toto.prg" ou "c:\dossier\prog.prg".  '-options' sont des options qui peuvent etre, soit separees les unes des autres :  "-p -x -l 7000 -i"  soit groupees. Mais dans ce cas, si une option utilise un parametre, cette option doit etre la derniere de la liste, et s'il existe plusieurs de ces options, il faudra les separer. De plus une option necessitant un parametre attend celui-ci juste derriere un blanc. Par exemple :  "-pxil 7000" "-dko fc0000 -nsl 7000".    Les options '+' ne sont que des groupements d'options, c'est- a-dire qu'elles regroupent, pour une raison de commodite d'utilisation, plusieurs options '-'.  Les options '+' peuvent etre utilisees avec les options '-', comme par exemple :  "desa.ttp toto.prg +meta toto.asm -w adr".  L'ordre des options est indifferent, ainsi toutes les lignes suivantes sont identiques :  "desa.ttp toto.prg +meta toto.asm" "desa.ttp toto.prg -cemtvxf toto.asm" "desa.ttp -cem toto.prg -vxtf toto.asm" "desa.ttp -tec -f toto.asm toto.prg -xmv".        9.2 Options de configuration  Les options de configuration sont les options -a -k -l -o -x et -y. Elles permettent d'indiquer a DESA ce qu'il va desassembler, et comment le faire.    9.2.1 - Option A  L'option -a permet de ne pas utiliser les labels se trouvant sur le disque dans la section LBL. Voir le chapitre 11.5.    9.2.2 - Option K  L'option -k sert a indiquer que le programme a desassembler n'est pas un programme TOS (voir chapitre 11.7), mais qu'il s'agit d'un programme du type "core-image", c'est-a-dire une copie de la memoire representant un programme a une adresse donnee. C'est le cas du TOS en RAM qui s'appelle "tos.img".    9.2.3 - Option L  Cette option sert a reserver de la place pour les labels du desassemblage. Par defaut DESA reserve de la place pour 5000 labels; si ce n'est pas assez, il faut utiliser -l avec comme parametre le nombre decimal maximum de labels. Par exemple : "-l 7000"    9.2.4 - Option O  Cette option sert a fixer l'origine du desassemblage a une adresse fixe. Par defaut cette adresse est zero. Normalement cette option est utilisee avec l'option -k pour le desassemblage de programmes tournant a des emplacements fixes (par exemple la ROM). Cette option necessite comme parametre l'adresse hexadecimale de l'origine, comme par exemple :  "-o fc0000"  Avec cette option, toutes les adresses relogeables seiront ajustees en fonction de l'adresse d'origine.    9.2.5 - Option X  Cette option sert a indiquer que l'on ne desire pas la liste des references des labels. Par defaut cette liste est donnee.   9.2.6 - Option Y  Cette option, inverse de l'option -x, sert a indiquer que l'on ne desire que la liste des references. Par defaut, le listing du desassemblage est fourni, bien entendu.        9.3 - Options de sortie  Les options de sortie permettent de choisir le format de sortie du desassemblage. Ces options sont -c -f -n -p -q -r -t et -w.    9.3.1 - Option C  Cette option sert a supprimer l'affichage du code objet, ainsi que les adresses des instructions. Cette option sert lorsque l'on desire obtenir un fichier source assembleur.    9.3.2 - Option F  Cette option sert a envoyer le resultat du desassemblage vers un fichier sur disque. Par defaut ce resultat est affiche sur l'ecran. L'option -f a besoin comme parametre d'un nom de fichier. Si le fichier n'existe pas, il sera cree, s'il existe deja, son ancien contenu sera perdu.  Si le disque, se trouve plein, lors d'un desassemblage, DESA demandera, si c'est possible, de placer un nouveau disque pour continuer la sauvegarde. Celle-ci se continuera sur le deuxieme disque en utilisant le meme nom que sur le premier. Ceci n'est possible que si le fichier a desassembler et le fichier de sortie ne se trouvent pas sur le meme disque.  Voir le chapitre 5.    9.3.3 - Option N  Cette option sert a numeroter les lignes, en commencant a 1, et de 1 en 1. Par defaut il n'y a pas de numeroration.     9.3.4 - Option P  Cette option sert a envoyer la sortie du desassemblage vers l'imprimante. L'imprimante est supposee compatible EPSON et est supposee posseder du papier de 11 pouces de long (66 lignes par page). L'impression se fera a raison de 58 lignes par page. Avec un saut automatique entre chaque page pour eviter la pliure du papier.  DESA, pour cela, envoie a l'imprimante les codes d'initialisation suivants :  Escape "@" Pour initialiser l'imprimante, Escape "C" $66 Pour definir la longueur %d'impression a 66 lignes par page. Escape "N" $8 Pour sauter 8 lignes entre chaque %page.  Si votre imprimante ne comprend pas ces codes, vous pouvez utiliser l'option -q qui supprime leur envoi. Voir le chapitre 6.  Pour liberer l'ordinateur tres rapidement, vous pouvez utiliser le spooler XSPOOL decrit au chapitre 10.5.    9.3.5 - Option Q  Cette option, qui s'utilise avec l'option -p, permet de ne pas initialiser l'imprimante, dans le cas par exemple ou votre imprimante n'est pas compatible EPSON, ou si vous n'utilisez pas du papier 11 pouces (taille standard), mais du 12 pouces, par exemple.    9.3.6 - Option R  Cette option sert a ne pas afficher les remarques incluses dans la sortie de DESA.     9.3.7 - Option T  Cette option permet de remplacer toute suite d'espaces par une tabulation (code ASCII 9). Elle permet donc d'obtenir un fichier beaucoup plus court sur disque.  Elle n'est active que lors d'une sauvegarde sur disque, autrement dit, elle ne marche pas (heureusement) avec l'option -p, ou sans l'option -f.  Un fichier qui a ete cree avec cette option ne peut pas etre  imprime par le GEM, c'est-a-dire en double-cliquant l'icone du fichier, puis en cliquant l'option "imprimer", car les codes de tabulations passent mal a l'impression.  Pour imprimer apres coup un tel fichier, vous pouvez utiliser le programme PRINT, decrit au chapitre 10.2.    9.3.8 - Option W  Cette option sert a changer le nom generique des labels crees par DESA. Il s'agit de trois lettres alphabetiques pouvant comporter le caractere souligne. Par defaut ce nom est 'lbl'. Cette option a besoin comme parametre du nom generique de trois lettres, comme par exemple :  "-w adr"      9.4 Options d'adaptation   Les options d'adaptation permettent de fournir une sortie la plus idoine possible a l'assembleur que vous utilisez. Ces options sont -b -e -d -g -h -i -j -m -s -u -v et -z.   9.4.1 - Option B  Cette option indique que l'on desire des branchements longs sans extension. C'est a dire que si DESA trouve une instruction du type "bra.l", il la remplacera par un "bra" simple. Par contre les "bra.s" resteront inchanges.    9.4.2 - Option E  Cette option indique a DESA de prevenir, par un commentaire, tous les "jsr" ou "jmp" faisant reference a une adresse vers l'arriere. Cette option est faite pour le macro assembleur de Metacomco qui optimise ce type de branchement.    9.4.3 - Option D  Cette option indique a DESA de placer des ":" apres chaque label sur disque.    9.4.4 - Option G  Cette option indique a DESA de mettre en majuscule tous les noms de registre. Il convertira donc "a4" en "A4", et "sr" en "SR".   9.4.5 - Option H  Cette option indique a DESA d'ecrire les nombres hexadecimaux au format C. C'est a dire qu'il remplacera "$1c" par "0x1c". Cette option est faite pour le compilateur MEGAMAX C.     9.4.6 - Option I  Cette option indique a DESA de convertir toutes les instructions "dbra" en "dbf".    9.4.7 - Option J  Cette option indique a DESA de convertir tout le programme en majuscule, commentaires et labels compris. Il faut faire attention au fait que si les labels viennent du disque, il peut exister des labels en majuscule et en minuscule, et que certains de ces labels peuvent etre egaux. Dans ce cas, il faut, soit utiliser l'option -a, soit ne pas utiliser cette option -j.   9.4.8 - Option M  Cette option indique a DESA d'utiliser les pseudo- instructions au format Motorola sans point devant chacune d'elles. Avec cette option DESA ecrira "data" et non plus ".data".    9.4.9 - Option S  Cette option sert a autoriser le mode d'adressage absolu court. Par defaut, ce mode est interdit. En effet les programmes de l'ATARI ST utilisent tres rarement ce mode d'adressage. Et l'apparition d'un tel mode dans un programme indique, en general, que le code desassemble est bizarre, et donc qu'il est possible que l'on soit en train de desassembler une zone de donnees.  Le macro assembleur de Metacomco optimise les adressages absolus longs en absolus courts. Un programme ecrit avec celui-ci doit donc etre desassemble avec l'option -s.    9.4.10 - Option U  Cette option indique a DESA d'utiliser des guillemets pour encadrer les chaines de caracteres, et non pas des apostrophes.  Ainsi l'instruction : dc.b 'Message',0 sera remplace par : dc.b "Message",0     ( 9.4.10 - Option V  Cette option indique a DESA de ne pas mettre les caracteres apostrophe et guillemet dans une chaine. Par defaut, ces caracteres sont permis.   Ainsi : .dc.b 'aujourd''hui',0 deviendra : .dc.b 'aujourd' *.dc.b $27 *.dc.b 'hui',0    9.4.11 - Option Z  Cette option indique a DESA de ne pas traduire les bcc.s *+4. Elle est faite pour l'assembleur de DRI.  Ainsi dans l'exemple suivant :  bra.s lbl23 nop lbl23 rts  l'instruction "bra.s" sera remplacee par "dc.w $6002" pour que les premieres versions de l'assembleur "as68" ne fassent pas d'erreur.       9.5 - Options groupees  Pour faciliter l'utilisation des options du type '-', certaines d'entre elles ont ete regroupees sous un nom generique commencant par '+'.  Ces options sont +std +meta +dri et +mega.  Les options '-' peuvent etre melangees aux options '+'.   9.5.1 - Option STD  L'option "+std" est synonyme des options "-cmtxf". Elle a besoin, comme pour -f, du nom d'un fichier de sortie. Cette option sert a obtenir un source standard. Voir le chapitre 7.2.    9.5.2 - Option META  L'option "+meta" est synonyme des options "-cemtvxf". Elle a besoin, comme pour -f, du nom d'un fichier de sortie. Cette option sert a obtenir un source compatible avec le macro assembleur de Metacomco. Voir le chapitre 7.3.    9.5.3 - Option DRI  L'option "+dri" est synonyme des options "-bcdtvxzf". Elle a donc besoin, comme pour -f, du nom d'un fichier de sortie. Cette option est faite pour obtenir un source compatible avec l'assembleur de DRI. Voir le chapitre 7.4.   9.5.4 - Option MEGA  L'option "+mega" est synonyme des options "-bcdghitxf". Elle a besoin, comme pour -f, du nom d'un fichier de sortie. Cette option est faite pour obtenir un source compatible avec le compilateur MEGAMAX C. Voir le chapitre 7.5.      9.6 - Liste des options disponibles  Voici la liste de toutes les options reconnues par DESA. Pour plus de details, voir les chapitres ci-dessus.    -a : ne pas utiliser les labels sur disque -b : branchements longs sans extension '.l' -c : non-affichage du code objet -d : mettre ':' apres chaque label -e : prevenir si l'on a des jmp ou jsr en arriere -f nom : nom du fichier de sortie = nom (defaut = aucun) -g : mettre le nom des registres en majuscule -h : nombre hexadecimal au format C -i : conversion de dbra en dbf -j : conversion en majuscule de TOUT le programme -k : fichier du type core-image -l nnn : nombre maximum de labels en decimal (defaut = 5000) -m : format Motorola des instructions (defaut DRI) -n : numerotation des lignes -o nnn : adresse d'origine en hexadecimal (defaut = 0) -p : impression des resultats -q : ne pas initialiser l'imprimante avec l'option -p -r : non-affichage des remarques -s : adressage absolu court autorise (defaut = interdit) -t : remplacer les espaces par des tabulations -u : chaines encadrees par guillemets (defaut = apostrophes) -v : pas d'apostrophes ou de guillemets dans les chaines -w ccc : debut du nom des labels (defaut = 'lbl') -x : non-affichage des references -y : uniquement affichage des references -z : ne pas traduire les bcc.s *+4  +dri nom : reunion des options -b -cM -d -t -v -x -z -f nom +std nom : reunion des options -c -m -t -x -f nom +meta nom : reunion des options -c -e -m -t -v -x -f nom +mega nom : reunion des options -b -c -d -g -h -i -t -x -f nom        10 - Utilitaires ~   DESA est livre avec les 7 utilitaires : DUMP, PRINT, TRANS, XDISK, XSPOOL, XFREE et XDATE. Ces utilitaires peuvent etre utilises independamment de DESA.     10.1 - dump  L'utilitaire DUMP permet d'enregistrer sur disque une partie de la memoire, generalement la ROM. La ligne de commande permettant d'enregistrer la ROM de 192K octets commencant a l'adresse hexadecimale $fc0000 dans le fichier rom.img est :  "dump.ttp fc0000 192 rom.img"  Le premier parametre de DUMP est l'adresse hexadecimale de depart. Le second est la longueur de la zone en decimal et en kilo octets. Le troisieme est le nom du fichier.     10.2 - print  L'utilitaire PRINT permet l'impression de tout fichier ASCII pouvant comporter des tabulations (tous les 4 ou 8 caracteres). De plus, PRINT numerote les lignes en sortie. Ce programme initialise l'imprimante comme l'option -p de DESA, il ne marche donc qu'avec une imprimante compatible EPSON.  PRINT est particulierement fait pour imprimer les fichiers crees par DESA avec les options -ct.  L'appel de PRINT se fait par une ligne de commande de la forme :  "print.ttp [-] noms".  Le parametre optionel "-" indique que l'on desire des tabulations de 4, sinon, par defaut, les tabulations sont de 8. "noms" est une liste de noms de fichier a imprimer.   Par exemple pour imprimer le fichier "toto.asm", il faut utiliser la ligne de commande suivante :  "print.ttp toto.asm"  Et pour imprimer trois fichiers en une seule commande :  "print.ttp prog1.s prog2.asm prog3.s"  PRINT permet de definir les fichiers a imprimer par un nom generique, comportant les symboles "*" et "?".  Par exemple :  "print.ttp b:\*.asm"  imprimera tous les fichiers comportant l'extension "asm" du drive B, et  "print.ttp c:\sources\*.* - b:\lisez.moi"  imprimera, avec une tabulation de 4, tous les fichiers du dossier "sources" du drive C, ainsi que le fichier "lisez.moi" du drive B.  Si vous utilisez une specification du type "*.*", il faut faire attention a ne pas mettre des programmes executables dans le directory courant, sinon l'imprimante risque de s'affoler !  Au cas ou l'imprimante ne repondrait pas pendant 30 secondes, PRINT demande a l'utilisateur s'il veut poursuivre l'impression (apres correction de l'incident).     10.3 - trans   TRANS est un programme qui lit un fichier et le convertit en fichier source C ou assembleur. Cette conversion est tres simple car elle consiste en une suite de caracteres hexadecimaux.  Par exemple une conversion en C d'un programme donnera un fichier de texte qui sera, par exemple :  "0x60,0x1a,0x0,..."  Un tel fichier peut etre exploite dans un programme C par un appel du type :  static char prog[] = { #include "fichier.h" };  Une conversion en assembleur donnerait, par exemple :  " dc.b $60,$1a,$0,..."  Et serait utilisee par un appel du type :  prog: data include "fichier.h"   Un appel a TRANS se fait par une ligne de commande du type :  "trans.ttp source dest [-m|-p]"   ou "source" est le fichier source et "dest" est le fichier de destination.  Le parametre optionnel "-m" indique que l'on desire un fichier source assembleur du type "dc.b". Le parametre "-p" indique que l'on desire un source assembleur du type ".dc.b". Et en l'absence d'un de ces deux parametres, le fichier cree sera un fichier source C.     10.4 - xdisk  XDISK est un RAM disk. Il est cree et configure par le programme INSTDISK.  Pour installer XDISK il faut definir deux choses : la taille utile du RAM disk, et le nom du drive ou il sera installe.  Si vous ne disposez que de 512K de memoire, le RAM disk ne pourra guere utiliser plus de 100K; mais si vous disposez de 1M octet, il pourra etre superieur a 720K.  Il faut bien choisir cette taille, car si elle est trop petite, le RAM disk sera inutilisable. Mais si elle est trop grande, il ne restera plus de place pour aucune application; et de plus, certaines applications qui semblent tourner, risquent de "deborder" par un besoin urgent de place memoire !  Il faut ensuite choisir le nom du lecteur ou se placera XDISK. Si vous ne disposez pas d'un disque dur, ce nom sera C, sinon il sera D, ou E.  Une fois ces choix definis, la creation du programme "xdisk.prg" (dans le directory courant) se fait avec le programme INSTDISK par une ligne du type :  "instdisk.ttp Taille Lecteur".  Par exemple, pour configurer un Ram disk de 400K en drive C, la ligne de commande sera :  "instdisk.ttp 400 C".  A ce stade de l'installation, le programme "xdisk.prg" vient d'etre cree, mais pas lance.   Pour lancer XDISK avec les parametres predefinis, il suffit alors d'utiliser la commande :  "xdisk.prg"  Il faut maintenant prevenir le GEM de l'arrivee d'un nouveau lecteur. Cela se fait en cliquant l'icone "DISQUE A", puis en choisissant l'option "Installer une unite de disque..." du menu "Options". Il faut alors entrer le nom de l'unite ("C" par exemple), et l'etiquette d'icone, ("RAM DISK" par exemple). Voir le "Manuel d'utilistion" de l'ATARI ST dans le chapitre 5, section "options".  Vous pouvez alors utiliser le RAM disk comme n'importe quel lecteur de disquettes. Mais n'oubliez pas de sauvegarder son contenu avant d'eteindre l'ordinateur !    Pour que XDISK s'installe automatiquement a chaque mise sous tension, il suffit de sauvegarder le bureau et de copier le fichier "xdisk.prg" dans le dossier "auto" du disque de boot. Si ce dossier n'existe pas, il faudra le creer.  En effet, tout programme se trouvant dans le dossier "\auto" sera automatiquement lance a chaque boot du systeme. Il faut noter que ces programmes seront lances dans l'ordre ou ils ont ete enregistres.    INSTDISK permet de creer le programme "xdisk.prg" et de le configurer. Mais XDISK, une fois cree, peut etre utilise separement. Pour cela XDISK permet de changer la taille du RAM disk au lancement. Cela se fait par une ligne de commande du type :  "xdisk.prg taille"  Ainsi, si l'on utilise le programme "xdisk.prg" tel qu'il a ete cree par INSTDISK ci-dessus (100K en drive C), la ligne suivante permet de lancer le RAM disk avec une taille de 300K :  "xdisk.prg 300".  Pour changer le drive du RAM disk, il faut reconfigurer XDISK par INSTDISK.       10.5 - xspool   XSPOOL est un spooler pour l'imprimante. Tout comme XDISK il faut d'abord le configurer, et donc choisir la taille utile de ce spooler. V  Si vous ne disposez que de 512K de memoire, une taille de 20K est acceptable. Si vous disposez de plus de memoire, une taille de 100K est tres confortable.  La creation et la configuration de XSPOOL se fait par INSTSPOO grace a une ligne de commande du type :  "instspoo.ttp taille"  Par exemple pour configurer un spooler de 100K, il faut utiliser la ligne de commande suivante :  "instspoo.ttp 100".  INSTSPOO cree alors le programme "xspool.prg" dans le directory courant, mais il ne le lance pas. Pour cela, il faut utiliser une ligne de commande du type :  "xspool.prg"  Pour que le spooler se lance automatiquement a chaque boot, il suffit de le mettre dans le dossier "auto". Voir l'installation de XDISK au chapitre 10.4.    XSPOOL peut aussi etre utilise independamment de INSTSPOO par une ligne de commande de la forme :  "xspool.prg taille"  Par exemple, en utilisant le programme "xspool.prg" cree par INSTSPOO ci-dessus, on peut lancer le spooler avec une taille de 30K (et non plus de 100K) par la commande :  "xspool.prg 30".   XSPOOL permet de liberer tres rapidement l'imprimante lors d'une impression. XSPOOL peut etre utilise avec n'importe quel programme, et en particulier avec PRINT et DESA.         10.6 - xfree   XFREE permet de connaitre la taille libre de l'ordinateur, il se lance par une commande du type :  "xfree.prg"  XFREE n'attend pas la frappe d'une touche car il est normalement place dans le dossier "auto" en derniere position (dernier charge). Il indique alors la place libre apres le boot.          10.7 - xdate   XDATE est un programme qui demande la date et l'heure pour mettre a jour l'horloge du systeme. Il n'effectue aucune verification quant a la validite de la date.  XDATE est generalement place en premiere position dans le dossier "auto" (premier charge).  Si vous disposez d'un materiel faisant cette mise a l'heure (cartouche), XDATE est bien sur superflu.         11 - Structure d'un programme ~   Tous les programmes marchant sur les ordinateurs de la gamme ATARI ST ont la meme structure. Cette structure est decrite dans ce chapitre.    11.1 - En-tete du programme  Tout programme comporte un en-tete de la forme suivante :  type 2 octets : Mot magique valant $601a l_text 4 octets : Longueur de la section TEXT l_data 4 octets : Longueur de la section DATA l_bss 4 octets : Longueur de la section BSS l_lbl 4 octets : Longueur de la section LBL filler 10 octets : Reserve  Apres cet en-tete, on trouve les sections TEXT, DATA, LBL et REL. Ces sections, ainsi que la section BSS, sont decrites dans les chapitres qui suivent. Elles sont facultatives et peuvent ne pas apparaitre.    11.2 - Section TEXT  C'est dans cette section que se trouvent les instructions 68000 qui composent le programme. Cette section a ete assemblee pour marcher a l'adresse 0.    11.3 - Section DATA  C'est dans cette section que se trouvent les donnees initialisees ainsi que les messages. Si cette section est bien presente, DESA la desassemblera sans probleme. Par contre si elle est absente, c'est surement qu'elle se trouve noyee dans la section TEXT, DESA ne pourra la trouver.   11.4 - Section BSS  Cette section ne se trouve pas dans le fichier du programme car il s'agit de la section des donnees non-initialisees, comme par exemple les buffers. Seule sa longueur est fournie dans l'en- tete. Mais DESA arrive a la reconstituer en analysant toutes les references faites dans cette zone.    11.5 - Section LBL  Cette section est facultative, et ne sert pas directement au programme. Il s'agit uniquement d'une zone de donnees reservee a des programmes du type debugger symbolique. En effet cette zone contient toutes les references du programme, c'est-a-dire une table comportant les noms et les valeurs des labels donnes dans le programme source.  Cette section est assez rare a trouver dans des programmes car elle prend inutilement de la place. En effet, une fois le programme au point, elle devient inutile et rallonge la taille du programme sur disque.  Si cette zone existe, elle sera analysee avec profit par DESA. Par contre si elle n'existe pas, DESA s'en passera et donnera tout seul un nom aux labels. Voir l'utilisation de l'option -w dans le chapitre 9.3.8 pour changer le nom des labels generes par DESA.  Il faut remarquer que DESA ne fabrique des labels que quand cela est necessaire. Par contre si la section LBL existe, DESA utilisera tous les labels qu'il y trouvera, meme ceux qui ne servent jamais. Donc pour voir si un sous-programme est utilise, c'est-a-dire s'il est "labelise", il faudra utiliser l'option -a qui indique a DESA de ne pas utiliser la section LBL si elle existe.  Il se peut que cette section LBL ne comporte pas de labels mais des donnees pour d'autres programmes. Ce n'est absolument pas grave pour le programme lui-meme, mais ce peut etre bloquant pour DESA. Dans ce cas il faudra donc utiliser l'option -a pour interdire l'utilisation de cette section.     11.6 - Section REL  Cette section comporte toutes les adresses, sous forme de deplacement, des instructions a reloger. En effet, comme nous avons vu, la section TEXT est faite pour marcher a l'adresse 0, et elle ne marche jamais la!  La section REL permet donc au chargeur du programme de modifier toutes les instructions absolues du programme (adressage absolu long) en ajoutant a ces instructions l'adresse de chargement du programme.  La longueur de la section REL n'est pas enregistree dans le programme, elle est calculee en enlevant a la taille du programme la somme de toutes les autres sections.  C'est grace a cette section que les programmes peuvent tourner a n'importe quel endroit de la memoire. Et ceci sans forcement utiliser les modes d'adressage relatif du 68000.  C'est aussi grace a cette section que DESA peut reperer les constantes des labels.  Par exemple l'instruction  move.l $4ba,d0  est - soit une reference a "_hz_200", compteur 200 Hz du systeme, situe en $0004ba,  - soit une reference a une adresse situee dans le programme en $0004ba + offset, offset etant l'adresse de chargement du programme.  DESA fait la distinction entre ces deux choix en remarquant que seule la deuxieme solution est une instruction relogeable, et est donc indiquee dans la section REL.   11.7 - Programme core-image  Les programmes du type core-image sont des programmes qui sont en fait des dumps de la memoire. C'est le cas du programme tos.img. De tels programmes sont enregistres sur disque en un seul bloc, et ne peuvent marcher qu'a une adresse precise. Les options  -k et -o permettent de desassembler ce type de programme. Mais du fait que les differentes sections sont absentes, DESA ne pourra reconnaitre les instructions des donnees.             "--ooOOOoo--  `$((N6N N >N N VN N N N!*O*m - ЭЭм!"ҍ¼.A// Bg?<JNA m"m -So Q m -SBQ(m)M*mN0 lHhNX/,?,N\?<N?<A?<NAXNuNV?B.Hl?<N\ ng*HlB?<N\?<?<?<Nl\?<NT?</< n /(Nx )@?< /< n /(NZ 9@0,/ </N )@ n )h ,f*Hl?<N\?<?<?<N\?<N T ,g*Hl?<N\?<?<?<N\?<NT ,m ,oB/</<HlHlNHl?<N^\?<?<?<ND\| ,ЬS o ,)@`NHz~?<&N\Hl/<?,?<@N gHlj?<N@\?NJXHlv?<N \BgN8T>N^NuNV?BG` lX 2A RG Ge>N^NuNVHl~?<N\HlNPXHl?<N\`?<?<?<N\?<NTH| fHlNX?.NRTN^NuNV/ &n?<?<?<ND\?<p?<?<N2\/ ?<N.\?<?<?<N\?<q?<?<N\&_N^NuNVH>.&n `H???<N\fLN^NuNVH&n>. Gl0`0<9@/ N(X?<?<?<N\?<NTLN^NuNVH>,DG&| Gm$0ln0A Pg 0A&P f0D@?HlAX &@/N / /.HlN LN^NuNV?.NT nn0<`?.?<>NX9@g0<`0<N^NuNVHl/.NPJ@g`Hl/.NPJ@gNHl/.NPJ@gQ`NVH"n Bl> n,0(H@8D|fB.0)H@:E|fB2$60Enfl8,:.6$0Jg0Eg|n0@gDԇ0,>Q fBB`HSCdTC0|g0|gԼdRC`|"|CHB|C0|@HB AHABA LN^NuNVH0.|=@n n f n0H-@HnNXA-H`> n(g nf. n-P n(f HnNX` HnN>XA-H/./. 0.A PNPLN^/W D@NuN^NuNVH nB fB`м8 LN^NuNVH n$fBCB`nD6< f႖|NzN^NuNVH0&n$n Bn-J @A)X6)X:A 6 :BEG>O|g|JGn|m` REHlP/ NRPO`SEHlP/ NPO`&0+H@JGgDG0<0dR@0.BAQ,>QQֆG|0QB`Rn0.g$nB`0R 2.HmB`d .6.HЃR$@ nH|0fRZ"H|9o R"` nH|0f$n R&@g`SE .6.HЃ @B n0L N^NuNVH0&n BnH|bf=| RH|rgH|wgH|ag <`R ,$@ f*A$H`0* |f` A"Ҽm A"Ҽm <`BBj Bn+H|+f =|j H|wf?./.Nf\>j `hH|afB0<n?/.N*\> @f?./.N(\>?<B?N Pj `0.n?/.N\>j Gf Bj <`<5G Bj <$%@-J?<B?* NP n!@ n1l L N^NuNV)n/.NX/. /.N@PN^NuNV`H0BnBnBB9| nRH|=@ .&@$@BG`TH| g(H| gH| gH| g H| f0.f0.gBnB` `H|"f< nfBn`*0.f 0.f=|0,RlA` `"`H|'f: nfBn`*0.f 0.f=|0,RlA` `'`r0.fj0.fd=|H|f. R @H|>f T-@=|` R-@Bn`0,RlA`  R0RG0nmB .g,A H1| A H1|HlHl/.N .g2A H1| Hl0.gA `A //.N 0,R@H/?<HNT\)@><`0A` 2 l RG0lm l 0, lBL N^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN -@?<?.B?<BN -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N6 Bg?./. ?<BN ]|9@g <` `Bl . N^NuNV/.?<HN\N^NuNV/.?<IN\N^NuNVBn`60.A0f"0.A00.A0 ` Rn nLmN^NuNVBn`&0.A0nf0.ABPRn nLmN^NuNV?>.=|0A"HPgXHf0(>N^NuNVHl/.NPJ@f =|`Hl /.NPJ@f =|`Hl/.NPJ@f=|`f0. |g0/.N LXJ@g0<``Bg/.?<NX0. |?/.?<=NlP=@9@ @l0<`0. | ??.N~X0.N^Nu)I)J)_NM"l$l/,Nu)I)J)_NN"l$l/,Nu)I)J)_NA"l$l/,NuNVH&n Bn0.|dg`>< `.`|ug`>< ``|og`><``|xg`>< l* ndf SR- .D-@`0. f Gf .`& Gf .` ./0H/N $X 2.RnA0 Gf .`( Gf .` ./0H/N X-@ .fp0.gHSn0.A P m0.A0| |A`0.A0|0 SR`LN^NuNVH&n n f=| A)X6)X:HlHl6?<N]|@0. R@?HnHnHnN.g SR-.H|0f.f SR`J nff>.n RG0lBo0,B`0> Gl0<`0?HnHnHnNBF0g" nm0RFA SRSGSn` nm SR0Sn`0. g SR.0. g nl SR0RnSn `0. Sn J@g$ Go0RFAH`0<0 SRSG``` SR0. g SR.><0. Sn J@g0RGA SR` SRE?.Hl /N: /NXHѓLN^NuNVBn n PH|0m4 n PH|9n$0. n PHC|0=@ nR`0.N^NuNVH0&n -n @$PXgVgH|%g nR`H|%f,RBn=|Bn| H|-f=|RH|0f|0R-JHnN"X=@$nH|.fR-JHnNX=@$nH|lf=|RgH-n Gdg Gog Gxg GufB0.g @ ` @0H/Hn?.?NT 0.g0<`0<H` Gcf R @ nRT` Gsf4 @-PX<.` nR nRSF0g nf`J Geg Gfg Ggf, @A)X6)X:/,:/,6Hn?.?NP` 0 nR .nl0.g$<.".A` nRSF0f`b .2.SAHЁ-@-@,.` .2SAHЁ @ nSSF0f .n nR` .R-@` nB .L N^NuNV/. HnNhP=@/.HnN8P0.N^NuNVHnHlNPN^NuNVHn /.N&PN^NuNV ng/. nRH?N\`N^NuNVH0&n$n `RRg HHAgHHCL N^NuNVH0&n$K`Rf L N^NuNV n R @H=@ n g n g n f n R @H=@`0.N^NuNV=| nxg nXf n f0<`f n0m n9n0.|0=@`2 nam0.|a| =@` nAm0.|A| =@0.n o0<``0.N^NuNVBnBHnNX=@ n-f0<=@ nRH=@?.?.N*X=@ @g2 ./0.H/N 6.HЃ-@ nRH=@` g n 0.g .D` .N^NuNV/.?<ANP\9@g0<``0<N^NuNV0. Sn J@g6 nH| f?< ?<NX nRH??<NX`N^NuNV0. Sn J@g nRH??<NX`N^NuNV0. Sn J@g nRH??<NX`N^NuNVH0&n $KA$-H nf?./ N4\=n`H nf?./ N`\=n`* nf?./ Np\=n` -KBn?.NTJ@f ndH| f |o@ H-@/./.?.?<@N 9@Hg0<`0,n/./<?.?<@N 9@ @g0<`hRnR -@`R``` 6.ƼЃ$@ H-@/./.?.?<@N6 =@9@Hg0<`Bl0.L N^NuNVH$.f BB`J". BnJlVnDJlRnDvd`Bbd nmDdD-@-A LN^NuNV/BnJlRnDJ lRnD 0. -@0.n0. nngD -n N^.JNuN^NuCA"A"A"A"A"A"A"A."A<"AP"A^"Ap"A"A "A"A"A"A"A"A"A"A "A "A"A"A"A"A"A"A"A"A"A "A@"AT"Al"A"A"A"A"A"A"A"A"A"A"A"A"A "A""A8"A:"A<"A>"A@"AB"AD"AF"AH"AJ"AL"AN"AP"AR"AT"Ad"At"A"9|CC"2"2 2"2"2"22"2"2"22"2x9|)lP)lT)lL)lD)lH9|BCA"A"A"A$"A*"A"A ")|NuvDump, Copyright LORICIELS Octobre 1986, auteur: Eric Lvnez Usage: dump.ttp dbut longueur fichier ex: dump.ttp fc0000 192 b:\rom.img 'longueur' ne doit pas tre nulle 'dbut' ne doit pas tre impair 'dbut' doit tre entre %lx et %lx 'longueur' est trop grand: fin > %lx Je vais quand mme essayer ... Je dumpe la ROM de $%lx $%lx ... [Erreur] [Ok] Appuyez sur RETURN pour sortir Aucune erreur dtecteErreur fondamentaleLecteur non prtCommande inconnueErreur CRCMauvaise requteErreur positionnementMdia inconnuSecteur non trouvPas de papierErreur d'critureErreur de lectureErreur gnraleEcriture protgeChangement de mdiaPriphrique inconnuMauvais secteur au formatageInsrez un autre disqueNumro de fonction non valableFichier non trouvNom d'accs non trouvTrop de fichiers ouvertsSaisie impossibleNumro de rfrence non valableMmoire insuffisanteAdresse du bloc mmoire non valable Mauvaise description du lecteurPlus d'autre fichierErreur de rangErreur interneFormat de chargement du programme incorrectErreur sur setblockErreur inconnue numro %d %s: %s. CON:AUX:PRN:@$??rawCON:AUX:PRT: %d `."< N6N "N^N N vN NNN *O*m - ЭЭм!"ҍ¼.A// Bg?<JNA m"m -So Q m -SBQ(m)M*mN0 lHhNX/,?,N\?<N?<A?<NAXNuNVH0HlN@X ngDHlFN.XHllN$XHlNXHlNX?<?<?<Nx\?<NT?< /< n /(Nh > G e Gc&HlNX?<?<?<N*\?<N>T n h(g&HlNX?<?<?<N\?<N T n hH?NT|AH|m H|o&Hl0N:X?<?<?<N\?<NTHlX?<Nt\AV A<" AА-@ .&@ .T$@6|4BgHl0?< g ?NXHlvN|XBgN TL N^NuNVHl~?<N\HlNPXHl?<N\`?<?<?<N\?<NTH| fHlNX?.NpTN^NuNV/ &n?<?<?<Nb\?<p?<?<NP\/ ?<N.\?<?<?<N2\?<q?<?<N \&_N^NuNVH>.&n `H???<N\fLN^NuNV nl0.`0<9@Hl0N$X?<?<?<N\?<NTN^NuNVH>,DG&| Gm$0ln0A Pg 0A&P f0D@?HlA &@/N / /.HlN LN^NuNV?.NT nn0<`?.?<>N X9@g0<`0<N^NuNV nam nzn 0.| ``0.N^NuNVHl/.NPJ@g`Hl/.NPJ@gNHl/.NnPJ@g n(g nf. n-P n(f HnNX` HnN>XA-H/./. 0.A PNPLN^/W DNuN^NuNVH nB fB`м8 LN^NuNVH n$fBCB`nD6< f႖|NzN^NuNVH0&n$n Bn-J @A)X)XA BEG>O|g|JGn|m` REHl/ NRPO`SEHl/ NPO`&0+H@JGgDG0<0dR@0.BAQ,>QQֆG|0QB`Rn0.g$nB`0R 2.HmB`d .6.HЃR$@ nH|0fRZ"H|9o R"` nH|0f$n R&@g`SE .6.HЃ @B n0L N^NuNVH0&n BnH|bf=| RH|rgH|wgH|ag <`R ,$@ f*A@$H`0* |f` A@"Ҽm A@"Ҽm <`BBj Bn+H|+f =|j H|wf?./.Nf\>j `hH|afB0<n?/.N*\> @f?./.N(\>?<B?N Pj `0.n?/.N\>j Gf Bj <`<5G Bj <$%@-J?<B?* NP n!@ n1l> L N^NuNV)n/.NX/. /.N@PN^NuNV`H0BnBnBB9| nRH|=@ .&@$@BG`TH| g(H| gH| gH| g H| f0.f0.gBnB` `H|"f< nfBn`*0.f 0.f=|0,RlA` `"`H|'f: nfBn`*0.f 0.f=|0,RlA` `'`r0.fj0.fd=|H|f. R @H|>f T-@=|` R-@Bn`0,RlA`  R0RG0nmB .g,A@ H1| A@ H1|Hl@Hl/.N .g2AT H1| HlT0.gA `A //.N 0,R@H/?<HN8\)@><`0A` 2 l RG0lm l 0, lBL N^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN -@?<?.B?<BN -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN ]|9@g <` `Bl . N^NuNV/.?<HN\N^NuNV/.?<IN\N^NuNVBn`60.A0f"0.A00.A0 ` Rn nLmN^NuNVBn`&0.A0nf0.ABPRn nLmN^NuNV?>.=|0A"HPgXHf0(>N^NuNVHl/.NPJ@f =|`Hl /.NPJ@f =|`Hl&/.NnPJ@f=|`f0. |g0/.N 0XJ@g0<``Bg/.?<NhX0. |?/.?<=NPP=@9@ @l0<`0. | ??.N~X0.N^Nu)I|)Jx)_tNM"l|$lx/,tNu)I|)Jx)_tNA"l|$lx/,tNuNVH&n Bn0.|dg`>< `.`|ug`>< ``|og`><``|xg`>< l* ndf SR- .D-@`0. f Gf .`& Gf .` ./0H/N $X 2.RnA0 Gf .`( Gf .` ./0H/N X-@ .fp0.gHSn0.A P m0.A0| |A`0.A0|0 SR`LN^NuNVH&n n f=| A)X)XHl,Hl?<N]|@0. R@?HnHnHnN.g SR-.H|0f.f SR`J nff>.n RG0lo0,`0> Gl0<`0?HnHnHnN4BF0g" nm0RFA SRSGSn` nm SR0Sn`0. g SR.0. g nl SR0RnSn `0. Sn J@g$ Go0RFAH`0<0 SRSG``` SR0. g SR.><0. Sn J@g0RGA SR` SRE?.Hl4/N: /NXHѓLN^NuNVBn n PH|0m4 n PH|9n$0. n PHC|0=@ nR`0.N^NuNVH0&n -n @$PXgVgH|%g nR`H|%f,RBn=|Bn| H|-f=|RH|0f|0R-JHnN"X=@$nH|.fR-JHnNX=@$nH|lf=|RgH-n Gdg Gog Gxg GufB0.g @ ` @0H/Hn?.?NT 0.g0<`0<H` Gcf R @ nRT` Gsf4 @-PX<.` nR nRSF0g nf`J Geg Gfg Ggf, @A)X)X/,/,Hn?.?NP` 0 nR .nl0.g$<.".A` nRSF0f`b .2.SAHЁ-@-@,.` .2SAHЁ @ nSSF0f .n nR` .R-@` nB .L N^NuNV/. HnNhP=@/.HnN8P0.N^NuNVHnHlTNPN^NuNVHn /.N&PN^NuNV ng/. nRH?N\`N^NuNVH0&n$n `RRg HHAgHHCL N^NuNVH0&n$K`Rf L N^NuNV n R @H=@ n g n g n f n R @H=@`0.N^NuNV=| nxg nXf n f0<`f n0m n9n0.|0=@`2 nam0.|a| =@` nAm0.|A| =@0.n o0<``0.N^NuNVBnBHnNX=@ n-f0<=@ nRH=@?.?.N*X=@ @g2 ./0.H/N 6.HЃ-@ nRH=@`  g n 0.g .D` .N^NuNV/.?<ANP\9@g0<``0<N^NuNV0. Sn J@g6 nH| f?< ?<NX nRH??<NX`N^NuNV0. Sn J@g nRH??<NX`N^NuNV0. Sn J@g nRH??<NX`N^NuNVH0&n $KA8-H nf?./ N4\=n`H nf?./ N`\=n`* nf?./ Np\=n` -KBn?.NTJ@f ndH| f |o@ H-@/./.?.?<@N 9@Hg0<`0,n/./<?.?<@N 9@ @g0<`hRnR -@`R``` 6.ƼЃ$@ H-@/./.?.?<@N6 =@9@Hg0<`Bl0.L N^NuNVH$.f BB`J". BnJlVnDJlRnDvd`Bbd nmDdD-@-A LN^NuNV/BnJlRnDJ lRnD 0. -@0.n0. nngD -n N^.JNuN^NuC:` o,< *(b~pA  g  g0k  n  @eX`JGf>9H8p A2<HgHD0HDQ3P(OGAuO cHy?< NA\?<?<LNAHy?<&NN\r0<A~ Q <Ab !@ 099Hy?< NA\Bg/?<1NA#r6!Nr#v:!jv#~>!~r09Nu09og y6N <BNu09og y:N0/ Hr  o2/ g8SACb0/gI/ fp        QQpNu0<QQ`09og y>NpNuRAM disk A: V1.0      K activ.  RAM disk NON activ.  p 8       J C0xdisk.prgCA"A"A"A"A"A"A"A."7A<"AP"A^"Ap"A"A"A"A"A"A"A"A"A"A "A "A"A"A"A"A"A"A"A"A"A "A@"AT"Al"A"A"A"A"A"A"A"A"A"A"A"A"A "A""A8"A:"A<"A>"A@"AB"AD"AF"AH"AJ"AL"AN"AP"AR"AT"Ad"At"A"9|CC@"2"2 2"2"2"22"2"2"22"2x9|>)l)l)l)l )l9|CA"A"A"A$"A*"A"A ")|NuvInstdisk, Copyright LORICIELS Octobre 1986, auteur: Eric Lvnez Usage: instdisk.ttp Taille Lecteur Taille : taille utile en Kilo octets Lecteur : Nom du lecteur de xdisk Ex.: instdisk.ttp 100 C 'Taille' doit tre entre 10 et 4000 'Lecteur' doit tre une lettre unique 'Lecteur' doit tre entre 'C' et 'P' Cration de 'xdisk.prg' ... [ok] Appuyez sur RETURN pour sortir Aucune erreur dtecteErreur fondamentaleLecteur non prtCommande inconnueErreur CRCMauvaise requteErreur positionnementMdia inconnuSecteur non trouvPas de papierErreur d'critureErreur de lectureErreur gnraleEcriture protgeChangement de mdiaPriphrique inconnuMauvais secteur au formatageInsrez un autre disqueNumro de fonction non valableFichier non trouvNom d'accs non trouvTrop de fichiers ouvertsSaisie impossibleNumro de rfrence non valableMmoire insuffisanteAdresse du bloc mmoire non valable Mauvaise description du lecteurPlus d'autre fichierErreur de rangErreur interneFormat de chargement du programme incorrectErreur sur setblockErreur inconnue numro %d[erreur] instdisk: %s: %s. CON:AUX:PRN:@$??rawCON:AUX:PRT: %d y`, \N6N XNN NN >N.NN*O*m - ЭЭм!"ҍ¼.A// Bg?<JNA m"m -So Q m -SBQ(m)M*mN0 lHhN X/,?,N\?<N?<A?<NAXNuNVHHlNvX ng:HlFNdXHldNZXHlNPX?<?<?<N\?<NT?< /< n /(N > G e Gc&HlNX?<?<?<Nj\?<NTHl?<Nd\A An" AА-@ .&@6BgHl`?<NXHlNTXBgN TLN^NuNVHl?<N\HlNPXHl?<N\`?<?<?<N\?<NTH| fHl NX?.NHTN^NuNV/ &n?<?<?<N:\?<p?<?<N(\/ ?<N.\?<?<?<N \?<q?<?<N\&_N^NuNVH>.&n `H???<N\fLN^NuNV nl0.`0<9@Hl`N$X?<?<?<N\?<NTN^NuNVH>,DG&| Gm$0lLn0AN Pg 0AN&P f0D@?Hl.A$ &@/N / /.HlHN LN^NuNV?.NT nn0<`?.?<>NX9@g0<`0<N^NuNVHlh/.NPJ@g`Hln/.NPJ@gNHlt/.NnPJ@g n(g nf. n-P n(f HnNX` HnN>XA-H/./. 0.A PNPLN^/W D NuN^NuNVH nB fB`м8 LN^NuNVH n$fBCB`nD6< f႖|NzN^NuNVH0&n$n Bn-J @A)X)XA  BEG>O|g|JGn|m` REHl/ NRPO`SEHl/ NPO`&0+H@JGgDG0<0dR@0.BAQ,>QQֆG|0QB`Rn0.g$nB`0R 2.HmB`d .6.HЃR$@ nH|0fRZ"H|9o R"` nH|0f$n R&@g`SE .6.HЃ @B n0L N^NuNVH0&n BnH|bf=| RH|rgH|wgH|ag <`R ,$@ f*Ap$H`0* |f` Ap"Ҽm Ap"Ҽm <`BBj Bn+H|+f =|j H|wf?./.Nf\>j `hH|afB0<n?/.N*\> @f?./.N(\>?<B?N Pj `0.n?/.N\>j Gf Bj <`<5G Bj <$%@-J?<B?* NP n!@ n1ln L N^NuNV)n/.NX/. /.N@PN^NuNV`H0BnBnBB9| nRH|=@ .&@$@BG`TH| g(H| gH| gH| g H| f0.f0.gBnB` `H|"f< nfBn`*0.f 0.f=|0,RlA` `"`H|'f: nfBn`*0.f 0.f=|0,RlA` `'`r0.fj0.fd=|H|f. R @H|>f T-@=|` R-@Bn`0,RlA`  R0RG0nmB .g,Ap H1| Ap H1|HlpHl/.N .g2A H1| Hl0.gA `A //.N 0,R@H/?<HN8\)@><`0A` 2 l RG0lm l 0, lBL N^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN -@?<?.B?<BN -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN ]|9@g <` `Bl . N^NuNV/.?<HN\N^NuNV/.?<IN\N^NuNVBn`60.A0f"0.A00.A0 ` Rn nLmN^NuNVBn`&0.A0nf0.ABPRn nLmN^NuNV?>.=|0A"HPgXHf0(>N^NuNVHl/.NPJ@f =|`Hl/.NPJ@f =|`Hl/.NnPJ@f=|`f0. |g0/.N 0XJ@g0<``Bg/.?<NhX0. |?/.?<=NPP=@9@ @l0<`0. | ??.N~X0.N^Nu)I)J)_NM"l$l/,Nu)I)J)_NA"l$l/,NuNVH&n Bn0.|dg`>< `.`|ug`>< ``|og`><``|xg`>< l* ndf SR- .D-@`0. f Gf .`& Gf .` ./0H/N $X 2.RnA0 Gf .`( Gf .` ./0H/N X-@ .fp0.gHSn0.A P m0.A0| |A`0.A0|0 SR`LN^NuNVH&n n f=| A)X)XHlHl?<N]|@0. R@?HnHnHnN.g SR-.H|0f.f SR`J nff>.n RG0lo0,`0> Gl0<`0?HnHnHnN4BF0g" nm0RFA SRSGSn` nm SR0Sn`0. g SR.0. g nl SR0RnSn `0. Sn J@g$ Go0RFAH`0<0 SRSG``` SR0. g SR.><0. Sn J@g0RGA SR` SRE?.Hl/N: /NXHѓLN^NuNVBn n PH|0m4 n PH|9n$0. n PHC|0=@ nR`0.N^NuNVH0&n -n @$PXgVgH|%g nR`H|%f,RBn=|Bn| H|-f=|RH|0f|0R-JHnN"X=@$nH|.fR-JHnNX=@$nH|lf=|RgH-n Gdg Gog Gxg GufB0.g @ ` @0H/Hn?.?NT 0.g0<`0<H` Gcf R @ nRT` Gsf4 @-PX<.` nR nRSF0g nf`J Geg Gfg Ggf, @A)X)X/,/,Hn?.?NP` 0 nR .nl0.g$<.".A` nRSF0f`b .2.SAHЁ-@-@,.` .2SAHЁ @ nSSF0f .n nR` .R-@` nB .L N^NuNV/. HnNhP=@/.HnN8P0.N^NuNVHnHlNPN^NuNVHn /.N&PN^NuNV ng/. nRH?N\`N^NuNVH0&n$n `RRg HHAgHHCL N^NuNVH0&n$K`Rf L N^NuNV n R @H=@ n g n g n f n R @H=@`0.N^NuNV=| nxg nXf n f0<`f n0m n9n0.|0=@`2 nam0.|a| =@` nAm0.|A| =@0.n o0<``0.N^NuNVBnBHnNX=@ n-f0<=@ nRH=@?.?.N*X=@ @g2 ./0.H/N 6.HЃ-@ nRH=@`  g n 0.g .D` .N^NuNV/.?<ANP\9@g0<``0<N^NuNV0. Sn J@g6 nH| f?< ?<NX nRH??<NX`N^NuNV0. Sn J@g nRH??<NX`N^NuNV0. Sn J@g nRH??<NX`N^NuNVH0&n $KA-H nf?./ N4\=n`H nf?./ N`\=n`* nf?./ Np\=n` -KBn?.NTJ@f ndH| f |o@ H-@/./.?.?<@N 9@Hg0<`0,n/./<?.?<@N 9@ @g0<`hRnR -@`R``` 6.ƼЃ$@ H-@/./.?.?<@N6 =@9@Hg0<`Bl0.L N^NuNVH$.f BB`J". BnJlVnDJlRnDvd`Bbd nmDdD-@-A LN^NuNV/BnJlRnDJ lRnD 0. -@0.n0. nngD -n N^.JNuN^NuCl` H o,< *(~ A  g  g0k  n  @e8`JGf>9 H8p A.2<HgHD0HDQc/<:?< NA\?<?<LNA#/<?<-?<NMP#/<?<?< NNP/<?< NA\Bg/?<1NA O\(fNh Xf>JXfjF'"x3#!0"9fz9fpaF"x/?!Ns `f*Jhf$p"9a gpNsRerNu yNA@@ @pNuagAQ#p`t xpF#fbp`RH"9galAQ0at#LNsdSpooler V1.0    K activ.  Spooler NON activ.  N $B0 2  C`xspool.prgCNA$"A<"AP"Ab"At"A"A"A"A"A"A"A"A"A "A"A2"AH"Af"A~"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A2"A4"AJ"An"Ap"Ar"At"Av"Ax"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"9|CLCp"2"2 2"2"2"22"2"2"22"2x9|n)lz)l~ )l)l)l9|CA"A"A"A$"A*"A"A ")|NuvInstspoo, Copyright LORICIELS Octobre 1986, auteur: Eric Lvnez Usage: instspoo.ttp Taille Taille : taille utile en Kilo octets Ex.: instspoo.ttp 100 'Taille' doit tre entre 10 et 4000 Cration de 'xspool.prg' ... [ok] Appuyez sur RETURN pour sortir Aucune erreur dtecteErreur fondamentaleLecteur non prtCommande inconnueErreur CRCMauvaise requteErreur positionnementMdia inconnuSecteur non trouvPas de papierErreur d'critureErreur de lectureErreur gnraleEcriture protgeChangement de mdiaPriphrique inconnuMauvais secteur au formatageInsrez un autre disqueNumro de fonction non valableFichier non trouvNom d'accs non trouvTrop de fichiers ouvertsSaisie impossibleNumro de rfrence non valableMmoire insuffisanteAdresse du bloc mmoire non valable Mauvaise description du lecteurPlus d'autre fichierErreur de rangErreur interneFormat de chargement du programme incorrectErreur sur setblockErreur inconnue numro %d[erreur] instspoo: %s: %s. CON:AUX:PRN:@$??rawCON:AUX:PRT: %d Sur cette disquette se trouvent : LISEZ.MOI le fichier que vous regardez actuellement DESA.TTP le dsassembleur 68000 XDISK.PRG le RAM disk configur pour 60K en C: INSTDISK.TTP le programme de configuration de XDISK XSPOOL.PRG le spooler configur pour 20K INSTSPOO.TTP le programme de configuration de XSPOOL PRINT.TTP le programme d'impression DUMP.TTP le programme de dump mmoire TRANS.TTP le programme de conversion XFREE.PRG le programme donnant la taille de la mmoire libre XDATE.PRG le programme demandant la date au boot DESA.DOC le manuel d'utilisation au format 1ST WORD DESA.TXT le manuel d'utilisation en ASCII pur Pour obtenir le manuel : - si vous disposez de 1ST WORD, imprimez DESA.DOC - sinon, ouvrez DESA.TXT et choisissez VOIR ou IMPRIMER h`"XN6N ZN N N N @N 0N N!*O*m - ЭЭм!"ҍ¼.A// Bg?<JNA m"m -So Q m -SBQ(m)M*mN0 lHhNX/,?,N\?<N?<A?<NAXNuNVHBGHlNvX nf0HlDNdXHl`NZX?<?<?<N\?<NPT<<`"Hl0 n /NxPJ@f9|*RF0nmNfB,H?<?<HlN8PHl?<N|\`?<-RG0 n /N \J@f`Bg0 n /?<NN@P l`0 n /NX|(HlHlHlHlHN,(H?NrT0<9@D9@F)|@HlHNXJ@g HlN4XB,(?<?<HlNbP?<ONT lSn0. @nBgNTLN^NuNVH0A&H$nfB`RH?NTTfA$HS`.H|\f R KB`&`H|:fR K\R KB` S fBL N^NuNVH?<?< HlNPBg .&@/?<=NP> @lHlN8X0<`j`H?NT?NTf?<?<HlNJPBgHn/<??<?N <?HnN"P Fn??<>NbX0<LN^NuNVHBD` nR0.gH?NT`0,Df: ,@R@/HlHl,N BE`0REA,H?NT Em9|DH| f0<,*2,FH*HAABE` ?< NTRE0Fm0lF`lH| fH?NnTBlD`PH| gH| gH| m&H|~nRlFH| g H| fBlFH?NTRD0n mLN^NuNVH. l(`.gHl?<NJ\B.Hl?<N8\HlNXHl?<N \Hl.NXHl4?<N\?<?<?<N\?<NTH| g H|fHl6?<N\H|f ?<NT,(H?NTH??<NJXJg4LN^NuNV?`Hl:?<Np\HlJNXHlT?<NX\Hl|NXHl?<N@\?<?<?<N\?<NTH| g H|fHl?<N\H|f ?<NTBg?<NxXJg^>N^NuNVHl?<N\HlNTXHl?<N\`?<?<?<N.\?<N@TH| fHl?<Nv\?.NTN^NuNV/ &n?<?<?<N\?<p?<?<N\/ ?<N.\?<?<?<N\?<q?<?<N\&_N^NuNVH>.&n `H???<Nx\fLN^NuNV. g*Hl?<N\HlH?<N\Hl?<N\n (N^NuNV?.NT nn0<`?.?<>N X9@g0<`0<N^NuNV nam nzn 0.| ``0.N^NuNVHl/.NPJ@g`Hl/.NPJ@gNHl/.NnPJ@g n(g nf. n-P n(f HnNX` HnN>XA-H/./. 0.A PNPLN^/W DNuN^NuNVH nB fB`м8 LN^NuNVH n$fBCB`nD6< f႖|NzN^NuNVH0&n$n Bn-J @A)X)X A  BEG>O|g|JGn|m` REHl / NRPO`SEHl / NPO`&0+H@JGgDG0<0dR@0.BAQ,>QQֆG|0QB`Rn0.g$nB`0R 2.HmB`d .6.HЃR$@ nH|0fRZ"H|9o R"` nH|0f$n R&@g`SE .6.HЃ @B n0L N^NuNVH0&n BnH|bf=| RH|rgH|wgH|ag <`R ,$@ f*At$H`0* |f` At"Ҽm At"Ҽm <`BBj Bn+H|+f =|j H|wf?./.Nf\>j `hH|afB0<n?/.N*\> @f?./.N(\>?<B?N Pj `0.n?/.N\>j Gf Bj <`<5G Bj <$%@-J?<B?* NP n!@ n1lr L N^NuNV)n/.NX/. /.N@PN^NuNV`H0BnBnBB9| nRH|=@ .&@$@BG`TH| g(H| gH| gH| g H| f0.f0.gBnB` `H|"f< nfBn`*0.f 0.f=|0,RlA` `"`H|'f: nfBn`*0.f 0.f=|0,RlA` `'`r0.fj0.fd=|H|f. R @H|>f T-@=|` R-@Bn`0,RlA`  R0RG0nmB .g,At H1| At H1|HltHl/.N .g2A H1| Hl0.gA `A //.N 0,R@H/?<HN8\)@><`0A` 2 l RG0lm l 0, lBL N^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN -@?<?.B?<BN -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN ]|9@g <` `Bl . N^NuNV/.?<HN\N^NuNV/.?<IN\N^NuNVBn`60.A0f"0.A00.A0 ` Rn nLmN^NuNVBn`&0.A0nf0.ABPRn nLmN^NuNV?>.=|0A"HPgXHf0(>N^NuNVHl/.NPJ@f =|`Hl/.NPJ@f =|`Hl/.NnPJ@f=|`f0. |g0/.NXJ@g0<``Bg/.?<NhX0. |?/.?<=NPP=@9@ @l0<`0. | ??.N~X0.N^Nu)I)J)_NM"l$l/,Nu)I)J)_NA"l$l/,NuNVH&n Bn0.|dg`>< `.`|ug`>< ``|og`><``|xg`>< l* ndf SR- .D-@`0. f Gf .`& Gf .` ./0H/NX 2.RnA0 Gf .`( Gf .` ./0H/NN X-@ .fp0.gHSn0.A P m0.A0| |A`0.A0|0 SR`LN^NuNVH&n n f=| A)X)X Hl Hl?<N]|@0. R@?HnHnHnN.g SR-.H|0f.f SR`J nff>.n RG0lo0,`0> Gl0<`0?HnHnHnN4BF0g" nm0RFA SRSGSn` nm SR0Sn`0. g SR.0. g nl SR0RnSn `0. Sn J@g$ Go0RFAH`0<0 SRSG``` SR0. g SR.><0. Sn J@g0RGA SR` SRE?.Hl/N: /NXHѓLN^NuNVBn n PH|0m4 n PH|9n$0. n PHC|0=@ nR`0.N^NuNVH0&n -n @$PXgVgH|%g nR`H|%f,RBn=|Bn| H|-f=|RH|0f|0R-JHnN"X=@$nH|.fR-JHnNX=@$nH|lf=|RgH-n Gdg Gog Gxg GufB0.g @ ` @0H/Hn?.?NT 0.g0<`0<H` Gcf R @ nRT` Gsf4 @-PX<.` nR nRSF0g nf`J Geg Gfg Ggf, @A)X)X /, /,Hn?.?NP` 0 nR .nl0.g$<.".A` nRSF0f`b .2.SAHЁ-@-@,.` .2SAHЁ @ nSSF0f .n nR` .R-@` nB .L N^NuNV/. HnNhP=@/.HnN8P0.N^NuNVHnHlNPN^NuNVHn /.N&PN^NuNV ng/. nRH?N\`N^NuNVH0&n$n `RRg HHAgHHCL N^NuNVH0&n$K`Rf L N^NuNV/.?<AN\9@g0<``0<N^NuNV0. Sn J@g6 nH| f?< ?<NX nRH??<N~X`N^NuNV0. Sn J@g nRH??<NPX`N^NuNV0. Sn J@g nRH??<N"X`N^NuNVH0&n $KA-H nf?./ N4\=n`H nf?./ N`\=n`* nf?./ Np\=n` -KBn?.NxTJ@f ndH| f |o@ H-@/./.?.?<@NN 9@Hg0<`0,n/./<?.?<@N 9@ @g0<`hRnR -@`R``` 6.ƼЃ$@ H-@/./.?.?<@N =@9@Hg0<`Bl0.L N^NuNVH$.f BB`J". BnJlVnDJlRnDvd`Bbd nmDdD-@-A LN^Nu9|*|(Ct"2"2 2"2"2"22"2"2"22"2x9|r)l )l$)l)l)l9|CA"A"A"A$"A*"A"A ")|NuvPrint, Copyright LORICIELS Octobre 1986, auteur: Eric Lvnez Usage: print.ttp [-] Noms Si '-', tabulations de 4, sinon 8 -@CBN%s%.14s[ok] [erreur] %6lu [erreur] Appuyez sur RETURN pour continuer imprimer, sinon appuyer sur ESC Appuyez sur RETURN ds que l'imprimante est prte, sinon ESC Appuyez sur RETURN pour sortir Impression de '' ... CON:AUX:PRN:@$??rawCON:AUX:PRT: %d  `'j N6NN VNN nNN N N%6*O*m - ЭЭм!"ҍ¼.A// Bg?<JNA m"m -So Q m -SBQ(m)M*mN0 lHhNX/,?,N\?<N?<A?<NAXNuNVH|Hl?<N\ ngd ngZHlDNXHllNXHlNXHlNXHlNXHlNX?<?<?<NF\?<NTT n /( n /(N PJ@f(Hl8NX?<?<?<N\?<NT nfHlX n /( N XPJ@gHl\ n /( N @PJ@f 9|`jHl` n /( N PJ@gHld n /( N PJ@f 9|`0 n /( HlhNP?<?<?<NX\?<NfT n /( n /(HlHlNHl?<N\?< n /(N6\9@ @l?, n /(N\Bg n /(N\9@ @l$9l?,NT?, n /(N\0,g n /(HlHlN0 :` n /(HlHlN :?Hl?,N P @lN.Hl?<N\HlNTXHl?<N\`?<?<?<N\?<NTH| fHlNX?NnT>N^NuNV/ &n?<?<?<N^\?<p?<?<NL\/ ?<N.\?<?<?<N.\?<q?<?<N\&_N^NuNVH>.&n `H???<N\fLN^NuNVH&n>. HlNNX Gl0`0<9@/ N(X?<?<?<N\?<NTLN^NuNVH>,DG&| Gm*0lpn 0Ar Pg0Ar&P f0D@?HlAH &@/N / /.HlN LN^NuNV?.NT nn0<`?.?<>NX9@g0<`0<N^NuNVHl/.N0PJ@g`Hl"/.NPJ@gNHl(/.N PJ@g n(g nf. n-P n(f HnNX` HnN>XA-H/./. 0.A PNPLN^/W D0NuN^NuNVH nB fB`м8 LN^NuNVH n$fBCB`nD6< f႖|NzN^NuNVH0&n$n Bn-J @A)X&)X*A & *BEG>O|g|JGn|m` REHl@/ NRPO`SEHl@/ NPO`&0+H@JGgDG0<0dR@0.BAQ,>QQֆG|0QB`Rn0.g$nB`0R 2.HmB`d .6.HЃR$@ nH|0fRZ"H|9o R"` nH|0f$n R&@g`SE .6.HЃ @B n0L N^NuNVH0&n BnH|bf=| RH|rgH|wgH|ag <`R ,$@ f*A$H`0* |f` A"Ҽm A"Ҽm <`BBj Bn+H|+f =|j H|wf?./.Nf\>j `hH|afB0<n?/.N*\> @f?./.N(\>?<B?N Pj `0.n?/.N\>j Gf Bj <`<5G Bj <$%@-J?<B?* NP n!@ n1l L N^NuNV)n/.NX/. /.N@PN^NuNV`H0BnBnBB9| nRH|=@ .&@$@BG`TH| g(H| gH| gH| g H| f0.f0.gBnB` `H|"f< nfBn`*0.f 0.f=|0,RlA` `"`H|'f: nfBn`*0.f 0.f=|0,RlA` `'`r0.fj0.fd=|H|f. R @H|>f T-@=|` R-@Bn`0,RlA`  R0RG0nmB .g,A H1| A H1|HlHlB/.N .g2A H1| Hl0.gAD `AF //.N 0,R@H/?<HN8\)@><`0A` 2 l RG0lm l 0, lBL N^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN -@?<?.B?<BN -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN ]|9@g <` `Bl . N^NuNV/.?<HN\N^NuNV/.?<IN\N^NuNVBn`60.A0f"0.A00.A0 ` Rn nLmN^NuNVBn`&0.A0nf0.ABPRn nLmN^NuNV?>.=|0A"HPgXHf0(>N^NuNVHlH/.N DPJ@f =|`HlN/.N (PJ@f =|`HlT/.N PJ@f=|`f0. |g0/.N FXJ@g0<``Bg/.?<NhX0. |?/.?<=NPP=@9@ @l0<`0. | ??.N~X0.N^Nu)I)J)_NM"l$l/,Nu)I)J)_NA"l$l/,NuNVH&n Bn0.|dg`>< `.`|ug`>< ``|og`><``|xg`>< l* ndf SR- .D-@`0. f Gf .`& Gf .` ./0H/N :X 2.RnA0 Gf .`( Gf .` ./0H/N X-@ .fp0.gHSn0.A P m0.A0| |A`0.A0|0 SR`LN^NuNVH&n n f=| A)X&)X*HlZHl&?<N]|@0. R@?HnHnHnN.g SR-.H|0f.f SR`J nff>.n RG0l2o0,2`0> Gl0<`0?HnHnHnN4BF0g" nm0RFA SRSGSn` nm SR0Sn`0. g SR.0. g nl SR0RnSn `0. Sn J@g$ Go0RFAH`0<0 SRSG``` SR0. g SR.><0. Sn J@g0RGA SR` SRE?.Hlb/N: /NFXHѓLN^NuNVBn n PH|0m4 n PH|9n$0. n PHC|0=@ nR`0.N^NuNVH0&n -n @$PXgVgH|%g nR`H|%f,RBn=|Bn| H|-f=|RH|0f|0R-JHnN"X=@$nH|.fR-JHnNX=@$nH|lf=|RgH-n Gdg Gog Gxg GufB0.g @ ` @0H/Hn?.?NT 0.g0<`0<H` Gcf R @ nRT` Gsf4 @-PX<.` nR nRSF0g nf`J Geg Gfg Ggf, @A)X&)X*/,*/,&Hn?.?NP` 0 nR .nl0.g$<.".A` nRSF0f`b .2.SAHЁ-@-@,.` .2SAHЁ @ nSSF0f .n nR` .R-@` nB .L N^NuNV/. HnNhP=@/.HnN8P0.N^NuNVHnHlNPN^NuNVHn /.N&PN^NuNV ng/. nRH?N\`N^NuNV nf:0,vltf0<9@t9@v0<g?<N T=@ nf*0,vg Slv?<?<NX?<D?<NX` n f00,vRlvAx ?< ?<NX?< ?<NX`r nf ?<N^T nf20.2,vRlvAx?< ?<NbX?< ?<NTX`&0.2,vRlvAx?.?<N0X`AxtH|f0<`0,tRltAxH`` nf?<NT``0"A@"AB"AD"AF"AH"AJ"AL"AN"AP"AR"AT"AV"AX"AZ"Az"A"A"A"A"A"A"A "A."A0"A2"A4"A6"A8"AX"AZ"A\"Ar"At"Av"Ax"Az"A|"A~"A"A"A"A"A"A"A"A"A"A"A"9|CpC"2"2 2"2"2"22"2"2"22"2x9|)l.@)l2D)l6<)l:4)l>89|2C A"A"A"A$"A*"A"A ")|9|v9|tNuvTrans, Copyright LORICIELS Octobre 1986,  auteur: Eric Lvnez Usage: trans.ttp source dest [-m|-p] source : fichier source dest : fichier destination -m : lignes du type 'dc.b' -p : lignes du type '.dc.b' Par dfaut lignes de donnes type C trans: source <> destination -M-m-P-ptrans: Option %s inconnue Conversion de '%s' en '%s' ... * Fichier : '%s' /* Fichier : '%s' */ 0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x ,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x dc.b $%x,$%x,$%x,$%x,$%x,$%x,$%x,$%x .dc.b $%x,$%x,$%x,$%x,$%x,$%x,$%x,$%x dc.b .dc.b ,$%x$%x0x%x,0x%x trans[ok] Appuyez sur RETURN pour sortir [erreur] Aucune erreur dtecteErreur fondamentaleLecteur non prtCommande inconnueErreur CRCMauvaise requteErreur positionnementMdia inconnuSecteur non trouvPas de papierErreur d'critureErreur de lectureErreur gnraleEcriture protgeChangement de mdiaPriphrique inconnuMauvais secteur au formatageInsrez un autre disqueNumro de fonction non valableFichier non trouvNom d'accs non trouvTrop de fichiers ouvertsSaisie impossibleNumro de rfrence non valableMmoire insuffisanteAdresse du bloc mmoire non valable Mauvaise description du lecteurPlus d'autre fichierErreur de rangErreur interneFormat de chargement du programme incorrectErreur sur setblockErreur inconnue numro %d trans: %s: %s. CON:AUX:PRN:@$??rawCON:AUX:PRT: %d `(Hy?< NA\a|:p/aapLDp/aadDPr lDp aaRr l<p:aaDLDp:aa8LD?<NAT f??<+NA??<-NAPHy?< NA\BgNABDaaNu?<NAT gB 0e 9b0 H@@aNu?<?<?<NM\`??<?<NM\NuP`e jj/mm/aa hh:mm:ss lDate entre. z` o,<ܨ ܨ*(b~pA g g0k n @eX`JGf>9H8p A2<HgHD0HDQ3P(OGAuO ᬸcHy?< NA\?!~r09ᩃNu09og y6N <BNu09og y:N0/ Hr o2/ g8SACb0/gI/ fp QQpNu0<QQ`09og y>NpNu<RAM disk A: V1.0 K activ. RAM disk NON activ. p 8       J E`@  o((ATp 2<HgHD0HDQHy@?< NA\BNAMmoire libre = K octets. "~u` H o,<ܨ ܨ*(~ A g g0k n @e8`JGf>9 H8p A.2<HgHD0HDQ᯾c/<:?< NA\?JXfjF'"x3#!0"9fz9fpaF"x/?!Ns `f*Jhf$p"9a gpNsRerNu yNA@@ @pNuagAQ#p`t xpF#fԱbp`RH"9galAQ0at#LNsSpooler V1.0 K activ. Spooler NON activ. N $B0 2   v