Index du forum




Un petit coup de main... Vous pouvez nous aider à mettre ce site à jour: n'hésitez pas à me contacter !!!

* Connexion   * Inscription

* FAQ
Nous sommes actuellement le 01 Mars 2026, 21:54

Index du forum » Z80 Coding

Le fuseau horaire est UTC+1 heure


Cruncher UPKR

Modérateur: poulette73



Publier un nouveau sujet Répondre au sujet  Page 1 sur 1
 [ 14 message(s) ] 
  Aperçu avant impression Sujet précédent | Sujet suivant 
Auteur Message
velus
 Sujet du message : Cruncher UPKR
Message Publié : 26 Fév 2026, 16:17 
Hors-ligne
Rulezzz
Rulezzz

Inscription : 05 Août 2011, 14:38
Message(s) : 225
J'ai découvert ce compacteur, il a l'air assez performant,
il y a bien des routines z80 de decrunching
mais je n'arrive a rien en l'insérant dans Winape
quelqu'un sait-il m'aider pour la routine de décompactage ?



https://github.com/exoticorn/upkr/releases/tag/v0.2.0


Haut
 Profil  
 
hERMOL
 Sujet du message : Re: Cruncher UPKR
Message Publié : 26 Fév 2026, 22:48 
Hors-ligne
Site Admin
Avatar de l’utilisateur

Inscription : 20 Août 2007, 18:21
Message(s) : 5125
Pas mal celui-la! Le binaire de Boulder Dash passe a #262B octets, contre #29B2 pour zx0 :JC_doubleup:


Haut
 Profil  
 
hERMOL
 Sujet du message : Re: Cruncher UPKR
Message Publié : 27 Fév 2026, 10:27 
Hors-ligne
Site Admin
Avatar de l’utilisateur

Inscription : 20 Août 2007, 18:21
Message(s) : 5125
a quoi corresponds ces instructions:
Code :
  ; ** reset probs to 0x80, also reset HL (state) to zero, and set BC to probs+context 0
    ld      hl,probs.c>>1
    ld      bc,probs.e


Code :
    ; reserve space for probs array without emitting any machine code (using only EQU)

    IFDEF UPKR_PROBS_ORIGIN     ; if specific address is defined by user, move probs array there
probs:      EQU ((UPKR_PROBS_ORIGIN) + 255) & -$100     ; probs array aligned to 256
    ELSE
probs:      EQU ($ + 255) & -$100                       ; probs array aligned to 256
    ENDIF
.real_c:    EQU 1 + 255 + 1 + 2*NUMBER_BITS             ; real size of probs array
.c:         EQU (.real_c + 1) & -2                      ; padding to even size (required by init code)
.e:         EQU probs + .c


la compilation sous "sjasmplus-1.21.1", donne:

Code :
   ld hl,#00A0      ;;ld      hl,probs.c>>1 
   ld bc,#0240   ;;ld      bc,probs.e     


Haut
 Profil  
 
velus
 Sujet du message : Re: Cruncher UPKR
Message Publié : 27 Fév 2026, 11:19 
Hors-ligne
Rulezzz
Rulezzz

Inscription : 05 Août 2011, 14:38
Message(s) : 225
As tu réussi à faire le fichier asm ou du moins le compiler ?


Haut
 Profil  
 
hERMOL
 Sujet du message : Re: Cruncher UPKR
Message Publié : 27 Fév 2026, 11:50 
Hors-ligne
Site Admin
Avatar de l’utilisateur

Inscription : 20 Août 2007, 18:21
Message(s) : 5125
Non fonctionnel, je compil avec sjasmplus en bin , puis dans un second temps j'unasm pour winape. Je te donne un lien en msg pv...

avec SjASMPlus Z80 Cross-Assembler v1.21.1 (https://github.com/z00m128/sjasmplus)

ca ce compil en ORG #0000

sjasmplus.exe unpack.asm --msg=err --raw=unpack.bin


Haut
 Profil  
 
JMB
 Sujet du message : Re: Cruncher UPKR
Message Publié : 28 Fév 2026, 01:21 
Hors-ligne
Rulez
Rulez
Avatar de l’utilisateur

Inscription : 09 Jan 2011, 04:11
Message(s) : 41
Localisation : Versailles
Intéressant! J'ai modifié la source pour qu'il tourne sous WinAPE. J'ai des gains importants sur les fichiers Image. Par contre la décompression est vraiment lente :sigh:
Ca marche seulement quand le Firmware est désactivé.
Apparement, on peut pas l'utiliser sous BASIC, même en sauvegardant le 2ème set de registres, et en désactivant les interruptions avant de lancer la décompression.
Ou plutôt, ca va marcher mais faire un beau reset au moment de retourner au BASIC. Peut-être parce que les interruptions ont été désactivées trop longtemps?

Code :
org &1100
;;Charge le fichier compresse en 2000h
ld hl,Filename
ld b,10
call &bc77
ld hl,&2000
call &bc83
call &bc7A
;;Decompression
di
ld ix,&2000   ;;Source
exx
push hl:push de:push bc
ld de,&C000   ;;Destination
exx
call &1000   ;;Decompression
exx
pop bc:pop de:pop hl
exx
ei:ret
Filename DB "SCREEN.UPK"


A suivre! Merci pour l'info :)


Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.


Haut
 Profil  
 
hERMOL
 Sujet du message : Re: Cruncher UPKR
Message Publié : 28 Fév 2026, 02:21 
Hors-ligne
Site Admin
Avatar de l’utilisateur

Inscription : 20 Août 2007, 18:21
Message(s) : 5125
Excellent!!! 1000*thk


Haut
 Profil  
 
JMB
 Sujet du message : Re: Cruncher UPKR
Message Publié : 28 Fév 2026, 09:40 
Hors-ligne
Rulez
Rulez
Avatar de l’utilisateur

Inscription : 09 Jan 2011, 04:11
Message(s) : 41
Localisation : Versailles
Ah, bonne nouvelle : ça marche avec le BASIC. Je me suis fait avoir, car j'avais placé mon Loader à l'adresse 1100h, mais ça tombait dans la zone de données utilisée par le décompresseur.
Si on déplace le loader en 1800h par exemple, plus de soucis.
Il faut se méfier, car il y a un buffer de données crée juste après le décompresseur (appelé Probs), qui fait une taille de 400 octets environ.
Mais on peut le déplacer à l'adresse que l'on veut en définissant une variable UPKR_PROBS_ORIGIN


Haut
 Profil  
 
velus
 Sujet du message : Re: Cruncher UPKR
Message Publié : 28 Fév 2026, 13:41 
Hors-ligne
Rulezzz
Rulezzz

Inscription : 05 Août 2011, 14:38
Message(s) : 225
Ca ne fonctionne pas chez moi :(

Quels sont les parametres pour comprimer avec upkr

UPKR -B nom.bin

UPKR - ?


Haut
 Profil  
 
JMB
 Sujet du message : Re: Cruncher UPKR
Message Publié : 28 Fév 2026, 14:04 
Hors-ligne
Rulez
Rulez
Avatar de l’utilisateur

Inscription : 09 Jan 2011, 04:11
Message(s) : 41
Localisation : Versailles
Pour compresser, rien de plus simple! L'auteur a crée un méta-paramètre --z80 qui combine différents paramètres.
Il suffit de taper: UPKR --z80 "c:\My path\Filename.bin"
Ne pas oublier d'ajouter un header au fichier avant de le déplacer vers un DSK !


Haut
 Profil  
 
velus
 Sujet du message : Re: Cruncher UPKR
Message Publié : 28 Fév 2026, 17:57 
Hors-ligne
Rulezzz
Rulezzz

Inscription : 05 Août 2011, 14:38
Message(s) : 225
Ca ne va pas mieux aaaarghh !!!!
voici mes fichiers J'ai bien fait upkr --z80 pen.bin
image en &2000 routine &1000 call &1000
quelqu'un sait-il me dire ou est le problème ? Merci
j'ai 1 pixel d affiché


Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.


Haut
 Profil  
 
JMB
 Sujet du message : Re: Cruncher UPKR
Message Publié : 01 Mars 2026, 01:33 
Hors-ligne
Rulez
Rulez
Avatar de l’utilisateur

Inscription : 09 Jan 2011, 04:11
Message(s) : 41
Localisation : Versailles
Ca marche! Compressé à 4894 octets, contre 5920 avec ZX0 :o
Tu peux accélérer la décompression en décommentant la ligne ;;UPKR_UNPACK_SPEED EQU 1
Ca déroule une boucle de 8 multiplications, mais on sent pas vraiment la différence...


Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.


Haut
 Profil  
 
velus
 Sujet du message : Re: Cruncher UPKR
Message Publié : 01 Mars 2026, 10:42 
Hors-ligne
Rulezzz
Rulezzz

Inscription : 05 Août 2011, 14:38
Message(s) : 225
Youpie impec merci


Haut
 Profil  
 
markerror
 Sujet du message : Re: Cruncher UPKR
Message Publié : 01 Mars 2026, 19:45 
Hors-ligne
VIP
VIP

Inscription : 04 Sep 2007, 19:43
Message(s) : 740
Bonsoir,

Merci pour avoir défriché le terrain :-). Ce "nouveau" packer est efficace en terme de compression (mieux qu'Exomizer), mais il est très (trop) lent à la décompression. J'ai un peu de mal du coup à voir quel pourrait être son usage, si ce n'est vouloir à tout pris gratter quelques kilos sur une disquette, au prix de temps d'attente digne d'un chargement cassette :-).

A noter que l'optimisation n'est pas si anodine que cela (sur mon fichier d'exemple, on gagne quand même pas loin de 20%, mais ça reste très très lent.


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  Page 1 sur 1
 [ 14 message(s) ] 

Index du forum » Z80 Coding

Le fuseau horaire est UTC+1 heure


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 36 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Aller vers :  
Powered by phpBB® Forum Software © phpBB Group
Traduit en français par Maël Soucaze.