Amstrad Plus Index du Forum

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

 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

****Packer/Unpacker

 
Poster un nouveau sujet   Répondre au sujet    Amstrad Plus Index du Forum -> Bienvenue sur ce forum -> Programmation
Sujet précédent :: Sujet suivant  
Auteur Message
Ast
Administrateur

En ligne

Inscrit le: 05 Sep 2014
Messages: 2 321

MessagePosté le: Lun 8 Sep - 11:01 (2014)    Sujet du message: ****Packer/Unpacker Répondre en citant

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!


ngSof a écrit:

; 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...."


Revenir en haut
Publicité






MessagePosté le: Lun 8 Sep - 11:01 (2014)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Amstrad Plus Index du Forum -> Bienvenue sur ce forum -> Programmation Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  

Index | Panneau d’administration | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com