Derniers sujets
» Scans programmes Oric
Novalight EmptyHier à 19:06 par markerror

» rs
Novalight EmptyLun 22 Avr 2019 - 19:19 par Oric1-Atmos

» L'ile oubliée
Novalight EmptyLun 22 Avr 2019 - 14:18 par Dbug

» le retour du Commodore 64
Novalight EmptyLun 22 Avr 2019 - 10:32 par froggy

» images pictconv
Novalight EmptyDim 21 Avr 2019 - 17:41 par kenneth

» Mushroom Mania
Novalight EmptySam 20 Avr 2019 - 14:47 par Dom50

» Annonces insolites
Novalight EmptyVen 19 Avr 2019 - 14:43 par kenneth

» Interview du rédac' chef
Novalight EmptyMer 17 Avr 2019 - 23:11 par drpsy

» Interview John S Sinclair
Novalight EmptyMer 17 Avr 2019 - 7:21 par Symoon

» Le secret de Kaipur
Novalight EmptyDim 14 Avr 2019 - 20:51 par Invité

» le fer d'Amnukor (Tyrann 2)
Novalight EmptyDim 14 Avr 2019 - 16:41 par assinie

» ORIC-1 sur LE BON COIN
Novalight EmptySam 13 Avr 2019 - 18:14 par Oric1-Atmos

» Oricutron linux et DSK
Novalight EmptySam 13 Avr 2019 - 10:31 par froggy

» scrolling en mode Text
Novalight EmptyVen 12 Avr 2019 - 11:44 par goyo

» Enfer !
Novalight EmptyJeu 11 Avr 2019 - 11:52 par Dom50

Qui est en ligne ?
Il y a en tout 3 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 3 Invités :: 1 Moteur de recherche

Aucun

Le record du nombre d'utilisateurs en ligne est de 29 le Mer 25 Fév 2015 - 14:01
Connexion

Récupérer mon mot de passe

Statistiques
Nous avons 177 membres enregistrés
L'utilisateur enregistré le plus récent est markerror

Nos membres ont posté un total de 7084 messages dans 608 sujets
Portail ORIC




Novalight

Page 1 sur 2 1, 2  Suivant

Aller en bas

Novalight Empty Novalight

Message par Symoon le Sam 9 Fév 2019 - 20:25

Je suis heureux de vous annoncer la sortie de Novalight, chargement cassette très accéléré Smile

Vous pouvez le télécharger ici, compilé pour la ligne de commande Windows, et avec les sources:
https://sourceforge.net/projects/euphorictools/files/Tape%20tools/Novalight/

Le sujet retraçant l'historique de sa réalisation:
http://forums.oric.org/t343-toujours-plus-vite

J'envoie à Didier un article pour le Mag.
Symoon
Symoon

Messages : 614
Date d'inscription : 26/04/2014

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par didierv le Dim 10 Fév 2019 - 7:32

Trop beau cet article (en lecture de loin)
Cela me fait un magnifique article de plus pour le prochain mag. Celui là, il va etre monstrueux.


_________________
DidierV - CEO Mag
alias coco.oric sur Defence-Force
didierv
didierv

Messages : 668
Date d'inscription : 19/01/2014
Age : 56
Localisation : Nord de la France

http://www.dmacoco.fr

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par Symoon le Dim 10 Fév 2019 - 15:04

Merci Didier.
ISS m'a signalé un bug dans le code pour la ROM 1.0, a priori il n'avait pas de conséquence (gros coup de bol ?), mais j'ai corrigé les sources et recompilé le programme. C'est dispo sur SourceForge.

Le bug était un saut mal calculé qui arrivait un octet "trop tôt". A priori l'octet en question ne posait pas de pb, alors que j'aurais imaginé un plantage. Il vaut $13, qui ne correspond pas à un code OP 6502. Aurait-il été alors interprété comme un NOP ?
Symoon
Symoon

Messages : 614
Date d'inscription : 26/04/2014

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par Symoon le Lun 11 Fév 2019 - 1:12

En testant en série ce soir, j'ai trouvé deux autres petits problèmes.
SourceForge est à jour.

1- la vitesse F16 était désactivée ! Elle est de retour et le loader est maintenant beaucoup plus rapide à charger! (mauvais copier/coller de ma part, corrigé)
2- J'avais réduit une pause entre deux parties du loader, mais a priori avec des fichiers multipart, ça ne plaît pas à Euphoric à partir de la 5e ou 6e partie (aucun pb sur vraies machines ou Oricutron). J'ai donc remis la pause à sa durée initiale (testé avec Karaté de Ere Informatique), même si je ne m'explique pas le pb. Corrigé.

Didier, je corrige donc l'article et je te renvoie tout... Again.
Symoon
Symoon

Messages : 614
Date d'inscription : 26/04/2014

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par didierv le Lun 11 Fév 2019 - 7:08

Hello, j'ai mis à jour mes zip ...
Pas de soucis. Je n'ai pas encore fait le bon à tirer du mag avec l'imprimeur Smile

_________________
DidierV - CEO Mag
alias coco.oric sur Defence-Force
didierv
didierv

Messages : 668
Date d'inscription : 19/01/2014
Age : 56
Localisation : Nord de la France

http://www.dmacoco.fr

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par Symoon le Mar 12 Fév 2019 - 7:33

Je réfléchis à une optimisation possible pour les multipart, qui réduirait la taille du loader pour les parties 2, 3, et suivantes.
A condition que la page 1 ne soit pas altérée, on gagnerait 0,3 ou 0,4 secondes pour chaque partie additionnelle.
Symoon
Symoon

Messages : 614
Date d'inscription : 26/04/2014

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par Symoon le Mer 13 Fév 2019 - 0:42

L'option 'Multipart booster' fonctionne en beta version Very Happy Elle permet de gagner environ 0.32 secondes pour chaque partie après la première. @DrPsy: Macadam Bumper tombe à 16 secondes de chargement Wink

Vu un autre bug: l'option 'old loader' est ignorée si elle est demandée avec la vitesse F16. Ce sera corrigé.

Je ne vais pas faire une release tout de suite, le temps de bien tester tout ça.
Symoon
Symoon

Messages : 614
Date d'inscription : 26/04/2014

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par didierv le Mer 13 Fév 2019 - 6:54

happy happy
Bravo Symooon

_________________
DidierV - CEO Mag
alias coco.oric sur Defence-Force
didierv
didierv

Messages : 668
Date d'inscription : 19/01/2014
Age : 56
Localisation : Nord de la France

http://www.dmacoco.fr

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par drpsy le Mer 13 Fév 2019 - 6:59

tu as le temps ! pas certain de pouvoir refaire une partie de quelque chose avant dimanche ;-)

_________________
>++++++++++[<++++++++>-]<.>++++++[<++++>-]<+.----.+++++++++++++..-------------.[-]
drpsy
drpsy

Messages : 197
Date d'inscription : 20/07/2014
Age : 47
Localisation : Lagny sur Marne

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par Symoon le Dim 17 Fév 2019 - 10:05

Au lieu de bien tester, je réfléchis à une dernière amélioration. C'est qu'il me restait 20µs a priori inutiles dans le décodage d'un octet non compressé ! Et comme je vais peut-être réussir à grapiller 7 octets, ce luxe de place et de temps permettrait peut-être de gagner encore quelques dixièmes de seconde.

Beaucoup de si, yapuka bosser, si j'ai le temps !
Symoon
Symoon

Messages : 614
Date d'inscription : 26/04/2014

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par Voyageur le Dim 17 Fév 2019 - 11:08

Ben quand on parle de 20 micro-secondes... c'est-a-dire 20 millionièmes de seconde, et qu'on est capable de jongler avec....
A ce niveau-la, pour moi, ça veut dire que tu as "plenty of time" ( des milliers de fois de par seconde au maximum ?) devant toi, non ?

Oups, sorry, je sors>>>  
Désolé
jocolor


_________________

Mais bravo pour tout ton travail !
Superbe ! J'adore !

happy

_________________
Projet : donner un second souffle à l'Oric Atmos...
Voyageur
Voyageur

Messages : 130
Date d'inscription : 30/11/2017
Age : 64
Localisation : SYDNEY, AUSTRALIE

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par Symoon le Dim 17 Fév 2019 - 12:03

Tu peux rester, je me faisais la même réfléxion sur le temps Wink
20µs et 7 octets, ça fait disons entre 3 et 5 instructions en assembleur, ce qui permet un mini patch sur un code existant ! C'est la magie de nos Oric qui travaillent super vite Razz
Symoon
Symoon

Messages : 614
Date d'inscription : 26/04/2014

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par Symoon le Jeu 21 Fév 2019 - 22:55

Bon voilà, version 1.1m en préparation. Il y a encore du boulot mais j'ai fait un premier test qui fonctionne ce soir. Gains supplémentaire depuis les dernières améliorations évoquées il y a peu: environ 0.3s pour un fichier de 37Ko.
Et surtout, pas de perte pour les petits fichiers (souvent, rendre le loader plus complexe et donc plus long, est pénalisant pour les petits programmes à charger).

J'ai à nouveau des idées pour gagner de la place (mettre en place un système de doubles banques qui se chargent alternativement), mais je commence à trouver difficile de gagner du temps dans le signal. Aujourd'hui Novalight optimise les octets qui se répètent en série (RLE), les octets qui se répètent mais éparpillés (dictionnaire), et optimise un peu les autres octets (l'évol que je viens de finir). A voir pour la suite.
Symoon
Symoon

Messages : 614
Date d'inscription : 26/04/2014

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par didierv le Ven 22 Fév 2019 - 7:13

Trop fort.
Le mag sort dans 8 jours (en théorie). S'il y a une update, je il'insererais, sinon ca fera une nouvelle page pour le mois d'avril !

_________________
DidierV - CEO Mag
alias coco.oric sur Defence-Force
didierv
didierv

Messages : 668
Date d'inscription : 19/01/2014
Age : 56
Localisation : Nord de la France

http://www.dmacoco.fr

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par Symoon le Ven 22 Fév 2019 - 7:35

Merci Didier!
Je n'aurai jamais le temps de finaliser le code, tester, "releaser" et écrire un article d'ici-là, tu peux y aller tranquille pour le Mag Wink
Symoon
Symoon

Messages : 614
Date d'inscription : 26/04/2014

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par Symoon le Sam 23 Fév 2019 - 13:58

Y a-t-il des mathématiciens dans la salle ? Je crois que le dictionnaire de Novalight peut être optimisé.

Ce que je fais actuellement (la compression RLE a déjà été faite, et les octets concernés sont ignorés):
1- je calcule la durée de chaque octet non compressé dans le signal Novalight, qui est: occurences*durée d'encodage. Par exemple, si "Z" dure 19 samples, et se retrouve 100 fois dans le fichier TAP, sa durée totale est de 19*100 = 1900.
2- le dictionnaire contient 14 entrées, donc je prends les 14 plus grandes "durées totales" calculées au point 1. Ainsi, j'enlève du signal non compressé la durée maximum.
3- dans le dictionnaire, chaque entrée va durer un temps différent (compris entre 9 et 16 samples), donc j'optimise l'assignation des octets à ces entrées: les octets que l'on rencontre plus plus (nombre d'occurrences) seront assignés aux entrées ayant la durée d'encodage la plus rapide. Ainsi je minimise la durée que je ré-insère dans le signal Novalight.

Mais ce raisonnement semble parfois faux.

Exemple: dans un fichier TAP, un octet "A" codé sur 22 samples est présent 4 fois, et un autre octet "B" codé sur 12 samples est présent 8 fois.
Donc la durée non compressée est:
A: 22 *4 = 88
B: 12*8 = 96 total 96+88= 184

Imaginons qu'il ne reste qu'une entrée dans le dictionnaire, qui serait codée sur 4 samples.
Ma logique me fait choisir "B" car il occupe le + de place dans le signal d'origine (il vaut mieux retirer 96 samples que 88 !). Cela donne au final, pour A et B, un signal dont la durée est:
4*8 = 32; 32 + 88 = 120 samples

Mais si j'avais pris "A" à la place, j'aurais:
4*4 = 16; 16 + 96 = 112 samples

C'est mieux !?

Donc avec mon dictionnaire, je gagne du temps, mais je ne suis pas optimal. Je n'arrive pas du tout à voir comment calculer cet optimal. Comment faire ? Y a-t-il une formule magique, pour 256 valeurs occupant 14 entrées d'un dictionnaire ? (je n'ose pas faire toutes les combinaisons possibles, du genre 256 puissance 14...)
Symoon
Symoon

Messages : 614
Date d'inscription : 26/04/2014

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par Symoon le Sam 23 Fév 2019 - 18:52

Bon, pour les calculs, en utilisant une valeur moyenne pour la durée d'encodage dans le dictionnaire, cela fixe une variable et simplifie grandement le problème qui se résume à choisir le plus grand (temps retiré - nouveau temps réinjecté(moyen donc))

(et pour être franc, ça ne change pas grand chose au final)
Symoon
Symoon

Messages : 614
Date d'inscription : 26/04/2014

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par Symoon le Lun 25 Fév 2019 - 22:32

Tiens, vous vous souvenez que les premiers Atmos ont une ROM buggée au niveau chargement K7, et qu'Oric avait sorti un petit programme, chargé en premier, qui permettait de neutraliser ce problème ?

Je réalise que ce petit programme écrase le dictionnaire Novalight en page 2, et fera donc planter un chargement sur Oric-1 et sur les Atmos buggés.

Je vais donc sans doute changer le générateur Novalight, pour qu'il détecte ce programme, et le zappe. Comme Novalight n'utilise pas le code buggé de la ROM Atmos, ça ne posera pas de problème (et ça ira plus vite !)
Symoon
Symoon

Messages : 614
Date d'inscription : 26/04/2014

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par kenneth le Lun 25 Fév 2019 - 22:49

En fait, si je comprends bien, on assigne aux valeurs les plus "encombrantes"(duree et nombre) une valeur tres courte que dictionnaire permet de retrouver le code d origine...Ca me fait penser a une enigme de math a base de "probabilités"...là je sèche. Embarassed clown
kenneth
kenneth
Modérateur

Messages : 619
Date d'inscription : 13/01/2013
Age : 51
Localisation : 972

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par kenneth le Lun 25 Fév 2019 - 22:59

Ou alors on fait un tri par occurence prioritaire, on prend les 30 valeurs qui ont le plus d occurence, on les multiplie chacun par leur duree de sample, on les trie dans l'ordre d'encombrement, et on prends les 14 plus gros pour les reassigner dans le dictionnaire.
kenneth
kenneth
Modérateur

Messages : 619
Date d'inscription : 13/01/2013
Age : 51
Localisation : 972

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par Symoon le Lun 25 Fév 2019 - 23:04

kenneth a écrit:En fait, si je comprends bien, on assigne aux valeurs les plus "encombrantes"(duree et nombre) une valeur tres courte que dictionnaire permet de retrouver le code d origine...Ca me fait penser a une enigme de math a base de "probabilités"...là je sèche. Embarassed clown

En gros c'est ça:
1- on analyse le fichier à charger
2- les 14 octets qui occupent le plus de temps dans le signal (occurrences x durée d'encodage "normal") vont partir dans un dictionnaire qui leur attribue un encodage spécial plus rapide que le "normal".
3- mais on va donc "supprimer du temps long" et "ré-injecter du temps court". Et ce temps ré-injecté est parfois malgré tout important (notamment si on ré-injecte beaucoup d'occurrences), et il aurait alors  été avantageux de prendre un autre octet, qui aurait "retiré" un peu moins de temps (classement de l'étape 2), mais ré-injecté beaucoup moins de temps !

Pour être vraiment optimal, le choix de l'étape 2 doit donc dépendre aussi de ce qu'on ré-injecte à l'étape 3.
Et là où c'est rigolo, c'est que le temps de l'étape 3 dépend de la place de chacun des 14 octets dans le dictionnaire, chaque place ayant une durée d'encodage différente.

Je me trompe peut-être, mais si on veut poser toutes les combinaisons que cela offre, on est sur un nombre à 35 chiffres Razz

J'ai donc utilisé une valeur moyenne pour estimer la durée d'encodage du dictionnaire, pour simplifier. Et j'ai vu l'effet sur Zorgon: on choisit un octet différent dans le dico, ce qui fait gagner quelques centièmes. Je me dis donc qu'utiliser la moyenne est suffisant: gérer les milliards de milliards de milliards de combinatoires pour gagner ensuite des millièmes de seconde... On s'en passera Wink
Symoon
Symoon

Messages : 614
Date d'inscription : 26/04/2014

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par Symoon le Mar 26 Fév 2019 - 1:46

Symoon a écrit:Je vais donc sans doute changer le générateur Novalight, pour qu'il détecte ce programme, et le zappe. Comme Novalight n'utilise pas le code buggé de la ROM Atmos, ça ne posera pas de problème (et ça ira plus vite !)

Ah, fausse bonne idée car Loriciels par exemple, utilise ce petit programme Atmos pour y planquer une protection. Je dois donc déplacer le dictionnaire hors de la page 2, c'était un mauvais choix de conception : il me faisait gagner de la place pour le programme principal, mais voilà, des dizaines de programmes ne fonctionnent pas, du coup.

Soit j'ajoute le dictionnaire après la Common Area 3, mais cela laisse vraiment peu de place dans la pile.
Soit (et c'est là que je perds tout le monde) j'ajoute à la Common Area 2 un loader de dictionnaire qui écrasera les 14 premiers octets de la Common Area 0, laquelle finira par charger la Common Area 4 qu'il me faudra optimiser un peu pour y mettre un loader qui rechargera le début de la Common Area 0, ainsi je n'impacte pas le multipart booster.

En revanche je pense que ça sonne le glas du "old loader" impossible à débugger, et donc également de l'option "no loader" car elle ne servirait plus à rien du coup.
Symoon
Symoon

Messages : 614
Date d'inscription : 26/04/2014

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par Symoon le Mer 27 Fév 2019 - 8:19

Je change donc mon fusil d'épaule et je bosse à une v1.2 qui devrait résoudre les problèmes de compatibilité avec la page 2.
En réflexion aussi: une tentative relocalisation de Novalight quand, dans le TAP à charger, on a un programme qui se charge en page 1.

Des idées pour le moment, un peu de boulot en perspective.
Symoon
Symoon

Messages : 614
Date d'inscription : 26/04/2014

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par drpsy le Jeu 28 Fév 2019 - 13:59

Hello, Au fait, il y a 256 octets de libres de B400 à B500, non ? les codes ASCII de 0 à 31 sont des caractères d'échappement et ne sont dont pas définis. Quelqu'un à déjà essayé d'y mettre du code ?

EDIT : en tout cas, ça résiste à une bascule TEXT-->HIRES-->TEXT. Et le code est bien déplacé en $9800 en mode HIRES.

_________________
>++++++++++[<++++++++>-]<.>++++++[<++++>-]<+.----.+++++++++++++..-------------.[-]
drpsy
drpsy

Messages : 197
Date d'inscription : 20/07/2014
Age : 47
Localisation : Lagny sur Marne

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par kenneth le Jeu 28 Fév 2019 - 14:06

Je me souviens y avoir mis quelques variables, et mon code déconnait plein pot. Je me demande si sous emulateur, cette zone ne serait pas "instable"
kenneth
kenneth
Modérateur

Messages : 619
Date d'inscription : 13/01/2013
Age : 51
Localisation : 972

Revenir en haut Aller en bas

Novalight Empty Re: Novalight

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 1 sur 2 1, 2  Suivant

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum