Logicielsmoto.com

Nous sommes le 28 Mar 2024, 09:36

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 66 messages ]  Aller à la page Précédente  1, 2, 3, 4, 5
Auteur Message
 Sujet du message: Re: Exomizer
MessagePosté: 13 Avr 2021, 23:51 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 433
Localisation: Var
Je ne sais pas si le code en page 2 est la dernière version. Donc au cas où une petite optim complémentaire :

Code:
    125  4+5   00A1 30   8D 000E  cook    leax    biba,pcr


à remplacer par :

Code:
    125  4+1   00A1 30   8C 0E    cook    leax    <biba,pcr


Gain : 4 cycles à chaque appel de cook et un octet de gagné


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Exomizer
MessagePosté: 14 Avr 2021, 07:47 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Normalement l'assembleur transforme les index 16 bits en 8 ou 5 si on active l'optimisation.

La version 16bits peut être utile si le tableau "biba" se trouve assez loin en ram.

Perso je fais LDX #biba quand j'ai pas besoin de code relogeable. C'est plus rapide et s'accommode d'un buffer n'importe où en mémoire.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Exomizer
MessagePosté: 14 Avr 2021, 12:20 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 464
Citation:
4 cycles à chaque appel de cook

Ce qui est appréciable vu que cook est appelee a peu pres en permanence.

Etonnant que je ne l'ai pas vu avant, je me demande si ce n'est pas tout simplement une typo (oubli du <) ?

Bien vu en tout cas.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Exomizer
MessagePosté: 14 Avr 2021, 13:07 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Avec LDX, tu économiserais encore 2 cycles de plus, passant de 9 cycles pour LEA $nnnn,pcr à 3 cycles pour LDX #$nnnn :)

A noter: en général c'est le code qui est relogeable, pas forcément les données qui elles sont en adresses fixes. Par exemple moi j'utilise la zone après la fin d'écran et avant la page 0 pour des démos qui terminent par un reset à froid, mais le décompacteur se déplace en mémoire en fonction des besoins. Bref: code relogeable, et data fixes.

Par notion de fixe, j'inclus aussi l'adressage DP, mais on a pas de LEAX qui utilise le mode DP, ce qui pourrait être très pratique parfois (car l'émuler est couteux: PSHS D + TFR DP,A + LDB #nn + TFR D,X + PULS D).

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Exomizer
MessagePosté: 14 Avr 2021, 13:40 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 433
Localisation: Var
Pour mon usage je n'ai pas besoin non plus que le code soit relogeable.
J'ai gardé le code tel quel pour le moment par facilité, c'est très appréciable d'avoir une routine prête à l'emploi ;-)
A terme je remplacerai également par un LDX.

J'en profite pour poser une question sur le .exe qui compresse les données :
En entrée il ne prend qu'un binaire linéaire (pas de mode raw), donc le header contient l'adresse de destination en RAM.
Il y a un contrôle qui vérifie que cette adresse est <$6100, c'est juste utile pour l'option qui permet d'avoir un binaire auto-extractible ?
Si je n'utilise pas cette option et que je veux juste compresser les données je peux mettre ce que je veux comme adresse à partir de $6100 du moment que l'adresse de départ+taille ne dépasse pas $DFFF c'est bien ça ? pas d'autre utilité pour cette adresse du header ?


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Exomizer
MessagePosté: 14 Avr 2021, 15:02 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Bentoc a écrit:
J'en profite pour poser une question sur le .exe qui compresse les données :
En entrée il ne prend qu'un binaire linéaire (pas de mode raw),

Oui un binaire thomson, mais linéaire ou pas (au sens thomson), c'est à dire en un bloc contigu ou en plusieurs blocs logiques.
Citation:
donc le header contient l'adresse de destination en RAM.

Oui pour savoir où décompresser.
Citation:
Il y a un contrôle qui vérifie que cette adresse est <$6100, c'est juste utile pour l'option qui permet d'avoir un binaire auto-extractible ?

Bah disons que c'est la zone de la page zero du moniteur qui contient entre autre la pile par défaut, c'est une très mauvaise idée d'aller y écrire des trucs, donc je la considère comme interdite.
Citation:
Si je n'utilise pas cette option et que je veux juste compresser les données je peux mettre ce que je veux comme adresse à partir de $6100 du moment que l'adresse de départ+taille ne dépasse pas $DFFF c'est bien ça ? pas d'autre utilité pour cette adresse du header ?

Oui, mais je ne pige pas bien la notion de "cette option". Il faut que tout tienne en ram, rien de plus. Ah si en fonction de l'implantation mémoire le décompresseur se reloge il me semble me souvenir (soit après, soit avant la zone écrasée durant la décompression). Mais bon le source est modifiable à volonté, c'est juste un front-end à l'algo de compression d'Exomizer2 pour lire et écrire un exe THOMSON.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 66 messages ]  Aller à la page Précédente  1, 2, 3, 4, 5

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 33 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com