Amstrad Plus Forum Index

Amstrad Plus
Découverte de la gamme Old et Plus des Cpc d'Amstrad.

 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

****Packer/Unpacker

 
Post new topic   Reply to topic    Amstrad Plus Forum Index -> Programmation Cpc -> Crunching
Previous topic :: Next topic  
Author Message
Ast
Administrateur

Offline

Joined: 05 Sep 2014
Posts: 2,976
Masculin
Point(s): 389
Moyenne de points: 0.13

PostPosted: Mon 8 Sep - 12:01 (2014)    Post subject: ****Packer/Unpacker Reply with quote

CngSoft nous a présenté un compacteur qu'il a fait sur le CpcWiki. Comme je le trouvais réellement rapide, j'ai décidé de le proposer sur ce forum. Ne vous attendez pas à compacter aussi bien qu'avec un compacteur Lempel-Ziv.


A votre tour de tester.
-------------


CngSoft presents us a packer he made in the CpcWiki. As i found it really fast, i decided to propose it in this forum. Don't expect it to crunch as much as any Lempel-Ziv would do.


Test it now!


CngSoft wrote:

; ENCODER: HL=^SOURCE,DE=^TARGET,IX=FULL_LENGTH; HL+=FULL_LENGTH,DE+=PAKD_LENGTH,IX=0,B=0,ACF!

rle2pack_init ld b,0
rle2pack_loop ld c,(hl)
rle2pack_find ld a,xh
 or xl
 jr z,rle2pack_exit
 dec ix
 inc hl
 inc b
 jr z,rle2pack_over
 ld a,(hl)
 cp c
 jr z,rle2pack_find
rle2pack_over call rle2pack_fill
 jr rle2pack_loop
rle2pack_exit cp b
 call nz,rle2pack_fill
; generate the end marker from the last byte!
 dec hl
 ld a,(hl)
 inc hl
 cpl
 jr rle2pack_exit_
rle2pack_fill dec b
 ld a,c
 jr z,rle2pack_fill_
rle2pack_exit_ ld (de),a
 inc de
 ld (de),a
 inc de
 dec b
 ld a,b
rle2pack_fill_ ld (de),a
 inc de
 ld b,0
 ret

; DECODER: HL=^SOURCE,DE=^TARGET; HL+=PAKD_LENGTH,DE+=FULL_LENGTH,B!,AF!

rle2upak_init ld b,1
 ld a,(hl)
 inc hl
 cp (hl)
 jr nz,rle2upak_fill
 inc hl
 ld b,(hl)
 inc hl
 inc b
 ret z
 inc b
rle2upak_fill ld (de),a
 inc de
 djnz $-2
 jr rle2upak_init









_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Back to top
Publicité






PostPosted: Mon 8 Sep - 12:01 (2014)    Post subject: Publicité

PublicitéSupprimer les publicités ?
Back to top
Display posts from previous:   
Post new topic   Reply to topic    Amstrad Plus Forum Index -> Programmation Cpc -> Crunching All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  

Index | Administration Panel | Create a forum | Free support forum | Free forums directory | Report a violation | Cookies | Charte | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group