dev EXL 100
Modérateurs : Papy.G, fneck, Carl
Re: dev EXL 100
J'ai remis à jour le DevKit et il est maintenant sous forme de répertoire (plus simple pour les updates).
Le programme pcx2jif fonctionne enfin => gain moyen de 25% sur le format PCX !!!
Vous trouverez des exemples dans le répertoire bitmaps...
Quel est le format de la compression... je vous laisse regarder les sources pour l'en-tête. Pour les données elles mêmes c'est simple, voici l'algo de décompression:
Lecture Octet V
si bit 7 (poids fort) est à 0 alors (le reste de V contient la répétition + la valeur)
rept = ((bits 3 à 6) + 1) * 8 (Donc de 1 à 128 répétition du pixel)
couleur pixel = bit 0 à 2 (donc une couleur de 0 à 7)
sinon
Nb groupes de 3 octets = (bits 0 à 6) +1 (donc 128 groupes de 3 octets - 8 pixels - non compressés)
On lit ensuite Nb groupes de 3 octets (organisé comme en VRAM: B G R B G R etc..)
fsi
Et pis c'est tout... 6502man tu as de quoi t'amuser ... et puis aussi l'ami Happyleptic qui après avoir initié un sujet a complètement disparu, sans doute est-il en train de finaliser son compilateur GNU C++ pour Exl100... ou bien d'afficher Print Bonjour en assembleur
Au programme pour les semaines qui viennent: un chargeur d'image sur K7 et sur disquette pour montrer que c'est possible. Malheureusement très occupé je serais... donc la patience sera de mise.
Les outils ne resteront cependant pas dans l'état car je les trouve peu pratique finalement à l'usage. Je vais les fusionner en 2 outils:
- OBJ2EXL qui pourra traduire un binaire exécutable en fichier EXELDOS (pour la commande EXEC), fichier K7 (pour le loader Basic), fichier Basic (à charger via le simulateur clavier). Chaque format possèdera le même entête. On pourra très simplement généré des supports différents avec le même fichier objet.
- BIN2EXL qui traduira un binaire quelconque (image, son, texte, ou autres) possédant ou non un entête en un fichier Exeldos, K7 ou Basic exploitable uniquement par le programme capable de comprendre l'entête/binaire.
- A cela s'ajoutera PCX2JIF dans une forme simplifiée (BIN2EXl fournira les changements de format).
- et il faut que je bidouille le désassembler de Daniel.
Pour les outils suivants je pense à :
- un outil pour traduire un fichier non binaire sous forme d'une suite d'enregistrements pour disquette/K7. C'est pas encore très clair.
- commencer doucement quelques API très simples
- réfléchir au mode texte: format et compression d'un écran en mode texte, format et outil de conversion pour sprites en mode texte, etc.
- tester un peu les possibilités de faire de la Zik sous interruption
Le programme pcx2jif fonctionne enfin => gain moyen de 25% sur le format PCX !!!
Vous trouverez des exemples dans le répertoire bitmaps...
Quel est le format de la compression... je vous laisse regarder les sources pour l'en-tête. Pour les données elles mêmes c'est simple, voici l'algo de décompression:
Lecture Octet V
si bit 7 (poids fort) est à 0 alors (le reste de V contient la répétition + la valeur)
rept = ((bits 3 à 6) + 1) * 8 (Donc de 1 à 128 répétition du pixel)
couleur pixel = bit 0 à 2 (donc une couleur de 0 à 7)
sinon
Nb groupes de 3 octets = (bits 0 à 6) +1 (donc 128 groupes de 3 octets - 8 pixels - non compressés)
On lit ensuite Nb groupes de 3 octets (organisé comme en VRAM: B G R B G R etc..)
fsi
Et pis c'est tout... 6502man tu as de quoi t'amuser ... et puis aussi l'ami Happyleptic qui après avoir initié un sujet a complètement disparu, sans doute est-il en train de finaliser son compilateur GNU C++ pour Exl100... ou bien d'afficher Print Bonjour en assembleur
Au programme pour les semaines qui viennent: un chargeur d'image sur K7 et sur disquette pour montrer que c'est possible. Malheureusement très occupé je serais... donc la patience sera de mise.
Les outils ne resteront cependant pas dans l'état car je les trouve peu pratique finalement à l'usage. Je vais les fusionner en 2 outils:
- OBJ2EXL qui pourra traduire un binaire exécutable en fichier EXELDOS (pour la commande EXEC), fichier K7 (pour le loader Basic), fichier Basic (à charger via le simulateur clavier). Chaque format possèdera le même entête. On pourra très simplement généré des supports différents avec le même fichier objet.
- BIN2EXL qui traduira un binaire quelconque (image, son, texte, ou autres) possédant ou non un entête en un fichier Exeldos, K7 ou Basic exploitable uniquement par le programme capable de comprendre l'entête/binaire.
- A cela s'ajoutera PCX2JIF dans une forme simplifiée (BIN2EXl fournira les changements de format).
- et il faut que je bidouille le désassembler de Daniel.
Pour les outils suivants je pense à :
- un outil pour traduire un fichier non binaire sous forme d'une suite d'enregistrements pour disquette/K7. C'est pas encore très clair.
- commencer doucement quelques API très simples
- réfléchir au mode texte: format et compression d'un écran en mode texte, format et outil de conversion pour sprites en mode texte, etc.
- tester un peu les possibilités de faire de la Zik sous interruption
Re: dev EXL 100
Parce que c'est très utile, Voici un petit désassembler 7020 Exelvision à partir des sources gentiment données par Daniel:
- il marche en mode console
- il affiche LVDP au lieu du SWAP et WVDP au lieu de MOVP ?, P46
- il permet de replacer l'adressage à partir d'une adresse (relocation)
- il permet de désassembler une zone précise
Usage: desasm7020 source [AdrReloc] [AdrDebut AdrFin]
Adreloc est en option sauf si AdrDebut, AdrFin sont précisées
le couple AdrDebut et AdrFin est en option
Exemple: desasm7020 basic.rom 0x0200 0x0250 0
désassemble le fichier basic.rom (binaire de la cartouche BASIC) en considérant une relocation en 0x0200, en commençant à partir de l'adresse 0x0250 et jusqu'à la fin (AdrDebut=0 => début fichier, AdrFin=0 => fin du fichier)
A noter qu'il est préférable de coller les zones de DATA au début et à la fin, mais pas en plein milieu comme sur la cartouche BASIC !
Encore Merci Daniel pour les sources... j'espère que tu acceptes les quelques modifs dans le code
En ayant vu quelques portions de code de Daniel, je peux affirmer que cet individu code comme il respire. Je n'ose imaginer la beauté de DcExel...
- il marche en mode console
- il affiche LVDP au lieu du SWAP et WVDP au lieu de MOVP ?, P46
- il permet de replacer l'adressage à partir d'une adresse (relocation)
- il permet de désassembler une zone précise
Usage: desasm7020 source [AdrReloc] [AdrDebut AdrFin]
Adreloc est en option sauf si AdrDebut, AdrFin sont précisées
le couple AdrDebut et AdrFin est en option
Exemple: desasm7020 basic.rom 0x0200 0x0250 0
désassemble le fichier basic.rom (binaire de la cartouche BASIC) en considérant une relocation en 0x0200, en commençant à partir de l'adresse 0x0250 et jusqu'à la fin (AdrDebut=0 => début fichier, AdrFin=0 => fin du fichier)
A noter qu'il est préférable de coller les zones de DATA au début et à la fin, mais pas en plein milieu comme sur la cartouche BASIC !
Encore Merci Daniel pour les sources... j'espère que tu acceptes les quelques modifs dans le code
En ayant vu quelques portions de code de Daniel, je peux affirmer que cet individu code comme il respire. Je n'ose imaginer la beauté de DcExel...
Dernière modification par jester le 03 nov. 2009 21:22, modifié 1 fois.
Re: dev EXL 100
Mieux vaut imaginer, car en réalité dcexel n'est pas encore très propre. Mais ça viendra, et alors je diffuserai les sourcesjester a écrit :Je n'ose imaginer la beauté de DcExel...
J'ai programmé mon premier désassembleur 6809 en 1984, en Basic MO5. Depuis je n'arrête pas de le refaire, dans tous les languages et sur toutes les plateformes. J'ai au moins douze versions, et 25 ans d'expérience. Le tms7000 est beaucoup plus simple, j'ai mis moins d'une journée pour l'écrire
Bien sûr, si j'ai donné les sources, c'est pour qu'elles soient utilisées et améliorées, il ne faut pas hésiter
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
- fneck
- Site Admin
- Messages : 17495
- Inscription : 01 avr. 2007 12:03
- Localisation : Drôme Provençale (26)
- Contact :
Re: dev EXL 100
Si vous avez le courage de remonter dans les premiers posts qui parlent du développement de DCExel, je vous avais assuré alors qu'à partir du moment où Daniel avait décidé de faire cet émulateur, il existerait bel et bien, documentation disponible ou pas...jester a écrit :En ayant vu quelques portions de code de Daniel, je peux affirmer que cet individu code comme il respire. Je n'ose imaginer la beauté de DcExel...
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
-
- Messages : 128
- Inscription : 31 juil. 2008 14:02
- Localisation : la cadiere d'azur - var (83)
Re: dev EXL 100
Alors ca c'est très très bien , très bonne idée , c'est courageux et intelligent.Daniel a écrit :Mais ça viendra, et alors je diffuserai les sources
PS : Jester , tu pourrais pas nous mettre son message sur le forum qu'on puisse le lire ? (Puis ouais , il est sympa on dirait ,j'pense qu'il répondra aux questions techniques sans problème).
A+
ps2 : Daniel je termine la scan du "guide de l'exeltel" ce week end.
Re: dev EXL 100
Tu réponds sur le mauvais topic gatesbillou... tu veux parler de la réponse de JC Repetto ? Et bien non je ne mettrais pas le message car je ne mets pas mes mails sur un forum. Désolé. Comme je disais ce n'est pas une interview...
Je vous ai remonté toutes les infos obtenues. L'homme est sympa mais c'est loin et il ne peut pas répondre aux questions techniques très précises... 25ans quand même les enfants...
Maintenant je vais remercier le monsieur et le laisser tranquille.
Pour obtenir des réponses techniques j'ai d'autres contact mais Fabrice a sans nul doute les mêmes, donc il n'est pas question d'harceler les gens.
Envoyez-moi vos questions techniques en MP, je ferais passer lorsque je contacterais une autre personne.
Je vous ai remonté toutes les infos obtenues. L'homme est sympa mais c'est loin et il ne peut pas répondre aux questions techniques très précises... 25ans quand même les enfants...
Maintenant je vais remercier le monsieur et le laisser tranquille.
Pour obtenir des réponses techniques j'ai d'autres contact mais Fabrice a sans nul doute les mêmes, donc il n'est pas question d'harceler les gens.
Envoyez-moi vos questions techniques en MP, je ferais passer lorsque je contacterais une autre personne.
Re: dev EXL 100
Tu as bien raison. C'est clair qu'un message à destination privée ne se balance pas sur le net, aux yeux de tous. Cela n'est pas correct.jester a écrit :Tu réponds sur le mauvais topic gatesbillou... tu veux parler de la réponse de JC Repetto ? Et bien non je ne mettrais pas le message car je ne mets pas mes mails sur un forum. Désolé.
Je te rejoins également sur ce point. Mon problème est aussi là: J'ai envoyé un nombre de messages important à des acteurs d'Exelvision et je patiente ensuite pour les réponses. Je fais des relances qu'après un bon moment resté sans réponse car je ne désire surtout pas gêner les destinataires que j'imagine occupés, préoccupés par des sujets bien plus importants. C'est un sacré jeu de patience... parfois même déroutant quand les réponses tardent vraiment à venir.jester a écrit : donc il n'est pas question d'harceler les gens.
-
- Messages : 128
- Inscription : 31 juil. 2008 14:02
- Localisation : la cadiere d'azur - var (83)
Re: dev EXL 100
Je ne vais pas rentrer dans le jeu de la polémique , je considérai juste qu'un email technique dont le contenue était dévoilé n'était pas comme un email intime, sinon je ne me serai pas permis .
Pour ce qui est de harceler le gens , il est claire que si personne ne centralise les demandes et ne diffuse les réponses , il risque d'y avoir des doublons , et dans ce cas , ca risque d'être genant en effet.
A+ les amis.
Pour ce qui est de harceler le gens , il est claire que si personne ne centralise les demandes et ne diffuse les réponses , il risque d'y avoir des doublons , et dans ce cas , ca risque d'être genant en effet.
A+ les amis.
Re: dev EXL 100
Ce n'est pas un mail entre deux collègues qui travaillent sur le même projet... je me vois mal demander "Attention tout ce que vous direz sera recopié sur un forum publique".
J'ai donné tout le contenu "technique" du mail... et je peux vous affirmer que du coté de JC Repetto c'est mort, il ne dort pas depuis 25ans avec un classeur Exelvision sur sa table de nuit !
Mais il pourra peut être aider s'il retrouve des documentations intéressantes dans ses cartons... ou pas.
Je répète donc que si vous avez des questions techniques bien précises, MP les moi... je ne garderais pas la réponse pour moi De toute manière je n'attaque pas avec ces questions, je demande déjà "Ascusez moi missieur, asque vous pivez répondre à questions techniques, ascusi moi!"
J'ai donné tout le contenu "technique" du mail... et je peux vous affirmer que du coté de JC Repetto c'est mort, il ne dort pas depuis 25ans avec un classeur Exelvision sur sa table de nuit !
Mais il pourra peut être aider s'il retrouve des documentations intéressantes dans ses cartons... ou pas.
Je répète donc que si vous avez des questions techniques bien précises, MP les moi... je ne garderais pas la réponse pour moi De toute manière je n'attaque pas avec ces questions, je demande déjà "Ascusez moi missieur, asque vous pivez répondre à questions techniques, ascusi moi!"
Re: dev EXL 100
Sacré boulot Jester, felicitation.
Par contre je n'ai pas trouver de visionneur pour exelvision des fichiers compressés en jif ???
Par contre je n'ai pas trouver de visionneur pour exelvision des fichiers compressés en jif ???
Que veut tu dires ?Et pis c'est tout... 6502man tu as de quoi t'amuser ...
Re: dev EXL 100
La visionneuse est à venir car
1) je dois retravailler mon format K7... et donc les outils !
2) le faire pour ExelDos est long et chiant car il faut filtrer tous les fichiers JIF du catalogue et ensuite les parcourir... j'aimerais une petite API pour écrire les choses un fois proprement.
Mais je promets une petite démo très basique pour visionner des images...
Sinon tu peux t'amuser avec les convertisseurs et même intégrer mon format de compression dans ton outil pour les images
1) je dois retravailler mon format K7... et donc les outils !
2) le faire pour ExelDos est long et chiant car il faut filtrer tous les fichiers JIF du catalogue et ensuite les parcourir... j'aimerais une petite API pour écrire les choses un fois proprement.
Mais je promets une petite démo très basique pour visionner des images...
Sinon tu peux t'amuser avec les convertisseurs et même intégrer mon format de compression dans ton outil pour les images
Re: dev EXL 100
Je l'integrerais pour une prochaine version, mais d'abord je voudrais pouvoir les decompresser sur exelvision.jester a écrit :Sinon tu peux t'amuser avec les convertisseurs et même intégrer mon format de compression dans ton outil pour les images
Re: dev EXL 100
En attendant j'ai amélioré un peu l'affichage du désassembleur: Il affiche maintenant les labels TEMP1, TEMP2, PTRSON, etc. à la place des valeurs de registres utilisées par les fonctions systèmes.
Pour le coup ça rend très lisible les programmes en ayant la doc sous les yeux, on peut interpréter les paramètres des TRAP très facilement.
Si vous avez des idées/demandes pour améliorer ce désassembleur ou bien d'autres outils, je suis à l'écoute...
J'aimerais bien construire un Eclipse pour développement Exelvision, mais le temps de développement d'une usine à gaz pour développer risque d'être très long... je vais donc rester sur des petits outils consoles à insérer dans un éditeur avancé (comme UltraEdit ou autres).
Pour le coup ça rend très lisible les programmes en ayant la doc sous les yeux, on peut interpréter les paramètres des TRAP très facilement.
Si vous avez des idées/demandes pour améliorer ce désassembleur ou bien d'autres outils, je suis à l'écoute...
J'aimerais bien construire un Eclipse pour développement Exelvision, mais le temps de développement d'une usine à gaz pour développer risque d'être très long... je vais donc rester sur des petits outils consoles à insérer dans un éditeur avancé (comme UltraEdit ou autres).
Re: dev EXL 100
En attendant mieux voici deux archives avec un programme pour afficher des images stockées sur K7:
1) demo1.zip
- Chargeur d'image couleur de n'importe qu'elle résolution jusqu'à 320x250
- Centrage automatique de l'image
- Compatible Exl100 et Exeltel
- Affichage optimisée pour Exeltel
- les images sont compressées
- la routine de décompression est réutilisable (décodage ligne par ligne)
- Affichage de message en mode graphique (c'est pas du mode mixte)
- contrôle des fichiers
2) demo2.zip
- Chargeur d'image monochrome de n'importe qu'elle résolution jusqu'à 640x250
- Centrage automatique de l'image
- Compatible Exeltel
- les images sont compressées
- la routine de décompression est réutilisable (décodage ligne par ligne)
- Affichage de message en mode graphique
- contrôle des fichiers
J'ai ajouté des fichiers images au format K7 et les sources (pour les curieux).
Pour utiliser les fichiers .K7 sur une vraie machine, il faut l'outil de Daniel disponible sur sont site qui traduit en Wav.
Les programmes à exécuter sont les fichiers demoX.k7 : il suffit de taper RUN"1" sur ExelBasic+ (ou LOAD"1" + RUN)
Sur la vraie machine on lance la lecture du fichier après avoir pressé la touche ESC.
Sur DcExel il ne faut pas oublier de charger les fichiers K7 au fur et à mesure.
Vous me direz si il y a des bugs...
PS: les liens sont temporaires.
1) demo1.zip
- Chargeur d'image couleur de n'importe qu'elle résolution jusqu'à 320x250
- Centrage automatique de l'image
- Compatible Exl100 et Exeltel
- Affichage optimisée pour Exeltel
- les images sont compressées
- la routine de décompression est réutilisable (décodage ligne par ligne)
- Affichage de message en mode graphique (c'est pas du mode mixte)
- contrôle des fichiers
2) demo2.zip
- Chargeur d'image monochrome de n'importe qu'elle résolution jusqu'à 640x250
- Centrage automatique de l'image
- Compatible Exeltel
- les images sont compressées
- la routine de décompression est réutilisable (décodage ligne par ligne)
- Affichage de message en mode graphique
- contrôle des fichiers
J'ai ajouté des fichiers images au format K7 et les sources (pour les curieux).
Pour utiliser les fichiers .K7 sur une vraie machine, il faut l'outil de Daniel disponible sur sont site qui traduit en Wav.
Les programmes à exécuter sont les fichiers demoX.k7 : il suffit de taper RUN"1" sur ExelBasic+ (ou LOAD"1" + RUN)
Sur la vraie machine on lance la lecture du fichier après avoir pressé la touche ESC.
Sur DcExel il ne faut pas oublier de charger les fichiers K7 au fur et à mesure.
Vous me direz si il y a des bugs...
PS: les liens sont temporaires.
- fneck
- Site Admin
- Messages : 17495
- Inscription : 01 avr. 2007 12:03
- Localisation : Drôme Provençale (26)
- Contact :
Re: dev EXL 100
Sympa de visualiser ces images, je me replace à l'époque ça nous aurait fait rêver autant de puissance...
Je ne sais pas s'il s'agit d'un problème de l"émulateur, de la démo ou de l'utilisateur, mais après avoir utilisé le programme, chargé plusieurs images et fait un init (ESC) je n'arrive plus à charger la démo, je suis obligé de quitter puis relancer l'émulateur....
Et oui, j'ai bien changé la cassette via le menu
Je ne sais pas s'il s'agit d'un problème de l"émulateur, de la démo ou de l'utilisateur, mais après avoir utilisé le programme, chargé plusieurs images et fait un init (ESC) je n'arrive plus à charger la démo, je suis obligé de quitter puis relancer l'émulateur....
Et oui, j'ai bien changé la cassette via le menu
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3