asteroid pour TO8...
Modérateur : Politburo
- stefff285
- Fonctionne à 300 bauds
- Messages : 201
- Enregistré le : 03 mai 2009 16:16
- Localisation : dijon
- Contact :
coucou yoan charmé de faire ta connaissance !
pour ma part je debute en asm 6809 et je suis plutot
graphiste donc pas de bleme une fois que j'ai recupéré
mon amiga 1200 de la part de jérome car avec deluxe
paint : impeccable de faire des sprites (j'ai entendu dire
que pour les jeux gameboy et gameboy color et encore
pour quelques consoles comme pour certains jeux ds
il etait encore utilisé !)
hum ce qui ne m'empechera pas d'essayer de comprendre
le code, j'ai capté (dans la logique) le source des shaded
bobs mais bon adressage memoire a tous les etages
hey hey pas encore alerte avec ce genre de choses
si tu veux voir ce que je fais:
http://yoursteff.blogspot.com
ou encore
http://yoursteff.lautre.net
a tres bientot
steff
edit la preuve par l'image quand on se lance ben en avant
pour ma part je debute en asm 6809 et je suis plutot
graphiste donc pas de bleme une fois que j'ai recupéré
mon amiga 1200 de la part de jérome car avec deluxe
paint : impeccable de faire des sprites (j'ai entendu dire
que pour les jeux gameboy et gameboy color et encore
pour quelques consoles comme pour certains jeux ds
il etait encore utilisé !)
hum ce qui ne m'empechera pas d'essayer de comprendre
le code, j'ai capté (dans la logique) le source des shaded
bobs mais bon adressage memoire a tous les etages
hey hey pas encore alerte avec ce genre de choses
si tu veux voir ce que je fais:
http://yoursteff.blogspot.com
ou encore
http://yoursteff.lautre.net
a tres bientot
steff
edit la preuve par l'image quand on se lance ben en avant
- gilles
- Fonctionne à 9600 bauds
- Messages : 3100
- Enregistré le : 17 avr. 2007 21:25
- Localisation : 44
- Contact :
Re: asteroid pour TO8...
bah, la cartouche 6809 du TO7 heu... c'est bien mais y'a mieux...
Je pense que je vais travailler un peu sur la chaine de compilation gcc / as09 pour terminer Asteroid avec un peu de C.
Ca devrait etre réutilisable pour autre chose... ca peut même donner une sorte de framework de dev C/ASM pour TO8 si j'ai le courage de faire du réutilisable...
Entre le boulot d'Eric et le compilateur C pour Vectrex je pense qu'on peut faire quelquechose de pas mal du tout...
=> des nouvelles bientôt sur ma page www.alternative-system.com
(mais ce soir, j'écris une petite connerie)
Je pense que je vais travailler un peu sur la chaine de compilation gcc / as09 pour terminer Asteroid avec un peu de C.
Ca devrait etre réutilisable pour autre chose... ca peut même donner une sorte de framework de dev C/ASM pour TO8 si j'ai le courage de faire du réutilisable...
Entre le boulot d'Eric et le compilateur C pour Vectrex je pense qu'on peut faire quelquechose de pas mal du tout...
=> des nouvelles bientôt sur ma page www.alternative-system.com
(mais ce soir, j'écris une petite connerie)
- stefff285
- Fonctionne à 300 bauds
- Messages : 201
- Enregistré le : 03 mai 2009 16:16
- Localisation : dijon
- Contact :
Re: asteroid pour TO8...
youplaboom c cool ca !
a bientot donc
steff
a bientot donc
steff
-
- Fonctionne à 300 bauds
- Messages : 134
- Enregistré le : 24 oct. 2007 09:48
- Localisation : Brest (france, 29)
Re: asteroid pour TO8...
Ben il y a aussi le compilateur ASM de préhisto (c6809).gilles a écrit :bah, la cartouche 6809 du TO7 heu... c'est bien mais y'a mieux...
Sinon perso pour certains effets de la démo "Space Project" mes 1er protos (avant le passage de préhisto pour les optims) étaient en C avec ASM sous gcc6809.. C'est pas mal pour mettre au point. Il faut juste passer outre le faite que le compilo avorte quand il y a des expressions trop complexes et qu'il manque de registres.
A noter: j'ai réussi aussi à recompiler un gcc4 pour 6809 et voir les trucs +/- sympa qu'il propose sur le forum de logicielsmoto:
- - un mode où B et X ne sont pas préservés sur la pile, et sont utilisés pour passer des valeurs aux fonctions (sympa pour économiser des cycles)
- il sait étendre le nombre de registres en utilisant l'adressage direct via DP en fournissant potentiellement 256 nouveaux registres globaux (cool, c'était un vieux soucis avec l'ancien GCC qui plantait sur du code 6809e par manque de registre sur des expressions complexes)
- il sait utiliser une notion de far pointer pour appeler des fonctions dans une autre bank mémoire et donc dépasser la limite des 64Ko (trop bien ce truc... mais ca serait encore mieux s'il ne fallait pas spécifier les banks des fonctions mais que le linker se débrouillait tout seul.. et aussi si ca pouvait marcher pour les structures de données)
- gilles
- Fonctionne à 9600 bauds
- Messages : 3100
- Enregistré le : 17 avr. 2007 21:25
- Localisation : 44
- Contact :
Re: asteroid pour TO8...
Excellent, ben maintenant y'a plus qu'à__sam__ a écrit :Ben il y a aussi le compilateur ASM de préhisto (c6809).gilles a écrit :bah, la cartouche 6809 du TO7 heu... c'est bien mais y'a mieux...
Sinon perso pour certains effets de la démo "Space Project" mes 1er protos (avant le passage de préhisto pour les optims) étaient en C avec ASM sous gcc6809.. C'est pas mal pour mettre au point. Il faut juste passer outre le faite que le compilo avorte quand il y a des expressions trop complexes et qu'il manque de registres.
A noter: j'ai réussi aussi à recompiler un gcc4 pour 6809 et voir les trucs +/- sympa qu'il propose sur le forum de logicielsmoto:
- - un mode où B et X ne sont pas préservés sur la pile, et sont utilisés pour passer des valeurs aux fonctions (sympa pour économiser des cycles)
- il sait étendre le nombre de registres en utilisant l'adressage direct via DP en fournissant potentiellement 256 nouveaux registres globaux (cool, c'était un vieux soucis avec l'ancien GCC qui plantait sur du code 6809e par manque de registre sur des expressions complexes)
- il sait utiliser une notion de far pointer pour appeler des fonctions dans une autre bank mémoire et donc dépasser la limite des 64Ko (trop bien ce truc... mais ca serait encore mieux s'il ne fallait pas spécifier les banks des fonctions mais que le linker se débrouillait tout seul.. et aussi si ca pouvait marcher pour les structures de données)
Quelques tests ce soir... Avec probablement un projet sur sourceforge pour regrouper tout ça...
- gilles
- Fonctionne à 9600 bauds
- Messages : 3100
- Enregistré le : 17 avr. 2007 21:25
- Localisation : 44
- Contact :
Re: asteroid pour TO8...
bon premiers tests assez décevants,
Les outils d'Eric sont un peu bordéliques et pas totalement fonctionnels sous Win XP, éventuellement en modifiant le PATH on doit pouvoir s'en sortir mais bof, le but est de placer ses fichiers dans un répertoire puis lancer un make ou tout au plus un ..\..\make
Les outils vectrex sont mieux packagés mais trop vieux, l'outil stobin ne fonctionne pas sous WINXP, il utilise l'extendeur DOS v1.0 de djgpp.
Les outils d'Eric sont un peu bordéliques et pas totalement fonctionnels sous Win XP, éventuellement en modifiant le PATH on doit pouvoir s'en sortir mais bof, le but est de placer ses fichiers dans un répertoire puis lancer un make ou tout au plus un ..\..\make
Les outils vectrex sont mieux packagés mais trop vieux, l'outil stobin ne fonctionne pas sous WINXP, il utilise l'extendeur DOS v1.0 de djgpp.
- stefff285
- Fonctionne à 300 bauds
- Messages : 201
- Enregistré le : 03 mai 2009 16:16
- Localisation : dijon
- Contact :
Re: asteroid pour TO8...
bonjour a tous
je viens d'avoir une idee pour de la video sous téo
de la video en ascii art
reste a faire le film en silhouette et savoir apres si
je peux rajouter une bande son ce qui sera hachement
plus dur !!
bref ca je devrai y arriver
je vais faire un essai avec un de mes film et apres
on verra
prehisto si ce projet t'interesse dis moi quoi ^^
steff qui vous dis a bientot
------------------
je viens d'avoir une idee pour de la video sous téo
de la video en ascii art
reste a faire le film en silhouette et savoir apres si
je peux rajouter une bande son ce qui sera hachement
plus dur !!
bref ca je devrai y arriver
je vais faire un essai avec un de mes film et apres
on verra
prehisto si ce projet t'interesse dis moi quoi ^^
steff qui vous dis a bientot
------------------
- gilles
- Fonctionne à 9600 bauds
- Messages : 3100
- Enregistré le : 17 avr. 2007 21:25
- Localisation : 44
- Contact :
Re: asteroid pour TO8...
L'ascii art sur thomson n'est pas forcément intéressant puisqu'il n'y a que des modes graphiques... Donc pas de vitesse a gagner dans cette voie...stefff285 a écrit :bonjour a tous
je viens d'avoir une idee pour de la video sous téo
de la video en ascii art
reste a faire le film en silhouette et savoir apres si
je peux rajouter une bande son ce qui sera hachement
plus dur !!
bref ca je devrai y arriver
je vais faire un essai avec un de mes film et apres
on verra
prehisto si ce projet t'interesse dis moi quoi ^^
steff qui vous dis a bientot
------------------
Sinon le compilateur c vectrex est maintenant fonctionnel avec ma version de stobin en ligne ce midi sur ma page...
- stefff285
- Fonctionne à 300 bauds
- Messages : 201
- Enregistré le : 03 mai 2009 16:16
- Localisation : dijon
- Contact :
Re: asteroid pour TO8...
bonjour gilles !
bonne nouvelle pour ton emulateur
sinon je prepare alors une diskette .sap de dessin de ma part
on va bien voir ce que cela va donner
a bientot
steff
/ps:en basic 512 la je devrai y arriver ^^
bonne nouvelle pour ton emulateur
sinon je prepare alors une diskette .sap de dessin de ma part
on va bien voir ce que cela va donner
a bientot
steff
/ps:en basic 512 la je devrai y arriver ^^
- gilles
- Fonctionne à 9600 bauds
- Messages : 3100
- Enregistré le : 17 avr. 2007 21:25
- Localisation : 44
- Contact :
Re: asteroid pour TO8...
le compilateur C vectrex réadapté TO8 a sorti son premier Hello world il y a quelques heures (bon, d'accord c'est juste un Hello, j'ai eu la flemme de faire le world derriere).
Reste maintenant à:
Déterminer l'adresse 'idéale' pour implanter un prog en ASM (et sans perdre le DOS).
Déterminer l'adresse de la pile.
Créer des primitives pour les points d'acces interessant du moniteur (Ok, théoriquement tous mais j'ai la flemme... donc un sous ensemble me va bien).
Packager avec sapfs pour avoir un disque en autoboot.
Il devrait être possible de mixer assez facilement C et asm avec la macro asm de gcc (puisque c'est la méthode d'implantation du moniteur).
Le tout donnera un compilateur C TO8/TO9 et vectrex, et par la suite peut être aussi pour la gamme MO.
Reste maintenant à:
Déterminer l'adresse 'idéale' pour implanter un prog en ASM (et sans perdre le DOS).
Déterminer l'adresse de la pile.
Créer des primitives pour les points d'acces interessant du moniteur (Ok, théoriquement tous mais j'ai la flemme... donc un sous ensemble me va bien).
Packager avec sapfs pour avoir un disque en autoboot.
Il devrait être possible de mixer assez facilement C et asm avec la macro asm de gcc (puisque c'est la méthode d'implantation du moniteur).
Le tout donnera un compilateur C TO8/TO9 et vectrex, et par la suite peut être aussi pour la gamme MO.
- gilles
- Fonctionne à 9600 bauds
- Messages : 3100
- Enregistré le : 17 avr. 2007 21:25
- Localisation : 44
- Contact :
Re: asteroid pour TO8...
suite de la suite, dispo en téléchargement sur ma page...gilles a écrit :le compilateur C vectrex réadapté TO8 a sorti son premier Hello world il y a quelques heures (bon, d'accord c'est juste un Hello, j'ai eu la flemme de faire le world derriere).
Reste maintenant à:
Déterminer l'adresse 'idéale' pour implanter un prog en ASM (et sans perdre le DOS).
Déterminer l'adresse de la pile.
Créer des primitives pour les points d'acces interessant du moniteur (Ok, théoriquement tous mais j'ai la flemme... donc un sous ensemble me va bien).
Packager avec sapfs pour avoir un disque en autoboot.
Il devrait être possible de mixer assez facilement C et asm avec la macro asm de gcc (puisque c'est la méthode d'implantation du moniteur).
Le tout donnera un compilateur C TO8/TO9 et vectrex, et par la suite peut être aussi pour la gamme MO.
Permet de compiler un programme C vers une archive SAP pour utilisation directe sous ému, le tout en un clic...
Bon il reste encore pas mal de boulot... mais maintenant il y a au moins de quoi terminer mon asteroid sur TO8 en ASM (meme s'il faut réécrire pour s'insérer correctement dans du C avec les primitives asm() de gcc...
- gilles
- Fonctionne à 9600 bauds
- Messages : 3100
- Enregistré le : 17 avr. 2007 21:25
- Localisation : 44
- Contact :
Re: asteroid pour TO8...
le projet continue...
Remise en forme pour le C+ASM du SDK dérivé du compilateur C Vectrex.
Ce compilateur est un peu étrange et se plante parfois sur des expressions ultra simples...
Mais bon, ca se contourne aussi...
Remis en forme asteroid donne ceci :
C'est plus simple à maintenir et à faire évoluer et limite mieux optimisé que mon code ASM par endroits...
Ca semble donc assez viable...
Remise en forme pour le C+ASM du SDK dérivé du compilateur C Vectrex.
Ce compilateur est un peu étrange et se plante parfois sur des expressions ultra simples...
Mais bon, ca se contourne aussi...
Remis en forme asteroid donne ceci :
Code : Tout sélectionner
/*
* Include des fonctions du moniteur
*/
#include <to8.h>
#include "movetab.h"
static char DIRTY_NUM;
/****************************************************************
*
* Gestion du joueur
*
****************************************************************/
static int SH_X=0;
static int SH_Y=0;
static char SH_DIR=0;
static char SH_D=0;
// THRUST de 0 a 15
static char SH_THRUST=0;
const char SH_SPEED_TAB[16]={ 0,0,0,1,
1,1,1,1,
1,2,2,2,
2,2,3,3};
static char SH_SPEED=0;
static char JOY_DIR;
static char TIR_OK=0xFF;
static char read_joy1(void) {
char ret;
asm("lda 0HE7CC");
asm("anda #0H0F");
asm("sta 0HE61FF");
return read_ram(0x61FF);
}
static char read_button1(void) {
asm("lda 0HE7CD");
asm("anda #0H40");
asm("sta 0HE61FF");
return read_ram(0x61FF);
}
/* */
void SHIP_HANDLE(char phase) {
// gestion de la manette
JOY_DIR=read_joy1();
if ((JOY_DIR&0x04)==0x00) {
if (SH_DIR==0)
SH_DIR=0x3F;
else
SH_DIR--;
}
if ((JOY_DIR&0x08)==0x00) {
if (SH_DIR==0x3F)
SH_DIR=0x00;
else
SH_DIR++;
}
if (JOY_DIR&0x01) {
if (SH_THRUST<0x0F)
SH_THRUST++;
} else {
if (SH_THRUST>0x00)
SH_THRUST--;
}
SH_SPEED=SH_SPEED_TAB[SH_THRUST];
DELTA(SH_SPEED);
read_button1();
...
Ca semble donc assez viable...
-
- Fonctionne à 300 bauds
- Messages : 134
- Enregistré le : 24 oct. 2007 09:48
- Localisation : Brest (france, 29)
Re: asteroid pour TO8...
Tiens je me demande si comme avec GCC tu ne peux pas écrire cela avec une seule instruction ASM.gilles a écrit :Code : Tout sélectionner
asm("lda 0HE7CC"); asm("anda #0H0F"); asm("sta 0HE61FF");
1/ soit en utilisant le ';' comme séparateur d'instruction asm:
Code : Tout sélectionner
asm("lda 0hE7CC; anda #15; sta 0h61ff");
Code : Tout sélectionner
asm(""
"lda 0hE7CC\n"
"anda #15\n"
"sta 0h61FF");
Code : Tout sélectionner
#ifdef __MC6809__
extern int itof(int i);
asm(" .area _CODE
.globl _itof
_itof: pshs x
ldx #32+16
ldd 4,s
bne itof1
puls x,pc
itof1: bpl itof2
nega
negb
sbca #0
leax 64,x
itof2: leax -1,x
lslb
rola
bcc itof2
andb #128
leax d,x
tfr x,d
exg a,b
aslb
rola
adcb #0
puls x,pc
");
#else
// conversion int --> fp
int itof(int i) {
int e = (32+15)<<9, z = 0;
if(!i) return 0;
if(i<0) {
e |= 0x8000;
i = -i;
}
do {
e-=0x200;
i<<=1;
} while(!btst(i,0x8000));
i>>=6;
i&=0x1FF;
e |= i;
// if(z) e |= 0x8000;
return e;
}
#endif
- gilles
- Fonctionne à 9600 bauds
- Messages : 3100
- Enregistré le : 17 avr. 2007 21:25
- Localisation : 44
- Contact :
Re: asteroid pour TO8...
cette version de GCC est assez sensible, voire meme totalement buggée.
asm("lda #00\n tsta\n ") peut eventuellement convenir... mais pour la lisibilité c'est moyen.
en version multiligne... à voir...
En fait là il s'agit d'une conversion d'un code ASM que je compilais avec as09 en mode DOS. Avec réécriture
de la logique dans le C réduit de cette version de gcc...
asm("lda #00\n tsta\n ") peut eventuellement convenir... mais pour la lisibilité c'est moyen.
en version multiligne... à voir...
En fait là il s'agit d'une conversion d'un code ASM que je compilais avec as09 en mode DOS. Avec réécriture
de la logique dans le C réduit de cette version de gcc...