8L2C)pJJJJ IH(ȱH:=IH[H`@HcH  $ +   I/H`JLNGȄBȄF aK  haaFF  mJm# KKJ UJ )J ۈ) ;J3ȱJFȱJGJKaȄM  aaNNJFLGJL L? &PRODOS `DaElH$?EGvѶK+`L HHLy XP LM ŠϠĠӠS)*+,+`F)) (*=GJFjJJA QE'+ '== `@ STSP8QSS8 m P o R(8RWORK.DISK~.k8'@FINDER.ROOT ~p~'PIC2BADH;ll)PIC1MIXEDAm m &PIC1OKAm m ZTEST01.ASMoy+ )TEST.ROOT||(TEST.MACt-w $TESTt~FINDER.DATA"v% p~-/PICSIGNED.TEST16A|8 t9ZTEST04.ASMo{/PICSIGNED.TEST2A|/|2XTEST.ASMo|ZTEST03.ASMo{)PICRYPTED'#bB| ~)PICSIGNED A|0|5$IMG1MA}}(DUMP.PAL}}&IMG1OKA}&}&DUMP.PAL}-}-?* ݽܽۻ ݽݼܻ ݻݽݽ뻻 ۫۽ܼ콻ۻ˻ۻ ݻͼͻ۽˻ۻ ۻۻ뻻켺ܻݻۻ ݻݻۻڻܻͭ۫ۻ ۽ۻͼ̽ۻ뻻ۻݽݺ ݻ˼۾ν뻻뻽ۻ۽ݽ۫ ݻ˻̫λ뽻뽼ۻ˼̻뻻ۻۺ ˫ݻ̻̾뻻ۻξ˻ګ˻ ʻۻۻ˻뻻뺻뻻ۻݺ̻ ˻̻뻻뻻뻻ݻ˻˻ ˻ۺ̻λ뾻뻻ۻݻ̻˻ ̻۽ۼ̼λ۾˻̫껻̻ ̻ͼ̻뺻뺻˽۽̼̻ ˻˭؍޻뻺ۻ̻̻ ̻̾Ȍببۻ̻޼؍ؼ̼̎˻뻻 ˼̾컸ۼλ̻芍؈Ȍ̻ ̾˺츈ۻ޻˽興˼˾뻻 ̽؈˸̻ʻ޻ ̼̫̼˻뻻 뻻̼̈˻˻ ˻ۻǻ興ʻ˻̻ ˻̼ȸ˻뻻˻ ̻ʻ̾x˻̼˻ ˻̻˾興컻˻ ̻ʾ̼ww̻̻̻ ̻ηw̻˻̻ ܻwwx컻뫻뻾 ͻww̻뻻vwwx{̻뻻뻻̶7wwxxw˻뻾뻻뻻̶gwwxw{˻˻˾ݼĶfwuW{ܻ 뻻뻾뻻˻̶gwwww|뼻 ˴fwww{k޻ 뻻˻ҵVfwwxxw{k뻻˻ ̻RUVcwwxww;m̻ ˻RUVfgwwxxwwvfe˻뻰 뻻뻻˾RUVfwvwxwgwfe뮻˻뻰 뻻˻UUVvgwwxwwvge^뼼ܻ뻻 뼻˻"UUVfewwxwwVfe]˻뻻 ˻%UVffwwxwwffeU˻̬"UUVVfwwxwwfee[̻뻻뻻뻻%UfgfwxxwwwfvfU˻뻻뻻C5FVVfgxxvfeedݻ,1FfVfwwxxwxwxxwwfefdۻ "56Vffgwxxxwvffel˻ "26ffvwwwxxxwwwgffc#̻ !"%VefwwxxxxxwwfVeR" !2&ffgwxwwwwwxwxxwvffb,# "2!%efUwxwxwwUfVR#* 뻻#!FfgUWwxxxwuUvfd2A뻻 뻻"2VeVt'vxxxxxgrGeVe#!"뻻 뻻뻼56Vef&WXxxxxxubfVecS1! 뻻A"5Vff5fghwxxxxwvfSffeS"!˻뻻뻾뻻 뻻35SUf5UVfxxxwwwxwxhxfeUSfU5S3뻻 뻻뻻335VSafffh5X8hhwwwwxwwwwxSfffai5eS33뻻뻾뻾 ˻B33TaQfaffwffVfUX6fxxwwhhfchhUfeffwfaffE33뻻 ˾33UfaQ%f&&VffeUeXhhhhhxffhVUVffebbfRQfU33˼ ˼!3336QV"Vb&eVffhU66hffhXXffccUffeVb&e"eac333뼻 ˻!C335b%fUefffSVfff6fh8fc8hhhfffe5fffVUfR&QS334˼ 33SR%QUTVfwveWffdfhhfX8ffFffuVgwfeElUR%QQ533컼 ̾333S2UUfeUwwwgffvgfffff8fffvgffvwwwUVfUYQU#5333!˻뻻 ̻!"333UEQdUfgwwwwwvvvvfVVeefggggwwwwwvfUFQTU3331"̻뻻 쾱335UTUDDdUfgwwwwwwvffffffgwwwwwgwwFfdMA$EUUUeR!뻻 ̻!33eUUQ"""U3DffgxwwwwwwwwwwwwwwvfedMEUUUU1!뻻 ˾˱"UeUUQD"MDffGwwgwwwwwwwwwwwwwwwwwgwwFfdMA$EUUUeR,˻̻뻻뻻 !5UUUUDDeffwwwxxwwwvfedMEUUUU1,˼˾뻻 !5UUUKAUUU1,˻뻾 뻻ξ!5UU˻˻̻UU1,Ϋ뻻 ʻ켱"5U]̻UUffe4wwwwwwCUffeURܻUU2!컻 ˻5-xvfV$˻UdeUU5UUSUUUdeU̻&Vfvx%1λ̻ ̻"gwwefeT"Ue3FffbffeSe\$Ufegwwb-˼μ뺪 ˻,"fveUUS4"33Fffbffc1ha>t  hp0   _TLStartup ; Tools Locator on _MTStartup ; Miscellanous Tools on PHA _MMStartup ; Memory Manager on Pullword MyID PHA PHA PushLong $100 ; direct Page memory request PushWord MyID PushWord #$C005 ; locked, fixed, aligned, fixed bank PushLong #0 ; bank 0 _NewHandle ; Direct Page PullLong DeRefLoc ; LDA [DeRefLoc] ; PHA PLD ; direct Page Register PEA MSG1|-16 PEA MSG1 _WriteCString ; 0? MAINK""H"hI HHHHIH "hhH+QQ ""TFF " "TjlIH "AhFF " "nnrr"lF MACRO&lab _TLShutDown&lab ldx #$0301 jsl $E10000 MEND MACRO&lab _TLStartUp&lab ldx #$0201 jsl $E10000 MEND MACRO&lab _DisposeAll&lab ldx #$1102 jsl $E10000 MEND MACRO&lab _MMShutDown&lab ldx #$0302 jsl $E10000 MEND MACRO&lab _MMStartUp&lab ldx #$0202 jsl $E10000 MEND MACRO&lab _NewHandle&lab ldx #$0902 jsl $E10000 MEND MACRO&lab _MTShutDown&lab ldx #$0303 jsl $E10000 MEND MACRO&lab _MTStartUp&lab ldx #$0203 jsl $E10000 MEND MACRO&lab _PackBytes&lab ldx #$2603 jsl $E10000 MEND MACRO&lab _QUIT ¶ms&lab jsl $E100A8 dc i2"$0029" dc i4"¶ms" MEND MACRO&lab _ReadChar&lab ldx #$220C jsl $E10000 MEND MACRO&lab _WriteCString&lab ldx #$200C jsl $E10000 MEND MACRO&lab pulllong &addr1,&addr2&lab ANOP AIF C:&addr1=0,.a AIF C:&addr2=0,.b LCLC &C&C AMID &addr1,1,1 AIF "&C"="[",.zeropage pullword &addr1 sta &addr2 pullword &addr1+2 sta &addr2+2 MEXIT.a pullword pullword MEXIT.b pullword &addr1 pullword &addr1+2 MEXIT.zeropage ldy #&addrU,C ~ExpressLoadU ,E 0E K""H"hIHHHHIH "hhH+Q ""TF " "TjlIH "AhF " "nprt"lF " "Hnmessage intro + open image JSL $E100A8 ; ProDOS16 entry point DC I2'$10' ; commande OPEN DC I4'OpenParms' ; parmtable pour OPEN BCC s1 ; open OK ? BRL Error ; sinon erreurs1 PEA MSGOK|-16 PEA MSGOK _WriteCString ; OPEN OK PEA MSG2|-16 PEA MSG2 _WriteCString ; message allocate memory LDA refnum STA refnum2 ; pour close STA refnum3 ; pour read PEA $0000 PEA $0000 ; push longword for result PEA $0001 PEA $0000 ; push size = $10000 (128ko) LDA MyID PHA ; push ID PEA $C000 ; attributes for block PEA $0000 PEA $0000 ; location (0=default) _NewHandle ; allocation memoire BCC s2 BRL Errors2 PLA PLX STA HandleBuffer STX HandleBuffer+2 PEA MSGOK|-16 PEA MSGOK _WriteCString PEA MSG3|-16 PEA MSG3 _WriteCString ; message read file LDA [HandleBuffer] STA Buffer LDY #2 LDA [HandleBuffer],Y STA Buffer+2 LDA #32768 ; lecture image complete STA NbBytes LDA #0000 STA NbBytes+2 JSL $E100A8 DC I2'$0012' ; commande READ DC I4'ReadParms' BCC s3 BRL Errors3 PEA MSGOK|-16 PEA MSGOK _WriteCString ; lecture OK;...............................................................;encryptage + package;............................................................... PEA MSG5|-16 PEA MSG5 _WriteCString ; message Packing PHA ; result space PEA Buffer|-16 PEA Buffer PEA Size|-16 PEA Size ; adresse WORD contenant size LDA Buffer CLC ADC #$8000 ; calcul adresse output buffer STA OutBuff STA VDF ; on garde le buffer (lo) pour la suite LDA Buffer+2 ADC #$0000 STA OutBuff+2 STA VE1 PHA ; output buffer (hi) LDA OutBuff PHA ; output buffer (lo) PEA $8000 ; output buffer size _PackBytes BCC s4 BRL Errors4 PLA TAX AND #01 BEQ T1 INXT1 TXA STA VD1 ; nb packed bytes STZ VD3 CLC ADC #$20 ; on ajoute 32 octets avant sauvegarde STA WriteSize ; sauve nb b $F " "Hnnni߭niHH&"h) "ႝdi FF ""j "ѢHߦ">hņh0h ץхѥעHߦ">ChņǠ I!C٧EهץעŰ2 pullword &addr1,y ldy #&addr2+2 pullword &addr1,y MEND MACRO&lab pullword &SYSOPR&lab ANOP pla AIF C:&SYSOPR=0,.end sta &SYSOPR.end MEND MACRO&lab pushlong &addr,&offset&lab ANOP LCLC &C LCLC &REST&C AMID &addr,1,1 AIF "&C"="#",.immediate AIF "&C"="[",.zeropage AIF C:&offset=0,.nooffset AIF "&offset"="s",.stack pushword &addr+2,&offset pushword &addr,&offset MEXIT.nooffset pushword &addr+2 pushword &addr MEXIT.immediate&REST AMID &addr,2,L:&addr-1 dc I1'$F4',I2'(&REST)|-16' dc I1'$F4',I2'&REST' MEXIT.stack pushword &addr+2,s pushword &addr+2,s MEXIT.zeropage ldy #&offset+2 pushword &addr,y ldy #&offset pushword &addr,y MEND MACRO&lab pushword &SYSOPR&lab ANOP AIF C:&SYSOPR=0,.b LCLC &C&C AMID "&SYSOPR",1,1 AIF ("&C"="#").AND.(S:LONGA),.immediate lda &SYSOPR pha MEXIT.b pha MEXIT.immediate LCLC &REST LCLA &BL&BL ASEARCH "&SYSOPR"," ",1 AIF &BL>0,.a&BL SETA L:&SYSOPR+1.a&REST AMID "&SYSOPR",2,&BL-2 dc I1'$F4',I2'&REST' MEND!%ni߭piHH&"h) "ႝdi F ""j "ѢHߦ">hņhh ץхѥעHߦ">hņǠ I!C٧EهץעŰHߦ">hņǧIͫѥхץעHߦ">hņǧ I!C٠EٗץIF " ""z":j"F ""jK " "H ""IH"ytes packed pour WRITE STZ WriteSize+2 ; (hi=0) PEA MSGOK|-16 PEA MSGOK _WriteCString ; Packing OK JSL $E100A8 DC I2'$0014' ; commande CLOSE DC I4'CloseParms' PEA MSG4|-16 ; Message Encryptage PEA MSG4 _WriteCString ;; debut double encryptage par EOR; phase 1 : descendante LDA #$ABCD STA VD9 LDA VD1 STA VD7Boucle1 LDA VD7 LDX #0000 CMP #0000 BPL suite1 DEXsuite1 PHX PHA LDA VDF LDX VE1 JSL ADDITION PLA PLX STA VC5 STX VC7 LDA [VC5] EOR VD9 STA VD9 LDA VD9 STA [VC5] LDA VD9 ASL A STA VD9 LDA VD9 EOR #$4321 STA VD9 DEC VD7 DEC VD7 LDA VD7 CMP #0000 BEQ suite2 BRL Boucle1; phase 2 : ascendantesuite2 LDA #$EF01 STA VD9 STZ VD7Boucle2 LDA VD7 LDX #0000 CMP #0000 BPL suite3 DEXsuite3 PHX PHA LDA VDF LDX VE1 JSL ADDITION PLA PLX STA VC5 STX VC7 LDA [VC5] EOR VD9 STA VD9 LDA VD9 STA [VC5] LDA VD9 ASL A STA VD9 LDA VD9 EOR #$4321 STA VD9Hߦ">'hņǧIͫѥхץעHߦ">-hņǧ I!C٠EٗץIFF " ""z":j"FF ""jKK " "H ""I H"IH"""")K INC VD7 INC VD7 LDA VD7 LDX #00000 CMP #00000 BPL suite4 DEXsuite4 CMP VD1 BNE suite5 CPX VD3suite5 BEQ suite6 BRL Boucle2; fin encryptagesuite6 PEA MSGOK|-16 PEA MSGOK _WriteCString ; OK encryptage PEA MSG6|-16 PEA MSG6 _WriteCString ; Message Sauvegarde JSL $E100A8 DC I2'$0001' DC I4'CreateParms' ; commande CREATE JSL $E100A8 DC I2'$10' DC I4'OpenParms2' ; commande OPEN BCS Error LDA refnum4 ; ref du file ouvert STA refnum5 ; pour write STA refnum2 ; pour close LDA OutBuff STA WriteData LDA OutBuff+2 STA WriteData+2 ; Buffer Write JSL $E100A8 DC I2'$13' DC I4'WriteParms' ; commande WRITE BCS Error PEA MSGOK|-16 PEA MSGOK _WriteCString ; Save OK JSL $E100A8 DC I2'$14' DC I4'CloseParms' ; commande CLOSE BRA FinError PEA MSGERROR|-16 PEA MSGERROR _WriteCString Fin ANOP PEA MSG99|-16 PEA MSG99 _WriteCString ; message fin PHA ; space for result PEA $0000 ; pas d'echo _ReadChar PushWord MyID _DisposeAll ; menage ! PushWord MyID _MMShutDown ; Memory Manager off _MTShutDown ; Miscellanous Tools off _TLShutDown ; Tools Locator off _Quit QuitParams BRKADDITION CLC ADC 04,S STA 04,S TXA ADC 06,S STA 06,S RTL MyID DS 2 QuitParams DC I4'0' DC I'0000'MSG1 DC C'Resolution DEFI GS ON IH"""")KcckResolution DEFI GS ON THE ROCKS 4 v0.5Ouverture Image : Allocation memoire : Lecture Image : Encryptage : Packing : Sauvegarde Image Packed et Encrypted : ERREUR : taille image packed non paire !Appuyez sur une touche pour quitter...OKERREUR !^ 1/PICSIGNED 1/PICRYPTED}Q b b s s 1R !1 1'Hdq{~$*0Mcfl EQ#"$g*B FINDER.ROOTPIC2BADu PIC1MIXED5BPIC1OK5 TEST01.ASM5 TEST.ROOTUBTEST.MACUTEST FINDER.DATA5PICSIGNED.TEST1uB TEST04.ASMUPICSIGNED.TEST25TEST.ASMU TEST03.ASMU PICRYPTED PICSIGNEDuIMG1uDUMP.PALuIMG1OKcckResolution DEFI GS ON THE ROCKS 4 v0.5Ouverture Image : Allocation memoire : Lecture Image : Encryptage : Packing : Sauvegarde Image Packed et Encrypted : ERREUR : taille image packed non paire !Appuyez sur* une touche pour quitter...OKERREUR !^ 1/PICSIGNED 1/PICRYPTED} Q b b s s 1R !1 W{&P8VzaFnFF nJiFFFK()*+,-./012345wxyz{|}~KLT8AAAAAAgd@ 厐֣@ 厐֣@ 厐R֬r] )ј+ +2j!0"KTeUEN?;E#D"KTuK5Qs)*5ݮѻ(?X5@ 厐R֠V.׆G9Ib-7 A䎐T֟s2E&ٱ!()1ԥ8fQD"KTmuX~B>vⅹ2s$TP{n3! G!0"KTmF>ӻ1Y"+2e?.ζ#iÞD"KTuE|'R'Մ MO?P?mfȒi. 4}c3E@ 厐HֹO# OƜ՚/ds\zTn>ΐB1ܳy CTD"KTVul5cE!`N4lu*0bQ^A&k2?-'I5bQD"KTTukd>+rå MpN ѤǗ䎐H֟Uu մ-7ꊴ_h嶅?/PUq9P3cb;C3!0"KTZ{dz kTKPZ/pP;`QD"KT{u vJv{=5`V^2tM+;Ф(D;X1"&%\ 厐Lw7𴠙* P,m<9GDD"KTuZ^_Kư!rݠ|UXD"KTuS=8x8PpB5p+E2&Y3@ 厐L?r{xݴ JRsx}^=ۖD"KTuSQ #hYѬJd=.y]ڒҸx B;SJ׌ڌ˴6ͣk^վ7"xxrc n?^шuKIymL(^ȩrrhbدyNΕmʕ~Y[[r\هyxd瞑"DȘ^l>ha]уqhriyDsr1R'j]pv y`wyҲTVD l EsҮxBrzuH0[TKvseuy҄E7ڞtAB´jscrhtLRb*jZ2 F_OӤLa2^DsirbB[^ G5m<^ޮEsخcQқn""?/Tt?xyҴ~XB^p>Et⩨3ȥɴ_=YKSasM ®D"KTB߁Jm䵿[EO]6. ђaw䎐Jas?f{e=ē8q5/eG~P`2Ǘ䎐L։?bs,7,x$'L=ik}nQD"KTuIg,>$0'+ $M~b35`7a"4 U>psɥ7Y[8N?X0a{|(Fl3{Dѕx8"ϞSwsN+i(mD7" _.Y Phr Al=oDh>O^}byxҾȾhȮxDsr445 MS, !5 {}ցD6񮧴xiyVhpr;Ȯ;H~ɾɥyɤiicycc]7ƚG).=50̌05==(m3q´=Np>Xt:"ԀXDnȿrؾbäcxhy®rΥLo*5005. [ush&rDriycicyɤiɥy-Vn B0xS"pfîصBvZцP tЂBhC:(7brҮxrirLuh%$\#랐5V9*:k˺ 35P!P!@ 厐L?|/"$.;1D_0N ~ 2]<hK~XD"KTuQV4byl-B-7HEH>g-5^}H&+\ 厐NFG fm3:Z3M͎Z5q; Zsiy!cIS@.{&bV ']9R~ *5˜٦7΋;8EysLqj8t:rDhD>sis!љђfydV $ln0P}q7XxUycbhHn;rX[Ԯ>sisۙ䏒3Cu(^e$b2=1 t :L; C| |PQIخcchHn;Ȯh:X>sis1s~c,02~OJLp54$6&yrG0UW^w Vyz ^ MjCцxq;CSS]F[*~fx'<8#RH8L"ϟzyey䘥b_v1>QXs@ 厐L֣&Q5 屸R:(&|dHju mƗdBS O="R 厐N1`|>3h: h&9 f?h,f}R֭PJzĻ ѽKD$̜cZtDnQD"KTv)O6`Y3-HeЪG*ٚӍjEʑ{sI]+жe.ZD"KT7uk<3նWNbcUqBL <xQq1pԇjW {P8)ps@ 厐Lַdwyˆ^.=+A]IT4zba #uZ%ˤ.Za'ݰ?ZD"KTua),դU9~ïigNb7&hA'P!WǯR,{cPkɦ8AZD"KT uAܥ7c7q.zi@~5MMu:MO(оrЄg5ͫ@A^6P)l:3!0"KTIuBQighz(d =$NK0 ~pǤR=7ͫ~ȸl<:ݳ!0"KTMuHU{Ea;ZPMص,MQM0= ,hcq4 ~Ys(aiy%P 厐NֶV<2A+wl9$dz 2_wo)^mΗ99+Ei-"91D"KTBc'p)Y oWML2 i2G+{o:Yz7S UAݾD"KT(uZk[Uأ*{9ugIԴ4.{@0oQ9F)$G9Wxe9li3!0"KTXu] K^gs,_yJ$V4m_d5B1 s䎐@֝s2ƒ(=xmB$3l&LdFw6=?8?M7&]c3%3D"Oۈ[uaZEEhUk+ J{ :N*[m0^B1zl`D.BZgfkjX67Jk{yz2xhDmytHtry?@3Qu,# $\Sl=_]s?*>ZP({iń4"s]Ym՞p*cɯsخch&j@-Ԓsoxäi:@3#uW>RzƸYAvZv?A]+:֚FB [f]"]y789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuv ݽܽۻ ݽݼܻ ݻݽݽ뻻 ۫۽ܼ콻ۻ˻ۻ ݻͼͻ۽˻ۻ ۻۻ뻻켺ܻݻۻ ݻݻۻڻܻͭ۫ۻ ۽ۻͼ̽ۻ뻻ۻݽݺ ݻ˼۾ν뻻뻽ۻ۽ݽ۫ ݻ˻̫λ뽻뽼ۻ˼̻뻻ۻۺ ˫ݻ̻̾뻻ۻξ˻ګ˻ ʻۻۻ˻뻻뺻뻻ۻݺ̻ ˻̻뻻뻻뻻ݻ˻˻ ˻ۺ̻λ뾻뻻ۻݻ̻˻ ̻۽ۼ̼λ۾˻̫껻̻ ̻ͼ̻뺻뺻˽۽̼̻ ˻˭؍޻뻺ۻ̻̻ ̻̾Ȍببۻ̻޼؍ؼ̼̎˻뻻 ˼̾컸ۼλ̻芍؈Ȍ̻ ̾˺츈ۻ޻˽興˼˾뻻 ̽؈˸̻ʻ޻ ̼̫̼˻뻻 뻻̼̈˻˻ ˻ۻǻ興ʻ˻̻ ˻̼ȸ˻뻻˻ ̻ʻ̾x˻̼˻ ˻̻˾興컻˻ ̻ʾ̼ww̻̻̻ ̻ηw̻˻̻ ܻwwx컻뫻뻾 ͻww̻뻻vwwx{̻뻻뻻̶7wwxxw˻뻾뻻뻻̶gwwxw{˻˻˾ݼĶfwuW{ܻ 뻻뻾뻻˻̶gwwww|뼻 ˴fwww{k޻ 뻻˻ҵVfwwxxw{k뻻˻ ̻RUVcwwxww;m̻ ˻RUVfgwwxxwwvfe˻뻰 뻻뻻˾RUVfwvwxwgwfe뮻˻뻰 뻻˻UUVvgwwxwwvge^뼼ܻ뻻 뼻˻"UUVfewwxwwVfe]˻뻻 ˻%UVffwwxwwffeU˻̬"UUVVfwwxwwfee[̻뻻뻻뻻%UfgfwxxwwwfvfU˻뻻뻻C5FVVfgxxvfeedݻ,1FfVfwwxxwxwxxwwfefdۻ "56Vffgwxxxwvffel˻ "26ffvwwwxxxwwwgffc#̻ !"%VefwwxxxxxwwfVeR" !2&ffgwxwwwwwxwxxwvffb,# "2!%efUwxwxwwUfVR#* 뻻#!FfgUWwxxxwuUvfd2A뻻 뻻"2VeVt'vxxxxxgrGeVe#!"뻻 뻻뻼56Vef&WXxxxxxubfVecS1! 뻻A"5Vff5fghwxxxxwvfSffeS"!˻뻻뻾뻻 뻻35SUf5UVfxxxwwwxwxhxfeUSfU5S3뻻 뻻뻻335VSafffh5X8hhwwwwxwwwwxSfffai5eS33뻻뻾뻾 ˻B33TaQfaffwffVfUX6fxxwwhhfchhUfeffwfaffE33뻻 ˾33UfaQ%f&&VffeUeXhhhhhxffhVUVffebbfRQfU33˼ ˼!3336QV"Vb&eVffhU66hffhXXffccUffeVb&e"eac333뼻 ˻!C335b%fUefffSVfff6fh8fc8hhhfffe5fffVUfR&QS334˼ 33SR%QUTVfwveWffdfhhfX8ffFffuVgwfeElUR%QQ533컼 ̾333S2UUfeUwwwgffvgfffff8fffvgffvwwwUVfUYQU#5333!˻뻻 ̻!"333UEQdUfgwwwwwvvvvfVVeefggggwwwwwvfUFQTU3331"̻뻻 쾱335UTUDDdUfgwwwwwwvffffffgwwwwwgwwFfdMA$EUUUeR!뻻 ̻!33eUUQ"""U3DffgxwwwwwwwwwwwwwwvfedMEUUUU1!뻻 ˾˱"UeUUQD"MDffGwwgwwwwwwwwwwwwwwwwwgwwFfdMA$EUUUeR,˻̻뻻뻻 !5UUUUDDeffwwwxxwwwvfedMEUUUU1,˼˾뻻 !5UUUKAUUU1,˻뻾 뻻ξ!5UU˻˻̻UU1,Ϋ뻻 ʻ켱"5U]̻UUffe4wwwwwwCUffeURܻUU2!컻 ˻5-xvfV$˻UdeUU5UUSUUUdeU̻&Vfvx%1λ̻ ̻"gwwefeT"Ue3FffbffeSe\$Ufegwwb-˼μ뺪 ˻,"fveUUS4"33Fffbffc1CwҽYz"$P$ccrxib2BԄ"vبicyPis\KVT(ŪCeG]U`Gޱ7uwhQD"KTu[۰")7'EMտCt[¤Oi%eDC)[pwCt#Tj^3'< 06uhQD"KTugW5-'&s^lOHOIL8(m~ev=F|F5_P w~?Ǘ䎐B  ".DLw2U1(^}NkBOՀl0xQ8Q?x D R$'d,|}[PWXǗ䎐B =k1P"[9g?^rBw*U81Ʃ JI'bdm\ žrIrFǓ[чOD =4p(ѧr yu?"3zL{8RhRl;8Zz,l<vK@Y5!Ox|ߘʞITuu 4,PP]ԑJtׂ вũN:)XWEFZnl+.bBdb;[ۡAy3{Jsٴhy в %hT-"W8e~Zry߽'!yeO[ By379prFj~ڍ?jĮ쨻 'Eu9dz k7ôxɥhySozֆ @̨'Ȯhky72e\+˃ŭ [ɧ =' J(ݘ%ԭ7g|RLxx"[60\51)*U Y'i;m95Q2cɵbr^ШB1Ȇo^²hUs?[gZjV8wڽ"a#(g&@c4wa`E^#=DiM e{OycɿtsTm^;D̨'Ȯszϋ3*+Ƹu2Vgh[\;67d$V<}KsT]j`Q# =T22a߮[k]rcӮɾr^̨B1Ȇoh&risLpVQ5 'tlF˪S~@`ìR[#'lt0%1 )G A9`jIpؔ&Ž^lr"Dm3yҮҵ>j߸;ĿUx |/ϒ!fȬu, \𠆶wXsLE/fYG*֌u%V 刚^9JoߺD'9lV?q9v*ل]mx(R}tAܫEu0t̻|m*(/o3?p.x%V 劐|\s4q;qM<4,?akی3cd1pSbGX|rE2-8[Y @Ӕ0xbYÐD"KT@umyQݶwT}S n23do謭Ϫ?lmGCp'UǪSh-tDJk--SwuK fV 7eV 厐@ց?_2`3$2N ,tbCGWyଡ଼y&_ϛbwy|~2uݯf-_ĿLD"KTru.TOxŸX uT(?Isr~ %C K&Z ͝ c~ɵɴMB|Tcth>E^l^ "olFHuH!tT)N ܏1WP_zY ˂iZ՜ (%jh Q2Urȥcsή$sDh;ȮB>ha]^wFʀұhzt^s1wl&(Ryʠ}9p-=Ti=bJʋV "g`%$n7:(EK2xo={sG>Ѻшy8Bt̞"B >hEӗzc3T>Z}ei'SY{/e`+ R)}2;Bޮ.E܏ <ʯ!B$L}}1Y&R2hf\v;\ n99Ja2{ŧ{\`jIpF7q%BȖBFVy%z.L\5.(a>?c 'Va'0_Y yp5 ݵ-0Ȃh &Q@֏73a%5e^e,[6pJRH;GyY26jd,ў)e:/.^`]D>۴U>^ߔ^NN?u/ L{VE>T(UCڹVң.SsЕNDɈDL 厐J־1Rbv#QX?>Ӊ'ޭ]2g(DLtpʍnŁcGtHua-Rc f[} lД0ӌvÐ> o, X&B0r瀲L9RVy [KC#F-s!}Oĥ] ÅLxb/3|Y=?';[@+\ 7krٴ oEB ȘLܚ"B~32%^W&R=F0ҙq?55QIcs̮JpN$>wF;@s$ê p0Ȥiɯٿٮɨrͨ'Ȯh:Y^l"jr/zqE?N(u' 9 ,jR['>50ooF&Qq_Pݵ'w5D 4n p0Ȥiɾٵõbxт8tE^l"^ڒiAsz#3EGӑCki9'-#aZl{ PiݜsM3:⢖ pvȤiTr[Y:[m(uV*~t3$9P3ko;py 5 55'>gǫgi9"Lm4]IZE)+?ocB p0Ȥiɯٿٮɾɯsخcɥyih^";2!x9*Ʋ ` )H6)>ՠ Ig1cQCOos|[D-TiԾSLE brsH,"R4߃oEk.,iɊ)_5''`Ϗ0c!ZbG8MUEEWcݺǕxɷR9JucBHA7Զ>)h)+52 99 ??J/ 8coY1e7c"e "\ccBm mkx )Z0Ξͻ̸1i4 9yB˄P<7=r[oRIau3*g "ccBmMSȾ$2&R"\gM~~B \)0ZOb/. 9R륲NΠqx6} .E ?2R,u\ILD"4uixiyɤiicycɯyhE6֍2EҐ2cќw#c4F{ Lr3pcҾ¾SE6Cmy]8},հ sI~wxK w$C4E'+jӂ{22'heyɋwK[u䥽5?bG`kpcyy5um0EiˆhoFT9= %ӽ8zmfB6Ncz -`QB]Q'!m #ſ'[=0t[t~F`ES89s37mwRPFuBU<4 "D^cB[sPTP ^)72:Gk8wgyrYڻo alB;PxKL y}b{%=^D"ƶ DIu۾w 'Zꎫ' T(?Y\vQre%*:Xq2٬I'K=K'*]EDכB"uʘ<^^gd4- 2Ӏ_ @ܖ sX1<(;U`隹rUΰX9Һ)ݿU2Q8ѶōfT$⃖ǣ0To Paw~'.Ԣ=x!l!L6'C.\xX,*[RyKuP%s?`-@ u0"I"2P4If^K2vY&?) $Pj^Y{'zl<\[ro=&zw ]iIb=kැ<=zn֋cR^,Eu.7 %0uL=of,i~%;. DjG[*s2E^T4Ic}EDTJr[m?!ku2~]UhULndm ^(MMR,A@+͵;ҫ<^w&$$>u4󌤺ǁXF`3<^w( ir\/Lp Y-1ļK,RpM *71j1r+%LWu‚@  *rbڥ[:iJ 33M3P>2EBXóFS9@%}GLY B >%*9S5r=xKUR"4cnc6THE ROCKS 4 v0.1',I1'$8D,$8A' DC C'Ouverture Image : ',I1'0'MSG2 DC C'Allocation memoire : ',I1'0'MSG3 DC C'Lecture Image : ',I1'0'MSG4 DC C'Encryptage : ',I1'0'MSG5 DC C'Packing : ',I1'0'MSG6 DC C'Sauvegarde Image Packed et Encrypted : ',I1'0'MSG99 DC C'Appuyez sur une touche pour quitter...',I1'0'MSGOK DC C'OK',I1'$8D,$8A,0'MSGERROR DC C'ERREUR !',I1'0'OpenParms ANOPrefnum DS 2 DC I4'FileName' DS 4FileName DC I1'8' DC C'1/PIC1OK'CloseParms ANOPrefnum2 DS 2ReadParms ANOPrefnum3 DS 2Buffer DS 4NbBytes DS 4 DS 4CreateParms ANOP DC I4'SaveFileName' DC I2'$E3' ; access code DC I2'$C2' ; type file ($C2 comme l'original) DC I4'0' ; aux type DC I2'2' ; storage type (sapling file) DC I2'0' ; creation date DC I2'0' ; creation timeOpenParms2 ANOPrefnum4 DS 2 DC I4'SaveFileName' DS 4SaveFileName DC I1'11' DC C'1/PICRYPTE2'WriteParms ANOPrefnum5 DS 2WriteData DS 4WriteSize DS 4 DS 4Size DC I2'$7D00'OutBuff DS 4 END նM{bBzƋFByBB;FШ3x=KؔcalS?·q Gk7 g'e~?7#g ݵ(&b(u 4PBKBI@ǶrTBSoxB*3xK<deͰu~{ue3555?~U^3%:U^]ĺR"4OcrjIH{BKB1B{IL{BIp5@B LmwfqfWcӖw bJ9qc#$Lm?B3E1&P3Pb^5dǕro{rbotPiBIp1b,oPўlPܫҫ>Pgߠoc?g+ҡWW% Vεό8A7^KZKҫH\G"4ccGpHBKB1B{{zBu6ߍe%7vL-7PAi&/G!;K^K5-{=Uߕt?iDT@cYc,&oVbr^boLbbzPVFֆĕ~?D`24}=γ<&UY=CcPG>XPpJ!Fh(m=E6cIczGzJrKJrIp0pJKu=6m=(mc?F@X_.P'{E?"@~wJRޕ_FovIJN V֨ҕsEZEuH2D KwvLi'0v()#FX:i< $N ̷ ?xlL`;3<22 y<^ PK? *npQ;DS" €ݡZe42"4B ; = code bank _TLStartup ; Tools Locator on _MTStartup ; Miscellanous Tools on PHA _MMStartup ; Memory Manager on Pullword MyID PHA PHA PushLong $100 ; direct Page memory request PushWord MyID PushWord #$C005 ; locked, fixed, aligned, fixed bank PushLong #0 ; bank 0 _NewHandle ; Direct Page PullLong DeRefLoc ; LDA [DeRefLoc] ; PHA PLD ; direct Page Register PEA MSG1|-16 PEA MSG1 _WriteCString ; message intro + open image JSL $E100A8 ; ProDOS16 entry point DC I2'$10' ; commande OPEN DC I4'OpenParms' ; parmtable pour OPEN BCC s1 ; open OK ? BRL Error ; sinon erreurs1 PEA MSGOK|-16 PEA MSGOK _WriteCString ; OPEN OK PEA MSG2|-16 PEA MSG2 _WriteCString ; message allocate memory LDA refnum STA refnum2 ; pour close STA refnum3 ; pour read PEA $0000 PEA $0000 ; push longword for result PEA $0001 PEA $0000 ; push size = $10000 (128ko) LDA MyID PHA ; push ID PEA $C000 ; attributes for block PEA $0000 PEA $0000 ; location (0=default) _NewHandle ; allocation memoire BCC s2 BRL Errors2 PLA PLX STA HandleBuffer STX HandleBuffer+2 PEA MSGOK|-16 PEA MSGOK _WriteCString PEA MSG3|-16 PEA MSG3 _WriteCString ; message read file LDA [HandleBuffer] STA Buffer LDY #2 LDA [HandleBuffer],Y STA Buffer+2 LDA #32768 ; lecture image complete STA NbBytes LDA #0000 STA NbBytes+2 JSL $E100A8 DC I2'$0012' ; commande READ DC I4'ReadParms' BCC s3 BRL Errors3 PEA MSGOK|-16 PEA MSGOK _WriteCString ; lecture OK;...............................................................;encryptage + package;............................................................... PEA MSG5|-16 PEA MSG5 _WriteCString ; message Packing PHA ; result space PEA Buffer|-16 PEA Buffer PEA Size|-16 PEA Size ; adresse WORD contenant size LDA Buffer CLC ADC #$8000 ; calcul adresse output buffer STA OutBuff STA VDF ; on garde le buffer (lo) pour la suite LDA Buffer+2 ADC #$0000 STA OutBuff+2 STA VE1 PHA ; output buffer (hi) LDA OutBuff PHA ; output buffer (lo) PEA $8000 ; output buffer size _PackBytes BCC s4 BRL Errors4 PLA TAX AND #01 BEQ s5 PEA MSG90|-16 PEA MSG90 _WriteCString ; message erreur size impaire BRL Fins5 TXA STA VD1 ; nb packed bytes STZ VD3 CLC ADC #$20 ; on ajoute 32 octets avant sauvegarde STA WriteSize ; sauve nb bytes packed pour WRITE STZ WriteSize+2 ; (hi=0) PEA MSGOK|-16 PEA MSGOK _WriteCString ; Packing OK JSL $E100A8 DC I2'$0014' ; commande CLOSE DC I4'CloseParms' PEA MSG4|-16 ; Message Encryptage PEA MSG4 _WriteCString ;; on colle la palette a la fin (et un eventuel octet sup avant si besoin) LDA VD1 LDX #0000 CMP #0000 BPL suite1t DEXsuite1t PHX PHA LDA VDF LDX VE1 JSL ADDITION PLA PLX STA VC5 STX VC7 PEA PALETTE|-16 PLA STA TEMP+2 PEA PALETTE PLA STA TEMP LDY #00 BB1 LDA [TEMP],Y STA [VC5],Y INY INY CPY #32 BNE BB1; debut double encryptage par EOR; phase 1 : ascendante (inverse descendante); de 2 a D1 (D1 EOR ABCD) LDA #02 ; on part de 2 (0 non traite) STA VD7 LDA VD1 STA VDC DEC VD1 ; D1-2 DEC VD1Boucle1 LDA VD7 LDX #0000 CMP #0000 BPL suite1 DEXsuite1 PHX PHA LDA VDF LDX VE1 JSL ADDITION PLA PLX STA VC5 STX VC7 LDY #2 LDA [VC5],Y ; au max D1-2 + 2 = D1 ASL A EOR #$4321 STA VD9 LDA [VC5] ; D1-2 EOR VD9 STA [VC5] INC VD7 INC VD7 LDA VD7 LDX #0000 CMP #0000 ; BPL suite2 DEXsuite2 CMP VDC ; D1 (DONC D1-2 MAX) BNE suite3 CPX VD3suite3 BEQ suite4 BRL Boucle1 suite4 LDA VDC LDX #0000 CMP #0000 BPL suite4b DEXsuite4b PHX PHA LDA VDF LDX VE1 JSL ADDITION PLA PLX STA VC5 STX VC7 LDA [VC5] EOR #$ABCD STA [VC5] ; on fixe le dernier WORD DEC VD1 DEC VD1 ; VD1 passe a -4; phase 2 : descendante (inverse ascendante); de 0 a D1-2 (0 EOR EF01) LDA VD1 ; D1-4 STA VD7Boucle2 LDA VD7 LDX #0000 CMP #0000 BPL suite5 DEXsuite5 PHX PHA LDA VDF LDX VE1 JSL ADDITION PLA PLX STA VC5 STX VC7 LDA [VC5] ; DI-4 ASL A EOR #$4321 STA VD9 LDY #2 LDA [VC5],Y ; D1-4 + 2 = D1-2 EOR VD9 STA [VC5],Y DEC VD7 DEC VD7 LDA VD7 CMP #$FFFE ; VD7 = 0 inclus BEQ suite6 BRL Boucle2 suite6 LDA [VDF] ; on fixe le premier EOR #$EF01 ; WORD STA [VDF]; fin encryptage PEA MSGOK|-16 PEA MSGOK _WriteCString ; OK encryptage PEA MSG6|-16 PEA MSG6 _WriteCString ; Message Sauvegarde JSL $E100A8 DC I2'$0001' DC I4'CreateParms' ; commande CREATE JSL $E100A8 DC I2'$10' DC I4'OpenParms2' ; commande OPEN BCS Error LDA refnum4 ; ref du file ouvert STA refnum5 ; pour write STA refnum2 ; pour close LDA OutBuff STA WriteData LDA OutBuff+2 STA WriteData+2 ; Buffer Write JSL $E100A8 DC I2'$13' DC I4'WriteParms' ; commande WRITE BCS Error PEA MSGOK|-16 PEA MSGOK _WriteCString ; Save OK JSL $E100A8 DC I2'$14' DC I4'CloseParms' ; commande CLOSE BRA FinError PEA MSGERROR|-16 PEA MSGERROR _WriteCString Fin ANOP PEA MSG99|-16 PEA MSG99 _WriteCString ; message fin PHA ; space for result PEA $0000 ; pas d'echo _ReadChar PushWord MyID _DisposeAll ; menage ! PushWord MyID _MMShutDown ; Memory Manager off _MTShutDown ; Miscellanous Tools off _TLShutDown ; Tools Locator off _Quit QuitParams BRKADDITION CLC ADC 04,S STA 04,S TXA ADC 06,S STA 06,S RTL MyID DS 2 QuitParams DC I4'0' DC I'0000'MSG1 DC C'Resolution DEFI GS ON THE ROCKS 4 v0.5',I1'$8D,$8A' DC C'Ouverture Image : ',I1'0'MSG2 DC C'Allocation memoire : ',I1'0'MSG3 DC C'Lecture Image : ',I1'0'MSG4 DC C'Encryptage : ',I1'0'MSG5 DC C'Packing : ',I1'0'MSG6 DC C'Sauvegarde Image Packed et Encrypted : ',I1'0'MSG90 DC C'ERREUR : taille image packed non paire !',I1'$8D,$8A,0'MSG99 DC C'Appuyez sur une touche pour quitter...',I1'0'MSGOK DC C'OK',I1'$8D,$8A,0'MSGERROR DC C'ERREUR !',I1'0'OpenParms ANOPrefnum DS 2 DC I4'FileName' DS 4FileName DC I1'11' DC C'1/PICSIGNED'CloseParms ANOPrefnum2 DS 2ReadParms ANOPrefnum3 DS 2Buffer DS 4NbBytes DS 4 DS 4CreateParms ANOP DC I4'SaveFileName' DC I2'$E3' ; access code DC I2'$C2' ; type file ($C2 comme l'original) DC I4'0' ; aux type DC I2'2' ; storage type (sapling file) DC I2'0' ; creation date DC I2'0' ; creation timeOpenParms2 ANOPrefnum4 DS 2 DC I4'SaveFileName' DS 4SaveFileName DC I1'11' DC C'1/PICRYPTED'WriteParms ANOPrefnum5 DS 2WriteData DS 4WriteSize DS 4 DS 4Size DC I2'$7D00'OutBuff DS 4PALETTE DC I1'$00,$01,$51,$09,$62,$0A,$62,$0B,$73,$0B,$73,$0C,$84,$0D,$95,$0E' DC I1'$A6,$0F,$31,$08,$52,$0C,$00,$01,$00,$04,$21,$07,$31,$09,$FF,$0F' END cEb:w^(NJ3PwK)R[d)V13%x* D"4c3DBRR4s^Bc!kxKK^K;~׾+9#EE.f3bv\u3/Zo?[9ʮKװ`?Su$=a2$ȥ"4E4yU hcɚɒk[ +S WBKrUzUJyOIRIUes>)4°Bx߰edruǢ37DZ 'e&1]'])K]P+JAH7xgrgYR]ģɉE pUDRԴBUS`I lUڥRUUWQ3 ,/򁉝;SRUZ]Ν:#Wx{JdgIAKNAZI|8C#t0mQ4A4w|5Oa㝋Abk[%¼yrqܢAEW4k#UG}ha>t  q0  ݽܽۻ ݽݼܻ ݻݽݽ뻻 ۫۽ܼ콻ۻ˻ۻ ݻͼͻ۽˻ۻ >ha>t  x0 ۻۻ뻻켺ܻݻۻ ݻݻۻڻܻͭ۫ۻ ۽ۻͼ̽ۻ뻻ۻݽݺ ݻ˼۾ν뻻뻽ۻ۽ݽ۫ ݻ˻̫λ뽻뽼ۻ˼̻뻻ۻۺ ˫ݻ̻̾뻻ۻξ˻ګ˻ ʻۻۻ˻뻻뺻뻻ۻݺ̻ ˻̻뻻뻻뻻ݻ˻˻ ˻ۺ̻λ뾻뻻ۻݻ̻˻ ̻۽ۼ̼λ۾˻̫껻̻;...............................................................; DEFI GS ON THE ROCKS 4 (SIGNATURE IMAGE 1); WWW.CTRL-POMME-RESET.FR; 0.3;............................................................... KEEP test MCOPY test.macDeRefLoc GEQU $0 ;HandleBuffer GEQU $10 ;VC5 GEQU $C5VC7 GEQU $C7VD1 GEQU $D1VD3 GEQU $D3VD7 GEQU $D7VD9 GEQU $D9VDF GEQU $DFVE1 GEQU $E1TEMP GEQU $A0VDC GEQU $B0Main START PHK ; data bank PLB ; = code bank _TLStartup ; Tools Locator on _MTStartup ; Miscellanous Tools on PHA _MMStartup ; Memory Manager on Pullword MyID PHA PHA PushLong $100 ; direct Page memory request PushWord MyID PushWord #$C005 ; locked, fixed, aligned, fixed bank PushLong #0 ; bank 0 _NewHandle ; Direct Page PullLong DeRefLoc ; LDA [DeRefLoc] ; PHA PLD ; direct Page Register PEA MSG1|-16 PEA MSG1 _WriteCString ; message intro + open image JSL $E100A8 ; ProDOS16 entry point DC I2'$10' ; commande OPEN DC I4'OpenParms' ; parmtable pour OPEN BCC s1 ; open OK ? BRL Error ; sinon erreurs1 PEA MSGOK|-16 PEA MSGOK _WriteCString ; OPEN OK PEA MSG2|-16 PEA MSG2 _WriteCString ; message allocate memory LDA refnum STA refnum2 ; pour close STA refnum3 ; pour read PEA $0000 PEA $0000 ; push longword for result PEA $0001 PEA $0000 ; push size = $10000 (128ko) LDA MyID PHA ; push ID PEA $C000 ; attributes for block PEA $0000 PEA $0000 ; location (0=default) _NewHandle ; allocation memoire BCC s2 BRL Errors2 PLA PLX STA HandleBuffer STX HandleBuffer+2 PEA MSGOK|-16 PEA MSGOK _WriteCString PEA MSG3|-16 PEA MSG3 _WriteCString ; message read file LDA [HandleBuffer] STA Buffer LDY #2 LDA [HandleBuffer],Y STA Buffer+2 LDA #32768 ; lecture image complete STA NbBytes LDA #0000 STA NbBytes+2 JSL $E100A8 DC I2'$0012' ; commande READ DC I4'ReadParms' BCC s3 BRL Errors3 PEA MSGOK|-16 PEA MSGOK _WriteCString ; lecture OK;...............................................................;encryptage + package;............................................................... PEA MSG5|-16 PEA MSG5 _WriteCString ; message Packing PHA ; result space PEA Buffer|-16 PEA Buffer PEA Size|-16 PEA Size ; adresse WORD contenant size LDA Buffer CLC ADC #$8000 ; calcul adresse output buffer STA OutBuff STA VDF ; on garde le buffer (lo) pour la suite LDA Buffer+2 ADC #$0000 STA OutBuff+2 STA VE1 PHA ; output buffer (hi) LDA OutBuff PHA ; output buffer (lo) PEA $8000 ; output buffer size _PackBytes BCC s4 BRL Errors4 PLA TAX AND #01 BEQ T1 INXT1 TXA STA VD1 ; nb packed bytes STZ VD3 CLC ADC #$20 ; on ajoute 32 octets avant sauvegarde STA WriteSize ; sauve nb bytes packed pour WRITE STZ WriteSize+2 ; (hi=0) PEA MSGOK|-16 PEA MSGOK _WriteCString ; Packing OK JSL $E100A8 DC I2'$0014' ; commande CLOSE DC I4'CloseParms' PEA MSG4|-16 ; Message Encryptage PEA MSG4 _WriteCString ;; on colle la palette a la fin LDA VD1 LDX #0000 CMP #0000 BPL suite1t DEXsuite1t PHX PHA LDA VDF LDX VE1 JSL ADDITION PLA PLX STA VC5 STX VC7 PEA PALETTE|-16 PLA STA TEMP+2 PEA PALETTE PLA STA TEMP LDY #00BB1 LDA [TEMP],Y STA [VC5],Y INY INY CPY #32 BNE BB1; debut double encryptage par EOR; phase 1 : ascendante (inverse descendante); de 2 a D1 (D1 EOR ABCD) LDA #02 ; on part de 2 (0 non traite) STA VD7 LDA VD1 STA VDC DEC VD1 ; D1-2 DEC VD1Boucle1 LDA VD7 LDX #0000 CMP #0000 BPL suite1 DEXsuite1 PHX PHA LDA VDF LDX VE1 JSL ADDITION PLA PLX STA VC5 STX VC7 LDY #2 LDA [VC5],Y ; au max D1-2 + 2 = D1 ASL A EOR #$4321 STA VD9 LDA [VC5] ; D1-2 EOR VD9 STA [VC5] INC VD7 INC VD7 LDA VD7 LDX #0000 CMP #0000 ; BPL suite2 DEXsuite2 CMP VDC ; D1 (DONC D1-2 MAX) BNE suite3 CPX VD3suite3 BEQ suite4 BRL Boucle1 suite4 LDA VDC LDX #0000 CMP #0000 BPL suite4b DEXsuite4b PHX PHA LDA VDF LDX VE1 JSL ADDITION PLA PLX STA VC5 STX VC7 LDA [VC5] EOR #$ABCD STA [VC5] ; on fixe le dernier WORD DEC VD1 DEC VD1 ; VD1 passe a -4; phase 2 : descendante (inverse ascendante); de 0 a D1-2 (0 EOR EF01) LDA VD1 ; D1-4 STA VD7Boucle2 LDA VD7 LDX #0000 CMP #0000 BPL suite5 DEXsuite5 PHX PHA LDA VDF LDX VE1 JSL ADDITION PLA PLX STA VC5 STX VC7 LDA [VC5] ; DI-4 ASL A EOR #$4321 STA VD9 LDY #2 LDA [VC5],Y ; D1-4 + 2 = D1-2 EOR VD9 STA [VC5],Y DEC VD7 DEC VD7 LDA VD7 CMP #$FFFE ; VD7 = 0 inclus BEQ suite6 BRL Boucle2 suite6 LDA [VDF] ; on fixe le premier EOR #$EF01 ; WORD STA [VDF]; fin encryptage PEA MSGOK|-16 PEA MSGOK _WriteCString ; OK encryptage PEA MSG6|-16 PEA MSG6 _WriteCString ; Message Sauvegarde JSL $E100A8 DC I2'$0001' DC I4'CreateParms' ; commande CREATE JSL $E100A8 DC I2'$10' DC I4'OpenParms2' ; commande OPEN BCS Error LDA refnum4 ; ref du file ouvert STA refnum5 ; pour write STA refnum2 ; pour close LDA OutBuff STA WriteData LDA OutBuff+2 STA WriteData+2 ; Buffer Write JSL $E100A8 DC I2'$13' DC I4'WriteParms' ; commande WRITE BCS Error PEA MSGOK|-16 PEA MSGOK _WriteCString ; Save OK JSL $E100A8 DC I2'$14' DC I4'CloseParms' ; commande CLOSE BRA FinError PEA MSGERROR|-16 PEA MSGERROR _WriteCString Fin ANOP PEA MSG99|-16 PEA MSG99 _WriteCString ; message fin PHA ; space for result PEA $0000 ; pas d'echo _ReadChar PushWord MyID _DisposeAll ; menage ! PushWord MyID _MMShutDown ; Memory Manager off _MTShutDown ; Miscellanous Tools off _TLShutDown ; Tools Locator off _Quit QuitParams BRKADDITION CLC ADC 04,S STA 04,S TXA ADC 06,S STA 06,S RTL MyID DS 2 QuitParams DC I4'0' DC I'0000'MSG1 DC C'Resolution DEFI GS ON THE ROCKS 4 v0.3',I1'$8D,$8A' DC C'Ouverture Image : ',I1'0'MSG2 DC C'Allocation memoire : ',I1'0'MSG3 DC C'Lecture Image : ',I1'0'MSG4 DC C'Encryptage : ',I1'0'MSG5 DC C'Packing : ',I1'0'MSG6 DC C'Sauvegarde Image Packed et Encrypted : ',I1'0'MSG99 DC C'Appuyez sur une touche pour quitter...',I1'0'MSGOK DC C'OK',I1'$8D,$8A,0'MSGERROR DC C'ERREUR !',I1'0'OpenParms ANOPrefnum DS 2 DC I4'FileName' DS 4FileName DC I1'8' DC C'1/PIC1OK'CloseParms ANOPrefnum2 DS 2ReadParms ANOPrefnum3 DS 2Buffer DS 4NbBytes DS 4 DS 4CreateParms ANOP DC I4'SaveFileName' DC I2'$E3' ; access code DC I2'$C2' ; type file ($C2 comme l'original) DC I4'0' ; aux type DC I2'2' ; storage type (sapling file) DC I2'0' ; creation date DC I2'0' ; creation timeOpenParms2 ANOPrefnum4 DS 2 DC I4'SaveFileName' DS 4SaveFileName DC I1'11' DC C'1/PICRYPTE2'WriteParms ANOPrefnum5 DS 2WriteData DS 4WriteSize DS 4 DS 4Size DC I2'$7D00'OutBuff DS 4PALETTE DC I1'$00,$01,$51,$09,$62,$0a,$62,$0b,$73,$0b,$73,$0c,$84,$0d,$95,$0e' DC I1'$a6,$0f,$31,$08,$52,$0c,$00,$01,$00,$04,$21,$07,$31,$09,$ff,$0f' END >ha>t  @u0(( ̻ͼ̻뺻뺻˽۽̼̻ ˻˭؍޻뻺ۻ̻̻ ̻̾Ȍببۻ̻޼؍ؼ̼̎˻뻻 ˼̾컸ۼλ̻芍؈Ȍ̻ ̾˺츈ۻ޻˽興˼˾뻻 ̽؈˸̻ʻ޻ ̼̫̼˻뻻 뻻̼̈˻˻ ˻ۻǻ興ʻ˻̻ ˻̼ȸ˻뻻˻ ̻ʻ̾x˻̼˻ ˻̻˾興컻˻ ̻ʾ̼ww̻̻̻ ̻ηw̻˻̻ ܻwwx컻뫻뻾 ͻww̻뻻vwwx{̻뻻뻻̶7wwxxw˻뻾뻻뻻̶gwwxw{˻˻˾ݼĶfwuW{ܻ 뻻뻾뻻˻̶gwwww|뼻 ˴fwww{k޻ 뻻˻ҵVfwwxxw{k뻻˻ ̻RUVcwwxww;m̻ ˻RUVfgwwxxwwvfe˻뻰 뻻뻻˾RUVfwvwxwgwfe뮻˻뻰 뻻˻UUVvgwwxwwvge^뼼ܻ뻻 뼻˻"UUVfewwxwwVfe]˻뻻 ˻%UVffwwxwwffeU˻̬"UUVVfwwxwwfee[̻뻻뻻뻻%UfgfwxxwwwfvfU˻뻻뻻C5FVVfgxxvfeedݻ,1FfVfwwxxwxwxxwwfefdۻ "56Vffgwxxxwvffel˻ "26ffvwwwxxxwwwgffc#̻ !"%VefwwxxxxxwwfVeR" !2&ffgwxwwwwwxwxxwvffb,# "2!%efUwxwxwwUfVR#* 뻻#!FfgUWwxxxwuUvfd2A뻻 뻻"2VeVt'vxxxxxgrGeVe#!"뻻 뻻뻼56Vef&WXxxxxxubfVecS1! 뻻A"5Vff5fghwxxxxwvfSffeS"!˻뻻뻾뻻 뻻35SUf5UVfxxxwwwxwxhxfeUSfU5S3뻻 뻻뻻335VSafffh5X8hhwwwwxwwwwxSfffai5eS33뻻뻾뻾 ˻B33TaQfaffwffVfUX6fxxwwhhfchhUfeffwfaffE33뻻 ˾33UfaQ%f&&VffeUeXhhhhhxffhVUVffebbfRQfU33˼ ˼!3336QV"Vb&eVffhU66hffhXXffccUffeVb&e"eac333뼻 ˻!C335b%fUefffSVfff6fh8fc8hhhfffe5fffVUfR&QS334˼ 33SR%QUTVfwveWffdfhhfX8ffFffuVgwfeElUR%QQ533컼 ̾333S2UUfeUwwwgffvgfffff8fffvgffvwwwUVfUYQU#5333!˻뻻 ̻!"333UEQdUfgwwwwwvvvvfVVeefggggwwwwwvfUFQTU3331"̻뻻 쾱335UTUDDdUfgwwwwwwvffffffgwwwwwgwwFfdMA$EUUUeR!뻻 ̻!33eUUQ"""U3DffgxwwwwwwwwwwwwwwvfedMEUUUU1!뻻 ˾˱"UeUUQD"MDffGwwgwwwwwwwwwwwwwwwwwgwwFfdMA$EUUUeR,˻̻뻻뻻 !5UUUUDDeffwwwxxwwwvfedMEUUUU1,˼˾뻻 !5UUUKAUUU1,˻뻾 뻻ξ!5UU˻˻̻UU1,Ϋ뻻 ʻ켱"5U]̻UUffe4wwwwwwCUffeURܻUU2!컻 ˻5-xvfV$˻UdeUU5UUSUUUdeU̻&Vfvx%1λ̻ ̻"gwwefeT"Ue3FffbffeSe\$Ufegwwb-˼μ뺪 ˻,"fveUUS4"33Fffbffc1?@ABCDEFGHIJ ݽܽۻ ݽݼܻ ݻݽݽ뻻 ۫۽ܼ콻ۻ˻ۻ ݻͼͻ۽˻ۻ ۻۻ뻻켺ܻݻۻ ݻݻۻڻܻͭ۫ۻ ۽ۻͼ̽ۻ뻻ۻݽݺ ݻ˼۾ν뻻뻽ۻ۽ݽ۫ ݻ˻̫λ뽻뽼ۻ˼̻뻻ۻۺ ˫ݻ̻̾뻻ۻξ˻ګ˻ ʻۻۻ˻뻻뺻뻻ۻݺ̻ ˻̻뻻뻻뻻ݻ˻˻ ˻ۺ̻λ뾻뻻ۻݻ̻˻ ̻۽ۼ̼λ۾˻̫껻̻ ̻ͼ̻뺻뺻˽۽̼̻ ˻˭؍޻뻺ۻ̻̻ ̻̾Ȍببۻ̻޼؍ؼ̼̎˻뻻 ˼̾컸ۼλ̻芍؈Ȍ̻ ̾˺츈ۻ޻˽興˼˾뻻 ̽؈˸̻ʻ޻ ̼̫̼˻뻻 뻻̼̈˻˻ ˻ۻǻ興ʻ˻̻ ˻̼ȸ˻뻻˻ ̻ʻ̾x˻̼˻ ˻̻˾興컻˻ ̻ʾ̼ww̻̻̻ ̻ηw̻˻̻ ܻwwx컻뫻뻾 ͻww̻뻻vwwx{̻뻻뻻̶7wwxxw˻뻾뻻뻻̶gwwxw{˻˻˾ݼĶfwuW{ܻ 뻻뻾뻻˻̶gwwww|뼻 ˴fwww{k޻ 뻻˻ҵVfwwxxw{k뻻˻ ̻RUVcwwxww;m̻ ˻RUVfgwwxxwwvfe˻뻰 뻻뻻˾RUVfwvwxwgwfe뮻˻뻰 뻻˻UUVvgwwxwwvge^뼼ܻ뻻 뼻˻"UUVfewwxwwVfe]˻뻻 ˻%UVffwwxwwffeU˻̬"UUVVfwwxwwfee[̻뻻뻻뻻%UfgfwxxwwwfvfU˻뻻뻻C5FVVfgxxvfeedݻ,1FfVfwwxxwxwxxwwfefdۻ "56Vffgwxxxwvffel˻ "26ffvwwwxxxwwwgffc#̻ !"%VefwwxxxxxwwfVeR" !2&ffgwxwwwwwxwxxwvffb,# "2!%efUwxwxwwUfVR#* 뻻#!FfgUWwxxxwuUvfd2A뻻 뻻"2VeVt'vxxxxxgrGeVe#!"뻻 뻻뻼56Vef&WXxxxxxubfVecS1! 뻻A"5Vff5fghwxxxxwvfSffeS"!˻뻻뻾뻻 뻻35SUf5UVfxxxwwwxwxhxfeUSfU5S3뻻 뻻뻻335VSafffh5X8hhwwwwxwwwwxSfffai5eS33뻻뻾뻾 ˻B33TaQfaffwffVfUX6fxxwwhhfchhUfeffwfaffE33뻻 ˾33UfaQ%f&&VffeUeXhhhhhxffhVUVffebbfRQfU33˼ ˼!3336QV"Vb&eVffhU66hffhXXffccUffeVb&e"eac333뼻 ˻!C335b%fUefffSVfff6fh8fc8hhhfffe5fffVUfR&QS334˼ 33SR%QUTVfwveWffdfhhfX8ffFffuVgwfeElUR%QQ533컼 ̾333S2UUfeUwwwgffvgfffff8fffvgffvwwwUVfUYQU#5333!˻뻻 ̻!"333UEQdUfgwwwwwvvvvfVVeefggggwwwwwvfUFQTU3331"̻뻻 쾱335UTUDDdUfgwwwwwwvffffffgwwwwwgwwFfdMA$EUUUeR!뻻 ̻!33eUUQ"""U3DffgxwwwwwwwwwwwwwwvfedMEUUUU1!뻻 ˾˱"UeUUQD"MDffGwwgwwwwwwwwwwwwwwwwwgwwFfdMA$EUUUeR,˻̻뻻뻻 !5UUUUDDeffwwwxxwwwvfedMEUUUU1,˼˾뻻 !5UUUKAUUU1,˻뻾 뻻ξ!5UU˻˻̻UU1,Ϋ뻻 ʻ켱"5U]̻UUffe4wwwwwwCUffeURܻUU2!컻 ˻5-xvfV$˻UdeUU5UUSUUUdeU̻&Vfvx%1λ̻ ̻"gwwefeT"Ue3FffbffeSe\$Ufegwwb-˼μ뺪 ˻,"fveUUS4"33Fffbffc1